long long ago; /* in a galaxy far far away */ //
    //                       _oo0oo_
    //                      o8888888o
    //                      88" . "88
    //                      (| -_- |)
    //                      0\  =  /0
    //                    ___/`---'\___
    //                  .' \\|     |// '.
    //                 / \\|||  :  |||//     //                / _||||| -:- |||||-     //               |   | \\\  -  /// |   |
    //               | \_|  ''\---/''  |_/ |
    //               \  .-\__  '-'  ___/-. /
    //             ___'. .'  /--.--\  `. .'___
    //          ."" '<  `.___\_<|>_/___.' >' "".
    //         | | :  `- \`.;`\ _ /`;.`/ - ` : | |
    //         \  \ `_.   \_ __\ /__ _/   .-` /  /
    //     =====`-.____`.___ \_____/___.-`___.-'=====
    //                       `=---='
    //
    //
    //     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //
    //               ????         ??BUG
    //«Слава богу, багов нет»
#define TRUE FALSE //Happy debugging suckers
    //
    //	Dear maintainer:
    // 
    // Once you are done trying to 'optimize' this routine,
    // and have realized what a terrible mistake that was,
    // please increment the following counter as a warning
    // to the next guy:
    // 
    // total_hours_wasted_here = 42
// Magic. Do not touch.

Коммент к AngularJS.

Коммент к исходникам Quake III Arena.

view-source:http://theoatmeal.com/


Резюме Сергея Брина
/* Stupid CSS hack because IE sucks */На сайте microsoft.com

На сайте Amazon.com

На сайте Amazon.com

Welcome to Flickr — Photo Sharing

Home of the Mozilla Project

Flipkart

    .
                             _
     _._ _..._ .-',     _.._(`))
    '-. `     '  /-._.-'    ',/
       )         \            '.
      / _    _    |                  |  a    a    /              |
     \   .-.                     ;  
      '-('' ).-'       ,'       ;
         '-;           |      .'
            \           \    /
            | 7  .__  _.-\               | |  |  ``/  /`  /
           /,_|  |   /,_/   /
              /,_/      '`-'
"...just crawl it."

MS-DOS Operating System:




Source: Farts and f-bombs: see the hidden jokes in Microsoft's early code
Запись в .EXE file:
If you can read this, you too could become a great hacker!
Source Code of SpankBang

Вебсайт анимэшки.

    /** 
    * For the brave souls who get this far: You are the chosen ones, 
    * the valiant knights of programming who toil away, without rest, 
    * fixing our most awful code. To you, true saviors, kings of men,
    * I say this: never gonna give you up, never gonna let you down, 
    * never gonna run around and desert you. Never gonna make you cry,
    * never gonna say goodbye. Never gonna tell a lie and hurt you. 
    */    //When I wrote this, only God and I understood what I was doing 
    //Now, God only knows// Autogenerated, do not edit. All changes will be undone.// sometimes I believe compiler ignores all my comments    // I dedicate all this code, all my work, to my wife, Darlene, who will 
    // have to support me and our three children and the dog once it gets 
    // released into the public.
// drunk, fix later    Catch (Exception e) {
     //who cares?
    }    
/* 
 * You may think you know what the following code does. 
 * But you dont. Trust me. 
 * Fiddle with it, and youll spend many a sleepless 
 * night cursing the moment you thought youd be clever 
 * enough to "optimize" the code below. 
 * Now close this file and go play with something else. 
 */    
//This code sucks, you know it and I know it. 
 //Move on and call me an idiot later.// If this comment is removed the program will blow up //Dear future me. Please forgive me.
//I can’t even begin to express how sorry I am.
options.BatchSize = 300; //Madness? THIS IS SPARTA!// I have to find a better job// Catching exceptions is for communists// Houston, we have a problem// If I from the future read this I’ll back in time and kill myself.// This is crap code but it’s 3 a.m. and I need to get this working//Mr. Compiler, please do not read this.B    FUBAR     # OK, I give up. Halt & take a dump!/* don't ask, don't touch *//* If you are reading this, I want you to know that I am probably on some kind of FBI watch-list because I googled “how to kill all children while leaving the parents alive”. So yeah, Linux is brutal */
    /*         ^          ^
     *		\______    ______/
     *       \  * \   / *   /
     *        -----   ------           /----     *              ||               -< Boo! |
     *             /__\                \----/
     *       \______________/
     *        \/\/\/\/\/\/\/
     *         ------------
     */
    /*
    This following code is a work of fiction. Variables, methods, classes and interfaces are either the products of the author’s imagination or used in a fictitious manner. Any resemblance to actual persons's code, living, dead or in coma is purely coincidental.
    */
    /*
     *
     *   ARRRRRRRRRRRRRRRRRRRRRR!
     *
     *
     *              |    |    |
     *             )_)  )_)  )_)
     *            )___))___))___)
     *           )____)____)_____)     *         _____|____|____|____\\\__
     *---------\                   /---------
     *  ^^^^^ ^^^^^^^^^^^^^^^^^^^^^
     *    ^^^^      ^^^^     ^^^    ^^
     *         ^^^^      ^^^
     *
     *
     */

// somedev1 - 6/7/02 Adding temporary tracking of Login screen
     // somedev2 - 5/22/07 Temporary my ass .
//If you have reached here, you're probably doing something wrong. //Increase the counter when you have tried hard to optimize this code and failed. 
    //total_hours_wasted=21// No comments, as it was hard to code, it should be hard to understand.//f**k the customers. /* Please work */ //Hey John, please fix the errors. 
    //Hey Abraham, please fix the errors. 
    //Abraham says F**k you both .    /*
    The CEO of the company (and my former boss) sold the company
    leaving me free to comment the code as I should have. The 
    former CEO of the company will be referred  to as Dip Shit, or DS for short.
     
    DS thinks he is a software developing genius. Unfortunately for
    me (the maintenance programmer) I spent too much time cleaning
     up Dip's Shit.
    DS is a daredevil developer. Like Evel Knievel his code uses
     the GOTO statement frequently jumping daringly from a code 
    module into the middle of an IF...THEN structure in a different 
    module that has nothing to do with the first module.
    Speaking of IF structures DS loves them. He has no idea what a 
    CASE or SWITCH logic block is. Instead, I get to play code 
    archaeologist, and dig though a massively nested (and un-
    indented) IF...THEN...ELSE logic blocks.
     
    DS thinks of himself as clever, and this shows though with the 
    variable names he chooses:
     
      global i=0;
      global dateMyWife = 1;
      datesAreAFruit = '12/12/98';
      giveDatesToMyWife = datesAreAFruit + dateMyWife;
      if (someStuid)
      {
        giveDatesToMyWife = false;
      }
     
      // Ryan. Why does this sometimes crash? 
      if (giveDatesToMyWife) goto :hotTub 
     
      // Well, DS because you changed giveDatesToMyWife data type, 
    (also, adding an integer to the string -- which the compiler 
    warned you about)... Anyway in a weakly typed language you 
    obtained drain bramage by conditionally changing the data type 
    from a string to a Boolean, so that when the 
    if(giveDatesToMyWife) executes, when the variable is a string 
    the program correctly crashes -- because a string is not a 
    conditional bool type. Also, since someStuid is global, the 
    invisible pink unicorn only knows where this value is set, or 
    where and in what modules it gets changed.
     
    DS only knows how to scope variables as global. Stating when he  
    "tried using local, or private, my programs would always error 
    with variable not found error, so it's just easier to make 
    everything a global."
     
    I could go on, but as you dig though this flying-spaghetti-
    monster nightmare code you will see what I mean.
    */    var c = 0,
    	safeCounter;
    ...
    safeCounter = function () {
          ...
          c++; // this is not subliminal
          ...
    },
    ...    int x; 				// x is an int
    int y; 				// y is an int
    int z; 				// z is an int
     
    /* more code here ... */
     
    if (x)				// do something here
    	return x;
    else if (x == 0) 	// do something else here
    	return y;
    else				// do something entirely different
    	return z;Коммент в исходниках VMWare:
//This exception should never happen, if it does gods help us.И все же ЭТО однажды случилось, и бог не помог...

Has the Large Hadron Collider destroyed the world yet?




Исходники Apollo 11
И напоследок, крик души:
    # Stop using anal as a variable! 
    # Wherever I look I see anal this and anal that!
    # So please stop.
    # Use analyze or xbvvzr or whatever and not anal_insert or anal_check
P.S.
// I'm sorry.Комментарии (128)
 - 3dcryx26.11.2017 01:40- Почему коментарии без соответсвующего кода? 
 Почему не перевели комментарии? - lam0x8626.11.2017 02:33- Мы не на Пикабу, чтобы комментарии переводить. Общепринято, что язык комментариев — английский, не зависимо от того, для кого написан софт.  - 3dcryx26.11.2017 03:43- Оон оно как, не знал. А кем кстати "общепринято"? Может стоит уведомить все крупные конторы об этом правиле?  - Anarions26.11.2017 03:47- Крупные конторы и так в курсе.  - 3dcryx26.11.2017 04:53- Яндекс, 1С, Сбертех как-то пропустили мимо ушей. Хотя это наверно недостаточно крупные.  - sumanai26.11.2017 05:02- Яндекс исправляет на английские и кается. 1С стыдно поминать, Сбертех… Тоже.  - TheKnight26.11.2017 05:23-1- Справедливости ради, переведены были комментарии в коде, предназначенном для использования внешними людьми. Про внутренний код никто ничего не говорил. 
 Момент, где Яндекс кается за использование русских комментариев так же не нашел. Цитату приведете?
 
 
 
  - Muzzy026.11.2017 11:05- Тех, кто пишет комменты не на английском, надо бить до посинения. 
 Доводилось мне ковыряться в коде, который писали фрицы и итальянцы. В первом случае хватало магии, во втором — адские спагетти. И комменты на немецком и итальянском, соответственно. Разработка была для заказчиков, которые не розуміють ни по-немецки, не по-итальянски.
 Я очень долго ругался и уйму времени потратил только на перевод комментов. В случае с немецким особо доставляло то, что надо локаль менять, иначе теряются некоторые символы — вот такие, например: «gro?».
 
 Сам пишу на английском. - F0iL26.11.2017 11:23- Вспоминаю попавшуюся часть проекта с комментариями на корейском. Тоже весело было.  - TheKnight26.11.2017 12:21- Встретил код с комментариями на корейском с побитой кодировкой! 
 Благо что строк кода мало и вообще это AI гомункула для игры Ragnarok Online — нет необходимости сидеть и разбираться, если не идет.
  - Mirn26.11.2017 12:40- а я сейчас работаю с наукоёмким и низкоуровневым кодом (т.к. сложный и его нереально много) на японском — то ещё счастье, особенно мило что вместо взаимствований и кальки английских терминов всё термины написали исключительно на японском. т.е. не пиксель (pixeru) а ?? и тд 
 ладно этот быдлокод разложен по полочкам, есть структура и есть документация и оформлен по самым суровым стандартам. - Free0N26.11.2017 16:08+1- Вы бы определились — или «быдлокод», или «разложен и оформлен»… 
 Если каменты не на английском, то предполагается, что продукт дальше страны не пойдет. Так или иначе, на родном языке воспринимаются намного проще (при условии «толковости» написания). - Mirn26.11.2017 16:38- объясняю на примере: 
 всё оформлено в строгом и едином кодестиле, не только для собственно программирования а ещё и для удобного документирования (типа доксигена и тд), чтоб гит давал минимум строк изменений и тд.
 всё разложено по отдельным функциям, они в классы и методы, потом модули и тд.
 но
 - вызывается в итоге одна чудо функция в которую передаётся ВСЁ, десять типов изображений, все опции и все указатели на другие функции которые аккуратно и тчательно обёрнуты, но NULL или указатель не на ту функцию с другими параметрам передать можно хотя с++.
- функция нахождения медианы из 5 чисел — сотни строк аккуратнейшего кода (хотя во всех DSP и сигнальных либах это 30-40 строк и десять compare&swap)
- на каждый вид и размерность матрицы свои функции которые принимают (void *) БРРРР!!! холодный пот!!! ну и прочие миксы си и си++.
- зачем то умножения расписаны в деления и сдвиги, хотя целевая плис аппаратных умножителей содержит в 10 раз больше чем требуется даже этому быдлокоду.
  - Korogodin26.11.2017 22:31+1- С++ и целевая ПЛИС — балуетесь HLS? Как впечатления? Нет проблем с С++'овскими фишками? 
 
 
 
  - AnutaU26.11.2017 13:56- О, тоже бывало. Но всё же лучше комментарии на корейском, чем вообще никаких, и код, кхм, нетривиальный. 
 А так больше документация на корейском попадается, либо переписка.
  - SergBell27.11.2017 06:46- Буквально пару недель назад разбирал исходники, комментарии к которым были написаны на китайском в древней кодировке GB18030. Сами китайцы закатили глаза, пожелали удачи и умыли руки. 
 
 - khim26.11.2017 17:26+1- В случае с немецким особо доставляло то, что надо локаль менять, иначе теряются некоторые символы — вот такие, например: «gro?». А нужно просто пользовать вменяемые редакторы.
 
 Самый цимес, что я видел (правда давно) — файл, который был одновременно написан в трёх кодировках. После моих правок он стан написан в четырёх кодировках… и я не о комментариях. Комментарии там, как раз, были вполне себе на английском. - Muzzy026.11.2017 18:13- А нужно просто пользовать вменяемые редакторы. Спасибо, Кэп! Step 5, Step 7.
 
 - Самый цимес, что я видел (правда давно) — файл, который был одновременно написан в трёх кодировках. Только один вопрос: зачем?!- khim26.11.2017 20:27+3- Только один вопрос: зачем?! Это был спеллчекер. На входе был, понятно, UTF-8 (XXI век, всё-такое), но дальше — оно перегонялось в однобайтовую кодировку (ядро было универсальным, но поддерживало только однобайтовые кодировки). windows-1252 для европейских языков, понятно, windows-1250 для центральной европы и, кажется, windows-1253 для греческого (вот тут могу соврать — давно дело было).
 
 Ну а вишенкой на торте было наличие некоторого количество таблиц в коде (валидные символы для разных языков), символы, «нерелевантные» для текущего языка (как и символы не поддерживаемые в текущей кодировке) перегонялись в "?" плюс таблички с классификаторами (гласные/согласные/etc).
 
 Ну и как понятно табличка для немецкого была в windows-1252, а для польского — в windows-1250… для русского, понятно, ещё windows-1251 добавился…
 
 Всё в одном файле, да. Достаточно было этот файл в каком-нибудь новомодном Eclipse открыть и один пробел поставить — и всё, тесты начинали падать (да, несмотря на весь этот ужас с кодировками в остальном-то там всё неплохо было, unit-тесты, CI, вот это вот всё)…
  - romansur27.11.2017 00:46- Зато в TIA Portal'е немцы исправились, даже теги на русском создавать можно)  - Muzzy027.11.2017 09:47- TIA Portal во многих отношениях был шагом назад, только сейчас догоняют былое. Комменты на русском мы ещё в Step 7 писали (в России и для российских заказчиков). 
 - даже теги на русском создавать можно) А вот это ни за что и никогда.
 С языками ещё одна подстава, актуальная для меня: из списка языков, которые можно добавить в проект, исчез иврит. Не сильно критично, выбираем какой-нибудь другой. Но неприятно. Из плюсов — больше не надо писать на иврите для панелей задом наперёд. Старые, под Flexible на WinCE, не поддерживали RTL.
 
 
  - alix_ginger26.11.2017 18:16- одновременно написан в трёх кодировках Но ведь английские буквы и всякие плюсы-минусы во всех кодировках в одном и том же месте? Или в коде были неанглийские?- khim26.11.2017 20:36+2- В коде были не английские. То есть было что-то в духе: 
 
 И, соответственно вот эти вот- switch (CurrentSpellcheckerLanguage) { case LanguageGerman: if (std::find_if(it1, it2, '?') { ... } break; case LanguagePolish: if (std::find_if(it1, it2, 'l') { ... } break; case LanguageRussian: if (std::find_if(it1, it2, 'ш') { ... } break; }- '?',- 'l'и- 'ш'— были в разных кодировках. Прямо внутри одной функции… - Deosis27.11.2017 08:13- Насколько трудно кусок между case и break вынести в отдельный файл? 
 Или проще есть кактус?- khim27.11.2017 12:44- Насколько трудно кусок между case и break вынести в отдельный файл? В конце-концов это и сделали… когда ресурсы нашли.
 
 До сих пор не знаю как к этому относится: код в результате стал сложнее и медленнее, но зато его можно редактировать Eclipse'ом не опасаясь всё уничтожить неловким движением. Ну и количество WTF'ов уменьшилось…
  - alix_ginger27.11.2017 12:58+1- По-моему, еще проще было бы сделать что-то вроде 
 и сравнивать по коду символа- #define CODE_GERMAN_ESZETT = 223 #define CODE_RUSSIAN_SHA = 248- khim28.11.2017 04:09-1- Ну как паллиатив — возможно. Но последний раз, когда я этот код видел правила вынесли во внешний файл специального формата, «типа понятного лингвистам»… правда правил новых там после этого за пару лет не добавилось… Но фиг его знает, может просто с лингвистами туго было… 
 
 
  - Muzzy027.11.2017 10:03- Т.е. сама программа нормально работала с кодировками, только сам файл с данными был восьмибитным? 
 
 PS вам повезло, что ко всей этой прелести не добавилась кодировка windows-1255 :)- khim27.11.2017 12:49- Т.е. сама программа нормально работала с кодировками Как я уже писал: ядро у неё нормально работало с любой однобайтовой кодировкой — а языков там было… много.
 
 - PS вам повезло, что ко всей этой прелести не добавилась кодировка windows-1255 :) А чем тут windows-1255 плох? Это бы как-то повлияло только на тех, кто поддержку иврита бы добавлял, остальные бы видели в этих местах разные свои буквы… - Muzzy027.11.2017 14:22- Тем, что к некоторой свистопляске с кодировкой добавляется свистопляска с RTL. Хотя, возможно, на уровне текстового файла это не влияет. 
 
 
 
 
 
  - Muzzy027.11.2017 09:51- Я вижу немало минусов. Подозреваю, что минусующие никогда не работали с интернациональными проектами (когда среди заказчиков и исполнителей присутствуют носители более, чем одного языка). 
 
 
 
 
 - manok26.11.2017 01:43+1- float boat; // must be a float, otherwise it sinks.
 
 - // I can’t divide with zero, so I have to divide with something very similar result = number / 0.00000000000001
 
 - // no comments for you // it was hard to write // so it should be hard to read - fatronix26.11.2017 10:55- А зачем надо было делить на ноль?)  - Zoolander26.11.2017 12:18+1- такая проблема возникает в играх с геометрическими вычислениями, когда используется формула с делением, куда в делитель может попасть 0, при этом формула должна выдавать какое-то значение (а не вываливаться с ошибкой) 
 
 решение — делать перед вычислением
 if(divider==0) return SomeSpecialResult - KvanTTT26.11.2017 14:40+2- А разве стандарт float не позволяет делить на ноль? Есть же специальные значения для Nan, PositiveInfinity, NegativeInfinity. - khim26.11.2017 17:52- А разве стандарт float не позволяет делить на ноль? Лучше бы не позволял.
 
 - Есть же специальные значения для Nan, PositiveInfinity, NegativeInfinity. - +infи- -inf— ещё себя прилично ведут. Но- nan…
 - nan < 0— false
 - nan > 0— false
 - nan == 0— false
 - nan != 0— false
 Разработчики, которые это извращение изобрели на stack overflow рассказывают сказки, но… звучит это примерно как «мины замедленного действия — это жутко круто, кишки намотанные на люстру — это просто восхитительно».
 
 Дело в том, что если вы задумаетесь, то поймёте, что неявное предположение о том, что- ==— это отношение эквивалентности (в частности- A == Aдля любого- A), а- <=— это отношение порядка (в частности если- A < B— false, то- A >= B— true) заложено в такое количество алгоритмов, что возврат из функции- nan'а — это почти акт саботажа… - grossws26.11.2017 19:19- Одна из причин почему в rust разделили типажи Ord/PartialOrd и Eq/PartialEq это как раз ieee754 
  - MrShoor26.11.2017 21:38+1- Справделивости ради в машинных инструкциях операции сравнения с NaN возвращают не False, а отдельное сотояние, которое можно понимать например как NaB (Not a Boolean. Термин не общепризнанный, но результату операции соответствуют 2 флага вместо одного, что дает нам третье состояние). Проблема в том, что это самое Not a Boolean никак не влазит в boolean, у которого только 2 состояния. Поэтому разработчики языка забили болт, и сказали, что это Not a Boolean кастится к False всегда, и не волнует. 
 Вы же в свою очередь можете разработать свой язык и компилтор, для которого результат сравнений больше/меньше/равно будет возвращать 3 состояния, и тогда проблема с nan == nan исчезнет.- khim26.11.2017 22:02+1- Вот только не надо мне сказок про машинные инструкции сочинять, я с ними, как бы, каждый день сталкиваюсь. cmpss возвращает либо 0, либо -1, других вариантов нет. Или вы про ucomiss? Да — там для NaN отдельный флаг есть, но… его-таки нужно отдельноa проверять! Для проверок же «равно»/«неравно» и «больше»/«меньше» возвращаются, опять-таки true или false — при этом инструкция перехода может либо смотреть на флаги ZF/SF, либо на PF. 
 
 Так что мне придётся создавать не свой собственный компилятор, а свой собственный процессор — что гораздо сложнее и безумнее. Гораздо более разумное решение: при обнаружении- nanпрекращать вычисления вообще. Проще, надёжнее, быстрее. - MrShoor28.11.2017 04:43- Да, я в первую очередь про ucomiss, ибо именно его используют компиляторы при сравнении флоатов. 
 - но… его-таки нужно отдельноa проверять! Для проверок же «равно»/«неравно» и «больше»/«меньше» возвращаются, опять-таки true или false Дело в том, что его нужно в ряде случаев обязательно проверять. Иначе может оказаться, что любое число будет меньше и равно NaN. И компиляторы частенько проверяют оба флага, чтобы сгенерировать false.
 
 
 
 
 
  - Muzzy027.11.2017 10:04- Либо делитель вычисляется и может оказаться нулём, либо есть цель вызвать исключение. 
 
  - untilx27.11.2017 13:16+1- Видел в одном из проектов, над которым довелось поработать, комментарий вроде «сейчас три часа ночи, я очень устал, а завтра сдавать проект» и дальше вёрстка на таблицах. Впрочем, и без того там хватало приколов, но это уже другая история. 
 
 - MuratovTM26.11.2017 02:10+1- // Нужно обязательно дунуть, потому что если не дунуть, // то никакого чуда не произойдет... // © Амаяк Акопян
 - PastorGL26.11.2017 03:40- // Please do not refactor, you probably won't optimize this better.
 - — в заголовке метода на 2000 с лишним строк. Ну, я его на сотню строк всё же сумел ужать. 
 - // contrary to popular beliefs no magic is done here
 - — перед блоком, где выполнялось 15 битовых операций подряд. Код на Java. 
 - // talk to the hand ?-? Handler hand = new TerminationHandler();
 - — автор не поленился найти в Юникоде символ для очков, которые примерил Терминатор.  - mistergrim26.11.2017 08:56- > — в заголовке метода на 2000 с лишним строк. Ну, я его на сотню строк всё же сумел ужать. 
 
 Вспомнился ассемблерный исходник тетриса для DOS, где бинарник получался размером ровно 2 Кб. Оно работало в текстовом режиме, я сумел туда дописать загрузку графики в знакогенератор, и удержаться в тех же 2 Кб. - evilgeek27.11.2017 00:47+1- Если мы говорим про один и тот же тетрис, то можно выкинуть в этом тетрисе строку копирайта и таблицу рекордов и ничего сложного. Но с таблицей рекордов есть фича — уложиться максимально близко к 64К-1, что тоже один из челленджей, так что такое выкидывание заметно меняет использование.  - mistergrim27.11.2017 08:01- Нет, челлендж был именно в том, чтобы что-то добавить, ничего не выкидывая, уложившись при этом в тот же размер. 
 
 
  - Interreto26.11.2017 14:35+1- для вас рефакторинг это ужатие количества строк? тогда я бы до 1 ужал :-D  - PastorGL26.11.2017 22:17+1- ну, там реально был алгоритм межсерверной синхронизации на полсотни шагов с состоянием, протаскиваемым с начала до конца. чисто механически порезать на куски можно было, но вот какой смысл? 23 переменных из метода в метод передавать — это уже слишком, даже если их в класс запаковать. а одним куском это было хотя бы с пятого раза читаемо. 
 
  - Muzzy027.11.2017 10:12- Напомнило историю про русского, придумавшего формулу. 
 Правда, я бы не стал удалять таблицу сразу. Как минимум, запустил бы что-то вроде
 - SELECT COUNT(A)
 FROM Table
 WHERE B <> A*3 - dimkss27.11.2017 20:43- Кстати прикол именно такой таблицы — на некоторых реализациях результат будет вычисляться одинаковое время с точностью до тика. 
 Забавно было бы, если бы результатом этой оптимизации стал бы эфект гонки, который проявился только через полгода/год. - Muzzy028.11.2017 10:28- Т.е. возможны варианты, когда целочисленное умножение исполняется за переменное количество тиков, а SQL запрос к немаленькой таблице — за постоянное? 
 Гонка из-за чего? из-за нескольких параллельных обращений к формуле/таблице? Не думаю, что там это было актуально. А даже если, то слишком легкомысленно полагаться на одинаковое время исполнения и не отлавливать потенциальные гонки. - dimkss28.11.2017 10:56- > SQL запрос к немаленькой таблице 
 Это не обязательно таблица. Возможно просто внешняя память.
 
 > Гонка из-за чего? из-за нескольких параллельных обращений к формуле/таблице? > Не думаю, что там это было актуально.
 Мы наверно никогда не узнаем.
 
 > А даже если, то слишком легкомысленно полагаться на одинаковое время исполнения.
 Согласен. Кстати, насколько я помню, некоторые платы реального времени именно так и работают.
 
 
 
 
 - zenn26.11.2017 09:06- Простите за зануду, но не нашел подтверждений для "Исходники Apollo 11". Исходники давно опубликовали на гитхабе chrislgarry/Apollo-11. Не в текущем master, ни в инициирующем комите #7 (6e8c67f53145375d48d8a1af8f85384d1b10ec51) не удалось найти ни одного вхождения по «anal», если и используется то вполне корректно как «analysis». Естественно самого комментария в коде нет. Возможно, конечно, он был на стадии разработки проекта, но что-то я в этом сильно сомневаюсь.  - VezhLos26.11.2017 14:36+1- Я вот не знаю, как там у Apollo, а в нашей больничной БД названия всех таблиц и полей, имеющих отношение к лабораторным анализам, начинаются с ANAL_. Например, ANAL_DIR, ANAL_COMMON и т.п. В общем, всё через жо… Простите, через ANAL.  - Muzzy027.11.2017 09:55- Когда вышестоящие товарищи захотели сократить слово «ANALOG(_INPUT)» я тоже предложил не маяться дурью и сократить до ANAL_IN. 
 
 А ещё лекарство есть — ANAL GIN :)
 
 
 - fatronix26.11.2017 10:38- //DNA - Because fuck you and your magic numbers being all over the codebase. #define DNA_BLOCK_SIZE 3- askv26.11.2017 10:43- Зря ноль перестали зачеркивать :)  - yizraor26.11.2017 11:12- Что именно Вы имеете в виду? 
 В командной строке и многих IDE по дефолту используются шрифты с зачёркнутым нулём.
 Или Вы про хабр речь ведёте? В блоках кода действительно нули обычные… Ну, можете предложение кинуть админам хабра, чтобы со шрифтом поиграли для блоков кода.
 - int x = 0; // обычный нолик :) - vvzvlad26.11.2017 13:38- Эээ…   - yizraor26.11.2017 14:04- Серьёзно? 
 А у меня по-другому...
  
 - По настройкам в своём профиле пробежался, вроде как ничего не нашел по настройкам шрифтов… У Вас какой браузер/ОС, если не секрет? (у меня Mozilla/Win10)  - vvzvlad26.11.2017 14:06- Chrome/MacOS  - yizraor26.11.2017 14:08- Может быть, дефолтный шрифт в браузере разный? 
 У меня "Times New Roman" стоит. Может быть, у Вас "программерский" шрифт на дефолте?
 - UPD: 
 поменял дефолтный шрифт на "Consolas", ничего не изменилось :(
 какая-то бага хабра, как думаете? - vvzvlad26.11.2017 14:21- У меня просто стоит Menlo(специально не ставил, вообще в первый раз его вижу осознанно), который указан в стилях, он и используется, видимо — в нем нолик перечеркнутый. 
  
 
 
 
 
  - AreD26.11.2017 14:26- У меня для вас плохие новости :) Хабр использует моноширинный системный шрифт. Ниже скриншот моей ОС: 
  
 А вот код стиля для шрифта исходников хабра:
 - font-family: Menlo, Monaco, 'Courier New', monospace
 Предположу что вы читаете Хабр под Windows, а в Courier New ноль без зачеркивания. - yizraor26.11.2017 14:41- Да, Вы правы :) 
 Я скачал и установил в системе шрифт Monaco, теперь блоки кода сменили вид и отображаются этим шрифтом.
 Спасибо! - yizraor26.11.2017 14:48+1- Черкнул в службу поддержки предложение пересмотреть список шрифтов в стилях… 
 Правда, не знаю, сочтут ли этот вопрос достойным рассмотрения — так-то невелика проблема- BeppeGrillo27.11.2017 15:03- Вообще, раз это сайт для профессионалов, следует использовать профессиональный шрифт с лигатурами типа github.com/tonsky/FiraCode 
 
 /CC msdos9 AreD vvzvlad askv Boomburum - faiwer27.11.2017 15:29- Мне кажется это плохая идея, тащить лигатуры в статьи. Все эти автозамены уместны в уютном, под себя настроенном, редакторе, а в статьях будут создавать лишь путаницу и вызывать множество вопросов. К тому же, они не всегда идеально работают. Использую FiraCode и иногда натыкаюсь на появление символов там, где я бы не хотел их видеть. 
  - vvzvlad27.11.2017 16:18- Вот не надо лигатур на сайте, где могут быть не очень профессионалы — они разительно отличаются от того, что написано в любых руководствах и могут ввести в заблуждение. Я их и в редакторе-то не использую. 
 
 
  - msdos927.11.2017 10:40- Тоже скачал и установил Monaco в ОС, но шрифт блоках кода на хабре не изменился ((( Пользуюсь Win7/Firefox  - yizraor27.11.2017 18:30- Проверьте название шрифта :) 
 У меня тоже первая попытка была неудачной, но это был шрифт "Monaco Plain".
 Затем я поискал ещё, нашёл шрифт с точным названием "Monaco" и вот на нём уже всё заработало :)
 
 
 
 
 
 
- yarric26.11.2017 11:02+1- А можно подписи к изображениям писать над самими изображениями? Я, конечно, понимаю — ЕСКД там, ГОСТ и все дела, но удобнее читать сверху-вниз всё-таки... 
- Aquahawk26.11.2017 12:42- const { __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, } = require('ReactNative'); module.exports = __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactDebugTool;
 
 https://github.com/facebook/react-native/blob/678a7f3c39e495db602e90e994894051eb7aab10/Libraries/Renderer/shims/ReactDebugTool.js
 - PravdorubMSK26.11.2017 13:10- Тонкий юмор, присущий лишь задротам. Даже не знаешь, плакать или смеяться. 
 - DrLivesey26.11.2017 13:54- #define TRUE FALSE //Happy debugging suckers
 - Это слишком просто, здесь есть на много больше интересного. 
 - pankraty26.11.2017 16:35+1- Достойное пополнение коллекции 
 
 - /* COME TO THE DARK SIDE!!! _.-'~~~~~~`-._ / || \ / || \ | || | | _______||_______ | |/ ----- \/ ----- \| / ( ) ( ) \ / \ ----- () ----- / \ / \ /||\ / \ / \ /||||\ / \ / \ /||||||\ / \ /_ \o========o/ _\ `--...__|`-._ _.-'|__...--' | `' | */
 
 Из заголовочной части одного очень заморочного модуля.
 - Shchvova26.11.2017 17:37- Кому интересно, pterodactyl.me когда-то редиректил сюда theoatmeal.com/comics/ptero 
 - AkshinM26.11.2017 18:25- есть еще такая 
 Вот  - arch1tect0r27.11.2017 11:51- Последнее прям вообще доставило… Есть у меня код в котором есть вот такие забавные методы PasteAnalExecute, DelAllAnalExecute, CopyAnalExecute 
 
 P.S. и это не софт для игрушек 18+
  - shomnest28.11.2017 14:02+1- Из Вики ru.wikipedia.org/wiki/RMI 
 - int q=centralWarehouse.getQuantity("SuperSucker 100 Vacuum Cleaner");
 
 
           
 

















ZyXI
А что не так с
?
lopatoid
То что этот код не автосгенерирован, а написан человеком.
Survtur
Почему вы так решили?
Amenothis
Встречал эту штуку в приколах, где написано что-то вроде: «Чтобы ваш код никто не трогал, добавьте в нее эту строчку».
dipsy
На StackOverflow там ещё был комментарий на этот комментарий: «This seems to stop morons from messing my code...»