Выстрелить себе в ногу

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

Смело, товарищи, в ногу!
Духом окрепнем в борьбе…

IRL

«Выстрелить себе в ногу» — фраза из старой цитаты отца языка C++ Бьярне Страуструпа:

«Си» позволяет очень просто выстрелить себе в ногу. На «Си++» сделать это сложнее, но, когда вы это делаете, отрывает всю ногу.
— Bjarne Stroustrup[1]

Суть[править]

ЕРЖ исполняет сабж (посвящено событиям в Газе)
Оружие программиста

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

Беда в том, что это означало суровую нагрузку на указательный палец и как следствие — задержку при выстреле и резкую потерю меткости. Поэтому самые крутые ковбои, дрочившие на мгновенное-выхватывание-пушки-и-выстрел (как в вестернах, ага) могли ходить со взведёнными револьверами в кобурах. И вот им уже было феерически несложно добиться выстрела, даже не прикасаясь к спусковому крючку — то есть при должном ламерстве вполне реально было прострелить себе ногу, не вынимая револьвер из кобуры, просто по неосторожности. Впрочем, fanning (шлепание ладонью по курку) использовали в основном в кинофильмах, а настоящие юзеры просто заряжали в шестизарядники по пять патронов, оставляя камору под курком пустой; что является лучшим подтверждением актуальности выражения. Позже конструкторы всё-таки придумали револьверы с самовзводом и блокировкой курка, и суть фразы забылась. Зато не забылась сама фраза: она стала распространённой пиндосской идиомой, ближе всего стоящей к русскому выражению «сесть себе на яйца».

Тем не менее, среди тех, кто ещё помнит, фраза стойко ассоциируется именно с цитатой отца-основателя.

Реализация[править]

Ещё IRL
И ещё

На искомую тему был написан забавный текст, автор которого теряется в веках (помнит ли ещё кто-нибудь про revelation и euclid?):

ЗАДАЧА: Прострелить себе ногу.

  • C: Вы простреливаете себе ногу.
  • C++: Вы случайно создаёте дюжину копий объекта «вы» и всем им простреливаете ногу. Срочная медицинская помощь оказывается невозможной, так как вы не можете разобраться, где настоящие копии, а где — те, что только указывают на них и говорят: «А вот он я!»
  • Java: После импорта java.awt.right.foot.* и java.awt.gun.right.hand.* и написания классов и методов, необходимых для этих классов, вы забываете, что вы, чёрт возьми, хотели сделать.
    • Вы создаёте класс Нога, который наследует класс ЧастьТела и использует интерфейсы Сгибаемый, Истекающий кровью, Наступательный, и класс Пистолет, который наследует класс ОгнестрельноеОружие и использует интерфейсы Заряжаемый, Полуавтоматический, ВНогуСтреляющий, но у вас ничего не получается, потому что вы забыли применить интерфейс Простреливаемый к Ноге.
    • Вы за полгода создаёте по всем гайдлайнам мини-фабрики по сборке пистолетов, сборке патронов, заряжанию магазинов и сборке ног. Отдельные фабрики конвейерно снаряжают пистолеты уже готовыми обоймами, а затем везут их к месту выстрела. Другие - конвейерно, дорогущими манипуляторами устанавливают ноги для расстрела с точностью до миллиметра, а затем, после выстрела, увозят их прямо в кузов сборщика мусора. Затем все отлаживается ещё три месяца, после чего один пистолет, заряженный одним патроном стреляет в одну ногу и...все!
  • C#: Вы пытаетесь прострелить себе ногу, но осознаете, что для этого вам нужен 5 диск MSDN с хелпом и Visual Studio .NET… и в любом случае решётка C# не даёт прострелить вам ногу, так как тот код, который вы пишете для Mono, Microsoft уже запатентовала.
    • Старый C# (до v4.0): вы пытаетесь прострелить себе ногу из раритетного маузера пулей, которую пришлось долго обтачивать напильником. Оттянув спуск вы внезапно понимаете, что для ноги и для вас нужно выкачать 250 мегабайт сторонних Redist'ов, затем из установить. Пытаясь попасть из резко раздувшейся волыны в распухшей руке в распухшую ногу вы вдруг понимаете, что прямая траектория пули гарантируется тогда и только тогда, если версия Redist'ов будет такой же, как на заводе-производителе пистолета, вплоть до минорных патчей. В итоге шесть пуль летают вокруг ноги, как спутники, ещё три - по синусоиде улетели в голубые дали, а одна, несчастная, наконец-то попала вам в ногу - после десятка рикошетов от стен комнаты.
    • Новый C# (до v4.8.1): пистолет теперь собран из красивого углепластика, пуля почти подошла по размерам к стволу, даже теперь почти не требуется выбирать минорные версии для лишь немного распухшей (с 10й попытки - уже даже не распухающей) ноги, но...стрелять вы можете, будучи исключительно белым англосаксонским протестантом бородатой наружности. Или белой англосаксонской протестанткой в длинной юбке и чепчике.
    • Новейший C# (core): теперь стрелять себе в ногу могут даже туземцы из племени Мумбо-Юмбо, но...без нюгет-карго стрелять можно разве только из палки, примотанной гнилым тряпьём к ржавой рукоятке. Зато белые англосаксонские протестанты могут стрелять, попадать с первого раза в ногу, в процессе прострела останавливать пулю и проматывать вылет пули назад во времени...если только оплатили лицензии на энтерпрайз, имеют комнату размером с ангар (куда комфортно влезает пистолет десять на десять метров) и не сидят под санкциями.
  • SQL: BEGIN; INSERT INTO нога (ступня) SELECT патроны AS пуля FROM пистолет WHERE курок = 'СПУЩЕН'; COMMIT;
    • SQL v2: SELECT @ammo:=bullet FROM gun WHERE trigger = ‘PULLED’; INSERT INTO leg (foot) VALUES (@ammo);
  • Delphi: Вы залезаете на форумы и слёзно умоляете дать вам компонент для прострела ноги. После компиляции нога опухает, и её масса превышает массу тела.
    • Delphi v2: Вы раскурили мануалы и сумели собрать выклянченный компонент в Release-профиле без встроенной таблицы отладочных символов. Вы раскурили три тонны форумов на немецком и суахили и нашли на 99999й странице ссылку на полурабочий домашний веб-сервер автора компонента, который открывается только в полночь, если на ссылку нажимать левым большим пальцем третьей задней ноги, где описывается способ сборки компонента из исходников с использованием только реально использующихся в проекте модулей компонента. Вы, окропив сборочный комп кровью некрещёной рыжей девственницы, таки сумели собрать и ногу, и пистолет без ошибок. При выстреле всё просто и без затей падает в сегфолт вот просто потому, что.
  • JavaScript: Вы прочитали 3 книги, изучили 10 наглядных примеров, разработали потрясающий интерфейс и теперь, кажется, готовы к тому, чтобы выстрелить себе в ногу. Потом в процессе стрельбы обнаруживаете, что пули имеют радиус действия, равный длине ствола, и испаряются прямо на выходе.
    • JavaScript v2: Вы начали использовать сверхмодный реактивный фреймворк, в котором всё сделано уже до вас, осталось лишь выполнить одну строку кода Gun.NewGun(Ammo).Execute(Foot.NewFoot()) на транспилируемом в js метаязыке, но потом понимаете, что небольшой leftpad-модуль из npm, один из десятка тысяч зависимостей, использованных при сборке фреймворка был с сюрпризом для локали RU-ru...
  • CSS: Переложив пистолет в левую руку, вы понимаете, что держите его не за рукоять, а за дуло. Вы переворачиваете его и понимаете, что теперь он смотрит стволом в сторону вашей головы. Ещё немного изменив стили, вы понимаете, что всё теперь как надо, но только он находится на 15 пикселей левее вашей руки.
  • node.JS: Вы начинаете асинхронно стрелять из асинхронных рук в асинхронные ноги, асинхронно не попадаете и запутываетесь в этой каше.
  • Objective-C/Cocoa: Вы строите стильный интерфейс, соответствующий всем канонам Apple. Вы два раза копируете и ногу, и пистолет, чтобы они работали под архитектурами как Intel, так и PowerPC. Вы удостоверяетесь, что пистолет можно зарядить с помощью всего одного клика мышкой. Когда всё уже готово, вы понимаете, что при нажатии на спуск пистолет не стреляет. Перебрав весь код вашей программы, вы обнаруживаете, что забыли указать, что графический объект спускового крючка — и есть спусковой крючок.
  • Ruby: Ваша нога готова к выстрелу примерно через пять минут, но вы не можете найти места, где можно стрелять.
  • PHP: Вы стреляете себе в ногу из пистолета, сделанного из частей 300 других пистолетов.
  • ASP.NET: Вы находите пистолет, но он разваливается. Вы его собираете, но он снова разваливается. Вы пытаетесь использовать платформу .GUN, но она разваливается. Вы режете себе ногу.
  • Perl: Вы стреляете себе в ногу, и никто не может понять, как вы сделали это. Через шесть месяцев не можете и вы.
  • Erlang: Вы описываете поведение стреляющего устройства, создаёте десяток устройств от арбалета до КПВТ на его основе, одновременно стреляющее из тысячи разных мест и позволяющее горячую замену пуль прямо во время стрельбы. После поражения ноги она умирает и каскадно уносит с собой все тело. Супервизор отращивает новое тело с непоражённой ногой. Вы офигеваете, что после такого залпа нога все ещё целая, а также от блевотного Tk-интерфейса appmon, через который просматриваете состояние ноги.
  • FORTRAN: Итеративно вы простреливаете каждый палец ноги, а когда пальцы заканчиваются, загружаете следующую ногу и продолжаете. Когда пули заканчиваются, а пальцы давно потеряли всякое сходство с пальцами, вы все равно продолжаете попытки прострелить себе ноги, потому что не имеете возможности обрабатывать исключения.
  • Modula2: Поняв, что с помощью этого языка ничего толком сделать нельзя, вы простреливаете себе голову.
  • Pascal: Компилятор не позволит вам прострелить себе ногу.
    • Lasarus+FPC - вы прихлопываете ногу толстенной книгой Вирта, в которой застряла пуля. После чего нога отправляет и вас, и вашу книгу в сегфолт.
  • Rust: Вы покупаете радужный пистолет, собранный исключительно меньшинствами из эко-металла, эко-пластика и экокожи, но который может стрелять только при ночной сборке. Вы пытаетесь выстрелить в ногу, однако выясняется, что нога заимствована и неизменяема, а пуля не может быть перемещена. В конечном счёте вы игнорируете все проверки, после чего пистолет взрывается, а ноги остаются атрофированными по сравнению с торсом из-за пропуска дня ног в спортзале. А после этого вас со вкусом травит в твиттере и на ног-хабе сообщество, ведь пользоваться unsafe - низззя!
  • Ada: После тщательной сборки пакета «нога», вы пытаетесь одновременно зарядить пистолет, нажать курок, завопить и выстрелить себе в ногу. В ходе попыток обнаруживается, однако, что вас постигла неудача, так как ваша нога оказалась неверного типа.
  • Кобол: Наводите ПИСТОЛЕТ COLT 45 на НОГА.СТОПА, ТОГДА помещаете РУКА.КИСТЬ.ПАЛЕЦ на ПИСТОЛЕТ.КРЮЧОК и ПОЖАЛУЙСТА, НАЖИМАЕТЕ. ТОГДА возвращаете ПИСТОЛЕТ в КОБУРУ. ПОЖАЛУЙСТА, ПРОВЕРЬТЕ, нуждаются ли шнурки в повторном связывании.
  • LISP: Вы простреливаете себе отросток, который держит пистолет, с помощью которого вы простреливаете себе отросток, который держит пистолет, с помощью которого вы простреливаете себе отросток, который держит пистолет, с помощью которого вы простреливаете себе отросток, который держит пистолет, с помощью которого вы простреливаете себе отросток, который…
  • Forth: Нога себе прострелить вы.
  • Prolog: Вы сообщаете вашей программе, что хотите иметь простреленную ногу. Программа разрабатывает способ этого достичь, но синтаксис языка не позволяет объяснить этот способ вам.
  • Basic: Вы простреливаете себе ногу из водяного пистолета. В расширенных реализациях языка продолжайте, пока вся нижняя часть тела не промокнет. В реализациях с возможностью делать вставки из ассемблера вы используете ранее созданные типы и уже в ассемблерной части простреливаете ногу дробовиком.
  • Visual Basic: Вы прострелите себе ногу. Однако в процессе реализации вы получите столько удовольствия, что подобные мелочи вас не озаботят.
  • Visual BASIC.NET: Вы тратите целое состояние на мощнейший, самоочищающийся, самонаводящийся, автоматический пистолет с бесконечным боезапасом и только тогда понимаете, что спуск курка занимает около года (источник).
  • HyperTalk: Поместите первую пулю пистолета в ступню левой ноги вас. Сообщите результат.
  • Smalltalk: Мой нога стреляй себя.
  • Motif: Вы затрачиваете несколько дней на построение UIL — описания вашей ноги, пули, её траектории и замысловатой резьбы по слоновой кости на рукоятке пистолета. Когда вы наконец-то управились и готовы нажать на курок, затвор заклинивает.
  • APL: Вы простреливаете себе ногу, затем тратите весь день на то, чтобы представить себе, как это сделать с меньшим количеством символов.
  • Снобол: Если вам удастся, прострелите себе левую ногу. Если не удастся, то прострелите себе правую ногу.
  • E2: Вы, используя пистолет, состоящий из двух параллелепипедов кислотного цвета, стреляете в свою невидимую ногу, но пуля вместо ствола пистолета появляется у вас перед глазами, и вы застреваете в ней, поскольку ваша физическая модель представляет из себя цилиндр.
Примерно так:
# for i in /boot/*; do rm ${i}; done
# echo "title Awwwwww!" > /boot/grub/menu.lst
# rm -rf ${dir}/*
# init 6
  • Unix:
    % ls
    Foot.c foot.h foot.o toe.c toe.o
    % rm * .o
    rm: .o no such file or directory
    % ls
    %

  • Параллельный Euclid: Вы простреливаете себе чью-то чужую ногу.
  • Язык управления заданиями IBM/370: Вы посылаете свою ногу в управляющую информационную систему с приложением документа на 400 страниц, точно описывающего, как именно вы хотите быть простреленным. Через три года ваша нога возвращается с глубоким ожогом.
  • Paradox: Не только вы можете прострелить себе ногу, но и ваши пользователи.
  • Revelation: Вы уверены, что сможете прострелить себе ногу, как только разберётесь, для чего служат эти маленькие хорошенькие пульки.
  • Ассемблер: Вы пытаетесь прострелить себе ногу, но обнаруживаете, что прежде вам придётся изобрести пистолет, пулю, курок и вашу ногу. После чего вы нажимаете на курок, пистолет издаёт пару писков, после чего выдаёт BSoD.
  • Ассемблер v2: Вы пытаетесь прострелить себе ногу, но наступаете ею на грабли.
  • Python: Вы пытаетесь выстрелить себе в ногу, но то и дело попадаете промеж пальцев. А всё потому, что Питон настолько гибкий — что из пальцев выскальзывает.
  • BrainFuck: Вы палите наугад из безумной смеси пистолета и экскаватора урановыми медведями. В конце концов вам удаётся попасть в изогнутую по синусоиде «ногу».
  • HQ9+: У вас нет ни пистолета, ни «ноги».
  • VHDL: Вы аккуратно описываете компоненты «нога», «рука», «пистолет» и «пуля». Любовно их отлаживаете и моделируете по отдельности. После синтеза всей системы обнаруживается, что нога и пистолет активируются на чётных тактах сигнала синхронизации, а рука и пуля на нечётных.
  • Whitespace:                                                                                                                
  • Redcode: Вы стреляете себе в ногу, но у пули на сей счет иные планы. Она постоянно ищет себя, стреляет себе в ногу, удивляется результату…
  • ABAP/4: В стандартном пистолете предусмотрена возможность стрелять из-под колена в белку на расстоянии 3 км, но выстрелить в ногу нельзя. После годовой доработки можно стрелять в ногу. На второй минуте использования выясняется, что стрелять нужно было, только если нога левая, а фаза луны четвертая.
  • Haskell: Процесс выстрела в ногу сопровождается побочными эффектами, поэтому вы пытаетесь использовать монады для обработки ввода/вывода пистолета, но выясняется, что вы недостаточно умны для этого.
  • Haskell98: Вы стреляете себе в ногу, но боль чувствуете только спустя три часа при попытке встать с кресла.
  • Haskell2010: вы пытаетесь найти готовое решение на stackage, но он опять обвалился. Вы идёте на hackage и находите 10-15 кривых недоделок. Вы получаете вежливый и развёрнутый ответ в канале помощи, делаете вид, что всё поняли, перечитываете 5 однотипных книг для начинающих, Карделли, Пирса и Барендрегта. Вы пишете максимально полиморфную функцию причинения урона hurt, даёте её параметрам говорящие имена l и g. Получив 50 сообщений об ошибках в единственной строке, неделю исправляете их и от злости режете, простреливаете, прожигаете, взрываете и транклюкируете себе все части тела всеми известными видами оружия.
  • AJAX: Пистолет с помощью XmlHTTPRequest запрашивает пулю, которая появляется неопределенное время спустя и попадает в птицу.
  • ColdFusion: Программа снимает за вас ваши туфли, заряжает ваш пистолет и назначает вам прием к доктору. Вы успешно стреляете себе в ногу, но вам никто не верит.
  • XSLT: Вы гуглите весь день, пытаясь узнать, как же выстрелить себе в ногу. Узнав решение, вы не понимаете его синтаксис и берете чужой шаблон. Он не работает.
  • Scratch: Вы заходите в простенький визуальный редактор, в котором нельзя поставить блок не туда, однако обнаруживаете, что для создания спрайта "пистолет" нужно сделать схему токийского метро. Спустя одно создания схемы и оптимизации её в один блок вы получаете мультик.
  • Lua: Если разработчик пистолета предусмотрел возможность выстрела в ногу — достаточно вызвать одну функцию. Если нет — хоть убейтесь, но ничего не выйдет.
  • Squirrel: Намаявшись с Lua, вы прогрызаете ногу той самой белкой, глаз которой вы отстрелили из пистолета «ABAP».
  • Apple Script: Вы простреливаете себе ногу, но перед этим вам придётся сделать автоматическую запись ваших действий в компилятор — прострел собственной ноги, и в итоге вы автоматически простреливаете себе ногу вторично.
  • FoxPro: Вы хотите выстрелить себе в ногу, но обнаруживаете, что нога уже прострелена, и вам приходится искать пользователя, который это сделал.
  • MUMPS/M: Вы используете переменную glo для ссылки на глобаль с состоянием своего тела set glo = $na(^MYBODY), потом обращаетесь к функции, где производится выстрел в ногу set result = $$shootRightLeg() и сохраняете результат в индекс ноги set @glo@("rightleg") = result. Но в метке shootRightLeg кто-то уже использует переменную с тем же именем для получения данных о пистолете set glo = $na(^GUN), не ньюкнув ее new glo предварительно. В результате вы в полном порядке, а у пистолета прострелена правая нога.
  • UART: У вашего пистолета такой короткий ствол, что патрон просто торчит из дула. Вам приходится расковыривать ногу, причём так, чтобы именно выстрел пластмассовой пульки нанёс ноге рану.
  • Malbolge: Что-бы выстрелить в ногу вы должны создать рандом-машину, случайным образом перебирая код создаст пистолет, пулю и выстрел. Если вы и без рандом-машины справились, за вами уже выехали.
  • 1C: Нога = Новый Нога; Нога.Прострелить(); либо Пистолет = Новый Пистолет; Пистолет.Прострелить(Вы.Нога);
    • 1C:Предприятие: Вы БЕЗНОГNM, потому что вы выстрелили себе в ногу задним числом за 1 января 1995 года, а с тех пор рана на ноге сгнила.
    • 1C 7.7: Пистолета и ноги нет. Элемент регистра ПистолетныеПули из программы можно вытянуть только через СОМ+-брокер в процесс gun.exe, а затем, по нему же можно через объект VBScript отправить в ногу в dbf. Пролетающий мимо мотылёк рушит всю систему нахрен.
    • 1С 8.2: У вас есть арсенал кремнёвых и фитильных пистолетов. У вас есть целый справочник с разными ногами. И если с добавлением НогаПользователя(Волосатая, Мужская, Ложь, Ложь, "СтрокаВолосатыхМужскихНогКлюч") проблем нет, то пользоваться можно лишь тем набором пистолетов, что есть в арсенале. Если они не стреляют, то вы всегда можете подключить 1911 из внешней dll, но боже упаси, своих пистолетов определить вы не сможете ни в конфигурации, ни на уровне платформы.
    • 1С 8.3: У вас все как в 8.2, но теперь есть гламурненький асинхронный жёлтенький пистолетик. Других пистолетов у вас нет
  • Go: Вы создаете пулю и запускаете ее в полет. Тем временем создаете ногу, пистолет, и сообщаете пуле, что она должна лететь от пистолета к ноге. При подлете к ноге пуля исчезает, так как ногу простреливать запрещено.
  • Regexp: По очереди выбрав пистолет, руку и ногу, вы производите выстрел, но простреливаете муху на окне, ибо селектор выбрал её ногу вместо вашей.
  • GML (Game Maker Language): Вы покупаете Desert Eagle Custom за 2999,99$, пишете instance_create(x,y,obj_bullet) и задаёте на различных форумах вопрос: «пачиму пуля нилитит кнаге7».
  • DOS Batch: Вы прицеливаетесь в ногу из пистолета и нажимаете на курок, но вашу ногу лишь обдувает теплым ветерком.
  • Машинный язык: Перед тем, как выстрелить в ногу, вам нужно расщепить пистолет на атомы, а затем снова его собрать. После этого вы обнаруживаете, что для пуль требуется специальный оператор, поэтому пистолет не работает.
  • PL/I: У вас есть 6,752 различных пистолетов. Пока вы выбираете один, чтобы выстрелить себе в ногу, вы умираете от голода.
  • Qt: Вы пытаетесь прострелить себе ногу но понимаете что у вас нет нужного сигнала, вы наследуете себя от класса "QЧиловек", приписываете метод, делаете emit сигнала, ставите нужный флаг который даёт вам возможность стрелять... но пистолет не стреляет. Вы наследуете "QПистолет", прописываете слот, ставите флаг IsShootable, и обнаруживаете что нога не может быть простреленной... вы в ужасе идёте наследовать и её, устанавливаете ещё 10 флагов. Теперь всё готово к прострелу, вы стреляете и в результате получаете Runtime error
  • GTK: Вы долго и вдумчиво пишете пистолет, продираясь через gtk_what_is_fucking_shit_do_I_want_now_new(). Вы долго и вдумчиво ставите ногу так, чтобы она не сегфолтила при падении. После попытки выстрела оказывается, что пакет виджетов обновился и вы, оказывается, использовали удалённый deprecated, а потому вот вам три экрана ошибок при компиляции. Заменив gtk_what_is_fucking_shit_do_I_want_now_old() на последовательные вызовы gtk_what_is_fucking_shit_do_I_want_now_new() и gtk_what_is_fucking_shit_do_I_want_now_blya() в стопицотой подвложенной директории проекта с одним хедером и одним сурцом вы обнаруживаете, что стрелять можно только, если поставить тему adwaita. Вы идёте плакаться на donthememyapp.
    • Vala: Все тоже самое, только пуля летит в банановой смазке

Так бы в Windows 8 решалась любимая программистами задача выстрелить себе в ногу:

— Вы уверены, что хотите выстрелить себе в ногу? — Да
— Windows требуется ваше разрешение для продолжения — Продолжить
— Для выполнения этого действия нужно обладать правами администратора — Продолжить!
— Windows Smartscreen защитило вашу ногу от неопознанной операции выстрела. Выстрел в ногу может повредить вашу ногу — Стреляй же, мать твою!
— Предупреждение системы безопасности. Не удаётся проверить модель пистолета. Пистолеты могут быть полезны, но этот тип пистолета может повредить Вашу ногу. Если вы не доверяете вашему оружейному поставщику не используйте данный пистолет — А-а-а-а!!! Стреляй! Стреляй! Стреляй!!!
— У вас нет прав для произведения операции Выстрелить в себе в ногу. Вы не являетесь владельцем вашей ноги. Обратитесь к своему системному администратору — %&?#!!!

*посылает пулю в висок*

xxx: Люблю, сцуко, Линукс — он позволяет тебе не телько выстрелить себе в ногу, но и в голову, причём, падла, абсолютно уверен, что ты был прав и другого выхода не было.

Bashorgrufavicon.png411773

C++11[править]

Бьярне продолжает радовать. На официальной страничке, посвященной FAQ по новому стандарту, в разделе наследование конструкторов.

If you so choose, you can still shoot yourself in the foot by inheriting constructors in a derived class in which you define new member variables needing initialization...

You might remove the bullet from your foot by using a member-initializer...

Также данные цитаты были повторены в четвертом издании The C++ Programming Language, опубликованной в мае 2013.

Алсо[править]

  • В сериале The IT Crowd директор компании простреливает себе ногу. Прямая, кстати говоря, отсылка к этому тексту.
  • В кино Horrible Bosses директор компании тоже простреливает себе ногу.
  • Есть доставляющая книга о программировании на С и C++ под названием «Enough rope to shoot yourself in the foot» (на русском).
  • В сериале Теория большого взрыва (сезон 5, серия 14) Леонард прямо-таки выстрелил себе в ногу. Всё бы ничего, но вся серия проходила в контексте разработки и отладки ПО, что символизирует.
  • В Quake 4 и Doom 3 при выборе минимальной сложности просят не прострелить себе ногу, намекая на скилл игрока. ЧСХ, прострелить себе ногу в каком-то роде можно — если выстрелить вниз, удерживая заряд бластера, персонаж получит урон.
  • В каноничном Operation Flashpoint можно было на бегу прострелить себе ногу (направив курсор сильно вниз и давя на гашетку) и при этом умереть замертво.
  • Осенью 2018 года в Москве нашелся сказочный долбоеб, совершивший сабж на спор.

Применение в политике[править]

​Сергей Лавров: Россия не собирается стрелять себе в ногу и отказываться от сотрудничества с Европой.
Премьер Венгрии: ЕС выстрелил себе в ногу, введя санкции против России.
Немецкий депутат назвала сегодняшнюю политику Европы в отношении России «выстрелом себе в ногу».
Рогозин случайно ранил себя в ногу во время стрельбы в тире.

См. также[править]

Примечания[править]

  1. Цитата увековечена здесь; первоисточник, скорее всего, в какой-нибудь из книг Страуструпа.
Medal.jpg Спорт полезен, если в меру
МетаAdidasLet's get ready to rumble!Букмекерская контораОлимпиада (Ванкувер 2010Московская ОлимпиадаСочи 2014Специальная Олимпиада) • Перлы комментаторовРеспект таким парнямФанаты (Remi GaillardЕгор Свиридов) • Фитнес-центрХоккейСпортсменВыстрелить себе в ногуБольшой спортЛыжный спортКачалкаФитоняшкиТурничок
СуицидальныйАльпинизмДайвингПарашютизмПарапланеризмСноуборд
Боевые искусстваАйкидоБоксБрюс ЛиВалуевДацикКочергинСхватка двух йокодзунТайсонМихалокСпортивная борьбаБесконтактный бойСаберфайтинг
Возня вокруг мячейru_footballВувузелаЗиданМоуриньюНогомячРоссийский футболФутбольный хулиганChampionat.com (Чемпионат.ру) • Яо МинРегбиФутболистЗвезда футболаМанчестер ЮнайтедЕвро 2020Сборная России по футболу
Авто/мото/велоDTMNASCARВелоспортМонстр-тракМотоспортРаллиФормула 1Дрифт
МыслеспортMagic: The GatheringSpeedcubingГоПокерПреферансСпортивное программирование (Демосцена) • Что? Где? Когда?/Спортивное ЧГК (АгняшаБарщевскийВассерманДрузьЖарковГладиолус) • СнукерШахматы (Известные шахматисты)
Ритм-спортDDRPIUРитмическая гимнастикаХастл
Недо-спортБодибилдинг (НевскийТурчинскийШварценеггерВиталий ОреховDo4a) • БотинкометаниеГеокешингДворовые игрыКроухантингКрысингЛитрболПаркурРестлинг (Масаки СумитаниРестлеры) • РыбалкаСкейтингДиггерство / Сталкерcтво / РуфингСтрайкбол / Пейнтбол / ХардболСтритрейсингТурникмен/ТурникменыЭкстремальные городские игрыЭлектричкинг (Метроэлектричкинг) • КачкиТуристAIRSOFT BALAN
ЛюдиСтанислав ЧерчесовМиша МавашиТесакДенис ЧеревичникОскар ПисториусЛионель МессиКамила ВалиеваТрансы в спортеРой ДжонсЮлия ЕфимоваДенис МининКейн (рестлер)БацькаЕвгемия ЛиЛеонид Ионович УсвяцовЕлена ИсинбаеваКирилл ТерешинОблич ЗапливушкоМихаил ЛитвинХабиб НурмагомедовАртем АванесянЛегион БревенПолина БаскаковаГавиЛера ЛогуноваДмитрий Варгунин
Скандалы и событияFan IDЧемпионат мира по футболу в КатареУдар головой ЗиданаДопинг-скандал с участием РоссииДопинг-скандал вокруг российского спортаОтстранение России от участия в международных соревнованияхПод нейтральным флагомПобеда Валиевой на допинг-скандалеМельдонийЧетырёхлетняя дисквалификация Камилы Валиевой
Movax1010h.png Глубокий смысл скрыт в этих неестественных языках
Языки программированияПромышленные: BATC#CC++JavaJavaScript (AJAX) • PascalPerlPHPPythonRubyABAPАссемблерВасикФортран
Эзотерические: BrainFuckHQ9++ErlangForthHaskellLISP (My other car) • PrologTclΤΕΧOracleMySQLGolangВ++
ПрофессииБыдлокодерПрограммистТестировщикХакерХеллоуворлдщикIT-звёзды
Методы и стилиReverse EngineeringАнти-паттернВыстрелить себе в ногуГрязный хакКод (индусский) • КостыльМетод научного тыкаПомолясьСвистелки и перделкиОчередьСпортивное программированиеОбфускацияБета-тестАльфа-тестШаблоныRegReplace
Средства разработкиSublime TextПодсветка синтаксиса кодаUnstable DiffusionAPIPythonTutorCodeWarsDataCamp
ЛюдиИлья КанторЮрий КлючевскийЭдуард Лаас
Прочее++i + ++iDeadline%s640 килобайтCMSDummy modeЕГГОГFoobarGod is real, unless explicitly declared as integerGOTOIfconfigKISSRegExpSICPsql.ruXyzzyДискетаИнжалид дежицеКОИ-8ЛогМанРекурсияСУБДТест ТьюрингаУмение разбираться в чужом кодеФаза ЛуныФатальный недостатокПроблема 2000ТаймстампКэшЗапись в файл без кэша (Perl)Танцы с бубномКодач