Alex 4 683 Опубликовано: 30 апреля, 2014 А это из любимых, лет 10 уже храню, смеялся до колик когда-то: Лев ходит по пустыне. В свое время физики предложили свою подборку методов решения задачи о поимке льва в пустыне и помещении его в клетку. А как решают ту же задачу различные деятели эпохи информационных технологий? Программист на Паскале Просматривает пустыню полным перебором. Обнаружив льва, строит вокруг него клетку. Продвинутый программист на Паскале Сортирует пустыню по возрастанию, после чего ищет льва двоичным поиском и строит вокруг него клетку. Если в процессе строительства лев уходит, бросает работу с криком “Range Check Error”. Программист на Си Ищет в пустыне камень и помещает его в клетку. Присваивает камню значение “лев”. Продвинутый программист на Си Присваивает пустыне значение “клетка”. Программист на Си++ Проектирует клетку таким образом, чтобы лев был ее составной частью. При инициализации клетки лев автоматически генерируется внутри. Программист на Аде Говорит, что лев и клетка — это объекты разных типов, и нечего морочить ему голову некорректными задачами. Программист на Дельфи Пишет во все конференции: “Народ, где взять компонент, который ищет в пустыне льва и помещает его в клетку?”. Железячник Покупает в зоопарке львицу, делает ей операцию по смене пола и долго пытается запихнуть ее в клетку для канарейки. Геймер-action'ep Вооружается супершотганом, плазмаганом, рэйлганом, нэйлганом, шестиствольным пулеметом и бензопилой. Прочесывает пустыню, разнося все на своем пути. Ищет среди убитых льва и пытается обнаружить у него в животе желтый ключ. Если находит, отпирает им клетку и ждет награды. Геймер-квестовик Ищет по всей пустыне льва, находит, кладет в карман. Затем ищет по всей пустыне клетку, попутно пытаясь засунуть льва в чайник, башмак, телевизор, ведро с краской и другие попадающиеся на пути емкости. Геймер-стратег Поднимает по всей пустыне налоги, чтобы получить деньги на строительство клетки и охотничьих юнитов. К моменту окончания строительства все львы дохнут от голода. Пользователь Интернета Заходит в свой любимый поисковик, пишет в строке Search “пустыня”, ищет в найденном “лев в клетке”. Если не находит, говорит, что задача неразрешима. Веб-мастер Заходит в свой любимый поисковик и пишет в строке Search “пустыня + лев”. Создает документ клетка.htmlи прописывает в нем ссылку на найденное. Спамер Рассылает по всей пустыне множество клеток, к каждой из которых привязана бумажка: “Если вы лев, пожалуйста, зайдите внутрь и закройтесь изнутри”. Троянщик Делает то же, что и спамер, но вместо бумажки снаружи вешает внутри клетки картинку с голой львицей. Админ Выкапывает вокруг клетки ров, заполняет его концентрированной кислотой, устанавливает вдоль берега противотанковые ежи и противопехотные мины, все это опутывает колючей проволокой. К проволоке и прутьям клетки подключает провода от генератора высокого напряжения. Вешает на клетку 10 кодовых и 12 амбарных замков. Заходит внутрь, запирается на все замки, пускает ток, ключи проглатывает, коды забывает и говорит, что теперь ему никакой лев не страшен. Хакер Нейтрализует кислоту щелочью, перекусывает проволоку, проползает под ежами, перепрыгивает с шестом через мины, отключает ток, взламывает замки и входит в клетку. Не обнаружив внутри льва, матерится с досады, дает пинка админу и уходит обратно в пустыню. 12 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Legion_D 13 Опубликовано: 17 мая, 2014 Как прострелить себе ногу (боян для программистов) ЗАДАЧА: Прострелить себе ногу. C: Вы простреливаете себе ногу. C : Вы случайно создаете дюжину копий объекта «вы» и всем им простреливаете ногу. Срочная медицинская помощь оказывается невозможной, так как вы не можете разобраться, где настоящие копии, а где — те, что только указывают на них и говорят: «А вот он я!» C#: Вы пытаетесь прострелить себе ногу, но осознаете, что для этого вам нужен 5 диск MSDN с хелпом и Visual Studio .NET… и в любом случае решетка C# не дает прострелить вам ногу, так как тот код, который вы пишете для Mono, Microsoft уже запатентовала. Java: После импорта java.awt.right.foot. и java.awt.gun.right.hand. и написания классов и методов, необходимых для этих классов, вы забываете, что вы, чёрт возьми, хотели сделать. SQL: INSERT INTO нога (ступня) SELECT патроны AS пуля FROM пистолет WHERE курок = 'СПУЩЕН'; COMMIT; Delphi: Вы залезаете на форумы и слезно умоляете дать вам компонент для прострела ноги. JavaScript: Вы разрабатываете мощный, навороченный пользовательский интерфейс для стрельбы в ногу. Потом вы обнаруживаете, что в вашем пистолете отключены пули. node.JS: Вы начинаете асинхронно стрелять из асинхронных рук в асинхронные ноги, асинхронно не попадаете и запутываетесь в этой каше. Objective-C/Cocoa: Вы строите стильный интерфейс, соответствующий всем канонам Apple. Вы два раза копируете и ногу, и пистолет, чтобы они работали под архитектурами как Intel, так и PowerPC. Вы удостоверяетесь, что пистолет можно зарядить с помощью всего одного клика мышкой. Когда всё уже готово, вы понимаете, что при нажатии на спуск пистолет не стреляет. Перебрав весь код вашей программы вы обнаруживаете, что забыли указать, что графический объект спускового крючка — и есть спусковой крючок. Ruby: Ваша нога готова к выстрелу примерно через пять минут, но вы не можете найти места, где можно стрелять. PHP: Вы стреляете себе в ногу из пистолета, сделанного из частей 300 других пистолетов. ASP.NET: Вы находите пистолет, но он разваливается. Вы его собираете, но он снова разваливается. Вы пытаетесь использовать платформу .GUN, но она разваливается. Вы режете себе ногу. Perl: Вы стреляете себе в ногу, и никто не может понять, как вы сделали это. Через шесть месяцев не можете и вы. Erlang: Вы описываете поведение стреляющего устройства, создаете десяток устройств от арбалета до КПВТ на его основе, одновременно стреляющее из тысячи разных мест и позволяющее горячую замену пуль прямо во время стрельбы. После поражения ноги она умирает и каскадно уносит с собой все тело. Супервизор отращивает новое тело с непораженной ногой. Вы офигеваете, что после такого залпа нога все еще целая, а также от блевотного Tk-интерфейса appmon, через который просматриваете состояние ноги. Фортран: Итеративно вы простреливаете каждый палец ноги, а когда пальцы заканчиваются, загружаете следующую ногу и продолжаете. Когда пули заканчиваются, вы все равно продолжаете попытки прострелить себе ноги, потому что не имеете возможности обрабатывать исключения. Modula2: Поняв, что с помощью этого языка ничего толком сделать нельзя, вы простреливаете себе голову. Pascal: Компилятор не позволит вам прострелить себе ногу. Ada: После тщательной сборки пакета «нога», вы пытаетесь одновременно зарядить пистолет, нажать курок, завопить и выстрелить себе в ногу. В ходе попыток обнаруживается, однако, что вас постигла неудача, так как ваша нога оказалась неверного типа. Кобол: Наводите ПИСТОЛЕТ COLT 45 на НОГА.СТОПА, ТОГДА помещаете РУКА.КИСТЬ.ПАЛЕЦ на ПИСТОЛЕТ.КРЮЧОК и ПОЖАЛУЙСТА, НАЖИМАЕТЕ. ТОГДА возвращаете ПИСТОЛЕТ в КОБУРУ. ПОЖАЛУЙСТА, ПРОВЕРЬТЕ, нуждаются ли шнурки в повторном связывании. 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Legion_D 13 Опубликовано: 17 мая, 2014 LISP: Вы простреливаете себе отросток, который держит пистолет, с помощью которого вы простреливаете себе отросток, который держит пистолет, с помощью которого вы простреливаете себе отросток, который держит пистолет, с помощью которого вы простреливаете себе отросток, который держит пистолет, с помощью которого вы простреливаете себе отросток, который… Forth v1: Нога себе прострелить. Forth v2: Нога пистолет пуля зарядить прострелить. Пролог: Вы сообщаете вашей программе, что вы хотите иметь простреленную ногу. Программа разрабатывает способ этого достичь, но синтаксис языка не позволяет объяснить этот способ вам. Basic: Вы простреливаете себе ногу из водяного пистолета. В расширенных реализациях языка продолжайте, пока вся нижняя часть тела не промокнет. В реализациях с возможностью делать вставки из ассемблера, вы используете ранее созданные типы и уже в ассемблерной части вы простреливаете ногу дробовиком. Visual Basic: На самом деле вы будете только выглядеть, как будто ваша нога прострелена. Однако в процессе реализации вы получите столько удовольствия, что подобные мелочи вас не озаботят. Visual BASIC.NET: Вы тратите целое состояние на мощнейший, самоочищающийся, самонаводящийся, автоматический пистолет с бесконечным боезапасом и только тогда понимаете, что спуск курка занимает около года (источник). HyperTalk: Поместите первую пулю пистолета в ступню левой ноги вас. Сообщите результат. Smalltalk: Мой нога стреляй себя. Motif: Вы затрачиваете несколько дней на построение UIL — описания вашей ноги, пули, её траектории и замысловатой резьбы по слоновой кости на рукоятке пистолета. Когда вы наконец-то управились и готовы нажать на курок, затвор заклинивает. APL: Вы простреливаете себе ногу, затем тратите весь день на то, чтобы представить себе, как это сделать с меньшим количеством символов. Снобол: Если вам удастся, прострелите себе левую ногу. Если не удастся, то прострелите себе правую ногу. Unix: % ls Foot.c foot.h foot.o toe.c toe.o % rm * .o rm: .o no such file or directory % ls % BASH: От скуки вы стреляете себе в ногу ежом из арбалета, а потом думаете, как отрастить новую ногу и чем на этот раз её откромсать. Параллельный Euclid: Вы простреливаете себе чью-то чужую ногу. Язык управления заданиями IBM/370: Вы посылаете свою ногу в управляющую информационную систему с приложением документа на 400 страниц, точно описывающего, как именно вы хотите быть простреленным. Через три года ваша нога возвращается с глубоким ожогом. Paradox: Не только вы можете прострелить себе ногу, но и ваши пользователи. 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Legion_D 13 Опубликовано: 17 мая, 2014 Access: Вы пытаетесь прицелиться в вашу ногу, но в результате простреливаете все Борландовские дистрибутивные дискеты. Revelation: Вы уверены, что сможете прострелить себе ногу, как только разберетесь, для чего служат эти маленькие хорошенькие пульки. Ассемблер: Вы пытаетесь прострелить себе ногу, но обнаруживаете, что прежде вам придется изобрести пистолет, пулю, курок и вашу ногу. После чего вы нажимаете на курок, пистолет издаёт пару писков, после чего выдаёт BSoD. Ассемблер v2: Вы находите программу на Delphi, которая должна стрелять в птицу. Пишете Loader для этой программы, перехватываете функцию выстрела, меняете координаты конца траектории пули на координаты вашей ноги. Запускаете лоадер, ничего не происходит. Вы долго отлаживаете программу, материтесь, переписываете код. Но программа всё равно не работает. Через некоторое время вы догадываетесь запустить исходную программу на Delphi. ТАМ ОНА ТОЖЕ НЕ РАБОТАЕТ! Ассемблер v3: Вы пытаетесь прострелить себе ногу, но наступаете ею на грабли. Python: Вы пытаетесь выстрелить себе в ногу, но то и дело попадаете промеж пальцев. А всё потому, что Питон настолько гибкий — что из рук выскальзывает. BrainFuck: Вы палите наугад из безумной смеси пистолета и экскаватора урановыми медведями. В конце концов вам удается попасть в изогнутую по синусоиде «ногу». VHDL: Вы аккуратно описываете компоненты «нога», «рука», «пистолет» и «пуля». Любовно их отлаживаете и моделируете по отдельности. После синтеза всей системы обнаруживается, что нога и пистолет активируются на чётных тактах сигнала синхронизации, а рука и пуля на нечётных. 1C: Вы полагаете, что должны выстрелить себе в ногу, но в тех. задании, если вы умудрились его получить (подвиг!), четко сказано, что прострелить нужно кисть руки, держащей пистолет. Whitespace: Redcode: Вы стреляете себе в ногу, но у пули на сей счет иные планы. Она постоянно ищет себя, стреляет себе в ногу, удивляется результату… ABAP/4: В стандартном пистолете предусмотрена возможность стрелять из-под колена в белку на расстоянии 3 км, но выстрелить в ногу нельзя. После годовой доработки можно стрелять в ногу. На второй минуте использования выясняется, что стрелять нужно было, только если нога левая, а фаза луны четвертая. Haskell: Процесс выстрела в ногу сопровождается побочными эффектами, поэтому вы пытаетесь использовать монады для обработки ввода/вывода пистолета, но выясняется, что вы недостаточно умны для этого. AJAX: Пистолет с помощью XmlHTTPRequest запрашивает пулю, которая появляется неопределенное время спустя и попадает в птицу. ColdFusion: Программа снимает за вас ваши туфли, заряжает ваш пистолет и назначает вам прием к доктору. Вы успешно стреляете себе в ногу, но вам никто не верит. XSLT: Вы гуглите весь день, пытаясь узнать, как же выстрелить себе в ногу. Узнав решение, вы не понимаете его синтаксис и берете чужой шаблон. Он не работает. Lua: Если разработчик пистолета предусмотрел возможность выстрела в ногу — достаточно вызвать одну функцию. Если нет — хоть убейтесь, но ничего не выйдет. Apple Script: Вы простреливаете себе ногу, но перед этим вам придётся сделать автоматическую запись ваших действий в компилятор — прострел собственной ноги, и в итоге вы автоматически простреливаете себе ногу вторично. (с)Луркоморье 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Programist135 231 Опубликовано: 11 августа, 2015 Как накормить кота. ЗАДАЧА: Накормить кота. C: Вы кормите кота. C++: Вы случайно создаёте дюжину копий объектов "кот" и всех их кормите. У вас заканчивается корм. Но вы не знаете, какого именно кота вы хотели накормить, чтобы "откромить" других котов и удалить их. C#: Решётка не пропускает корм, но кот её пытается выбить, после чего перезагружается. (продолжение следует) 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Mecopy6ka 366 Опубликовано: 14 ноября, 2015 Задача: открыть для себя новые языки программирования. Scratch: Вы собираете очень красивый рисуночек. Через пару часов вы забудете, зачем пришли. FORT: Вы понимаете: вот он, язык мечты! Самый удобный, логичный и вообще, FIFO же! Но документации вы к сожалению не нашли. А через неделю вас забанили за капс в чате. Unreal Engine Editor: Вы стали дизайнером. Unity: Вы потратили 3К долларов на лицензии и сделали самую лучшую игру на ведроид. Где вы вдоначиваете косарь и циферка увеличивается на 1. .BAT: Вы хотите сделать что-то дельное, но все что у вас получается - скрипт, удаляющий папку windows. И тут вы понимаете, что у ваших друзей стоит линух. JavaScript: Вы долго учили язык, но догадываетесь его применить лишь для читов в X3:AP. PHP: Вы делаете хелловорлд на нем. Потом еще один. Затем берете и ставите wordpress. HTML: Вы берете и делаете самый крутой интерфейс управления андронным коллайдером онлайн без регистрации и смс. Но кто-то уже сделал его на cms, и вам никто не верит. Lua: Вы понимаете, что ничего не понимаете. Язык вроде и прост - но черт возьми, почему опять эррор?! Flash: Вы сделали Ковырятеля Оффлайн просто взяв куски кода из чужих приложений. А потом ее продвинули в стим. Потому что флеш аташол из моды. КуМир: Вы теряете веру в русских девелоперов. Pascal: Вы теряете веру в ИТ. 1С: Вы теряете веру в человечество. Autocad2015: Вы скачиваете инсталлер, который через 8 часов скачает инсталлер, в котором надо вбить ключ который стоит дофига денег. Затем вы понимаете, что ваш комп больше не пригоден ни к чему кроме автокада. А затем вы остаток жизни компьютера кайфуете от крутых архитекторских фич. 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Quant 442 Опубликовано: 16 ноября, 2015 Задача: открыть для себя новые языки программирования. Scratch: Вы собираете очень красивый рисуночек. Через пару часов вы забудете, зачем пришли. Альтернатива - вы "накодили" кучу всего, а потом у вас завис скрэтч из-за огромного количества клонов.И тут вы вспоминаете,что ни разу не сохранили код. 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах