Как стать автором
Обновить

Комментарии 110

CHALLENGE ACCEPTED
// Я посвящаю весь свой код, всю работу своей жене Дарлин, которой
// придётся содержать меня, наших троих детей и собаку, когда
// это пойдет в паблик.

Просто Шедевр!!!
Видел подобный код в одном из проектов:

int optimisticRange = 30; // радиус кривизны васиных рук

Настроение было улучшено до конца рабочего дня :)
Автор, ни в оригинальной статье, ни в топике на SO ни слова не сказано об open source.
alizar же.
Это ж надо незаметить что это и есть перевод оттуда…
Там просят зарегистрироваться.
Это так боянисто, что аж уши закладывает
у меня в одной программе есть коммент такого типа:

// ????-????, ????? ???? ?????! :)

Скорее всего кодировка битая.
да что вы говорите? =)

кодировка-то была битая когда-то давно, превратив послание от моей жены (добралась до компа, когда я отошел) в набор знаков вопроса. Сейчас с кодировкой все в норме, но текст остался загадкой для потомков )
А восстановить кодировку восстановить не судьба?
восстановить кодировку восстановить из знаков вопроса? не судьба.
я встречал по круче:

tmp_BSEG[] = T_BSEG[].

*… керек шоттарды толтыру…

if Ob_Racct is initial.
create object Ob_Racct.
endif.
* 2007 жылынын жана шоттары
refresh tmpTab.
refresh HKONT.
call method Ob_Racct->GetUserSetValue
exporting SetName = 'ZALL_RACCT_2007'
changing source = tmpTab.
казах писал?
ага. верно. казах абапер
Повезло что не индус. У них такие «шоттары» в коде прям встречаются)
Казах абапер — уже само по себе звучит! «Казах абапер жылтырататын елдырма»!
Это татарский.
В андроиде порадовала встроенная функция логгирования Log.wtf(), причём именно её «расшифровка».
What a Terrible Failure!
Еще из Android: developer.android.com/reference/android/widget/Advanceable.html#fyiWillBeAdvancedByHostKThx%28%29
Иконка LogCat — это Андроид в стиле Nyan Cat. И еще вместо команды adb logcat можно использовать adb lolcat :)
Нормальный коммент. Сам им пользуюсь)

C:\work>ack WTF
draw_calc\analize\test_matrix_wave.pl
119:    print "WTF\n" unless $found;

draw_calc\db_writer.pl
235:    assert($path && $db_tree, 'Blank path: WTF?');

ft\next_try.py
186:            raise "WTF"

ft\parse.py
435:            raise "WTF"

ft\parse_v3.py
297:            raise "WTF"

g_serv\AskStat.pm
587:                            die "$self->{Arg}{key} => $self->{Arg}{val} not found (WTF?)" unless list;
647:                            die "$self->{Arg}{key} => $self->{Arg}{val} not found (WTF?)" unless list;
747:                            die "$self->{Arg}{key} => $self->{Arg}->{val} not found (WTF?)" unless list;

g_serv\db\test.pl
5:my $dbh = DBI->connect("*****","","") || die 'WTF';

Я обычно не закрываю двери в свой кабинет и отлично слышу что происходит в комнате с программистами. Наша переписка по скайпу с одним из них:

[16:10:16] MULIN:
IF(РОМИЧ.НЕНОРМАТИВНАЯ ЛЕКСИКА == TRUE)
{
РОМИЧ.ЖОПА = MULIN.ПЕНДЕЛЬ;
}

[16:14:12] РОМИЧ:
DESTROY (MULIN);

[16:30:38] MULIN:
IMPORT MULIN;
TRY
{
РОМИЧ.ZARPLATA = MULIN.MONEY;
}
CATCH(E)
{
CONSOLE.WRITE («ERROR MESSAGE: OBJECT MULIN NOT FOUND»);
}

[16:33:36] РОМИЧ:
WHILE(TRUE)
{
РОМИЧ.ZARPLATA += MULIN.MONEY;
IF(MULIN.MONEY==0)
MULIN MULIN = NEW MULIN();
}
Когда программист (ненормативная лексика) == программист(работает)
Они мне тоже самое говорят )
В комментариях к MVCC проверкам PostgreSQL долгое время был вот такой фрагмент:
mao says 17 march 1993: the tests in this routine are correct; if you think they're not, you're wrong, and you should think about it again. i know, it happened to me.

В актуальной версии исходников его уже выпилили. Последнюю версию соответствующего файла с ним можно посмотреть здесь:
git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/backend/utils/time/tqual.c;hb=e126958c2efdfc2d60b978d1fc7a780ff647e8ad
Из разряда «психанул» :)
из разряда «всё правильно сделал [x]»
Вы меня заставили протереть монитор, пока я понял, что он ничем не заляпан.
Меня тоже :D
У нас в коде живут герои Star Wars (ascii telnet) и всякая псевдографика,
Transformer revengeOfTheFallen;
и аннотация @Workaround
Встречал в проекте жуткий индусский говнокод, с комментарием
// I am sorry

Только сегодня поставил в Template новых файлов:
/**
* Created by ${USER} ${DATE} ${TIME}
* Этот код распространяется под лицензией JCD:
* 1. Вы можете делать с кодом всё что угодно, но обязаны комментировать;
* 2. Использовать Tab для отступов;
* 3. Пользоваться автоформатированием (e.g Ctrl+Alt+L, Ctrl+Shift+F)
*/
Ctrl+Alt+L

ща заминусят поди, но все же =)
развернул я консоль, открыл вим, открыл проект, нажал сочетание. Кеды заблокировали экран. Видимо они так прозрачно намекают.

PS автоформатирование это такая прикольная штука, что во всех нормальных редакторах (даже какой нить kwrite это умеет вроде), она легко настраивается практически как угодно
> открыл вим
Имеется ввиду среда разработки, а не vim.
отсюда:
Уровень 0: как выйти из vim
Уровень 1: vim — не IDE
Уровень 2: vim — IDE
Уровень 3: кому нужны IDE, если есть vim


PS уверен на 95% (проверять не в чем), что кеды из чего угодно перехватят это сочетание.
PPS нашел у себя установленный qtcreator — там ctrl+i.
О, в предупреждение возможных споров — я понял ваше сообщение, но оно какое то странное, ИМХО, в области автоформатирования ;)
Мне нужна IDE, даже если есть vim :-)
Потому что IDEA наше все :-)
P.S. Только без холиваров! :-)
Сталкивался с таким поведением в IDEA, пришлось включить эклипсную раскладку (за поддержку которой ребятам из JetBrains отдельное спасибо).
Кстати, Ctrl+Shift+F — тоже непростая комбинация. В старых линуксах Ctrl+Shift+[A-F|U] использовали для ввода юникодных символов. Сейчас от этого оставили только Ctrl+Shift+U (и затем шестнадцатиричный код).
/* Отношение длины окружности к ее диаметру. 
    Не забудьте поменять значение на 3.0 для штата Индиана */

#define Pi                                      3.1415927
Интересно, для сверхточных вычислений некоторые хранят PI в файле? И насколько он велик?
Где-то я читал, что для точных расчетов необязательно вычислять ОЧЕНЬ много знаков после запятой.
Но правда это или нет сейчас не знаю
Точность расчетов определяется точностью измерительных приборов. Обычно половинят цену деления прибора и округляют все вычисления до этого знака.
Для вычисления размера видимой вселенной достаточно 39 знаков: www.youtube.com/watch?v=FpyrF_Ci2TQ
С регионального сайта Нокиа в бородатом году.

Может на Хабре живет хозяин сих перлов.
оригинал имеется, храню для потомков

savepic.su/3106823.jpg
У меня вот сейчас такие хохмокомментарии в стиле:

// Пытаемся авторизоваться.
// Куки.
// Не получилось. Бывает. Тогда сессия.
и т.п.

Так и вижу Петросяньи лица с гнусным «хи-хи-хи» в тот момент, когда они решили написать это. Код, кстати, соответствующий.
Очень смеялся когда-то со следующего комментария, который встретил в исходниках Android:

     /**
     * @hide
     * Private impl for avoiding a log message...  DO NOT USE without doing
     * your own log, or the Android Illuminati will find you some night and
     * beat you up.
     */
Много раз видел эту штуку:



А, оказывается, дело вот в чем:

/// <summary>
/// The possible outcomes of an update operation (save or delete)
/// </summary>
public enum UpdateResult
{

    /// <summary>
    /// Updated successfully
    /// </summary>
    Success = 0,

    /// <summary>
    /// Updated successfully
    /// </summary>
    Failed = 1
}
«Fatal IO error 0 (Success)»
(Это даже компилируется в C99/C++0x).

public boolean isAvailable() {
    return false;
}


C синтаксисом понятно:

#include <iostream>
#define boolean : bool

false

class foo {
  public boolean static isAvailable() {
      return false;
  }    
};

int main() {
    std::cout << std::boolalpha << foo::isAvailable() << std::endl; // false
    
    return 0;
}


Но как получить true?
комментарий в скобках был к коду, под которым он был. (long long ago). Ваш К.О.
// Магия. Не трогать.

Как ни печально, но такое в коде встречается нередко. И хорошо, если автор сего удосуживается описать смысл магии.
А ровно один раз сам написал комментарий:
// Let the magic begin
После чего шли десяток строк с зубодробительными конвертациями структур данных на Linq и Rx.
Через полтора года пришлось немного поменять код. Поменял мелочь, удалил Б-гмерзкий комментарий, попытался отрефакторить, откатился, восстановил комментарий. Пусть уж лучше магия.
Вот уже неделю или больше собираюсь написать статью, для нее писал perl'овый скрипт, одной из задач которого является сделать исходники на C/C++ (там не важно). Там, где кусок исходников генерируется особо непонятно, пока что красуется "#MAGIC!!!", и я даже не знаю как это можно кратко разъяснить.
> #define TRUE FALSE
> // Удачного дебаггинга, молокососы

Слишком банально.

Гораздо лучше этот вариант:

#include <cstdlib>
#include <exceptio.h>

#define return if (std::random(1000) < 2) throw std::exception(); else return

туда-же
#define malloc(X) ((void*) std::random())
А чё там дебажить-то? Логи спасут человечество.
А модификацию ячейки памяти по адресу вы тоже будете в логе отслеживать? А поигратся со значением перемнной на лету? А передвинуть точку исполнения — какой вопиющий хелловординг, ну будем же проффесионалами ЙОКэЛэМэНэ!
Там и в комментариях отличные есть :)

/* create memory leaks if compiled on April, 1st */
#define free(x) if(strncmp(__DATE__, «Apr 1», 6) != 0) free(x)

#define strcpy(a,b) memmove(a,b,strlen(b)+2)
#define strcpy(a,b) (((a & 0xFF) == (b & 0xFF)) ? strcpy(a+1,b) : strcpy(a, b))

Во второй строчке препроцессорная рекурсия или используется первое определение?
сюда же

#define if(condition) if(rand()%2)
Столкнулся на фрилансе как-то с одним заказом, который выполнял какой-то писатель.

//вёрстка сделана так, что хуже пожалуй что даже почти некуда
//но с ТАКИМ «дизайном», любые другие варианты не уложатся в такой «бюджет»
//поэтому сидите и не чирикайте…
//да-да, мы имеем фиксированную ширину в 1280рх. скажите спасибо «дизайнеру».

И весь код пронизан нереальным количеством абсолютно бессмысленных комментариев.

//FORCE PNG!!! use the FORCE!!!
[...]
//конечно это ОЧЕНЬ ДИКОЕ извращение, но так предусмотрены всякие гадости с множественным путём…
[...]
//если мы загружали карту или другое дерьмецо, то НИЧЕГО не делать
хочу развидеть это(
встречалось:
// лишь бы дети хорошо учились
Из чьей-то лабораторной работы по программированию:

// 8-926-123-45-67 Маша

Я так на олимпиадах по программированию писал. Но судя по количеству звонков их никто не читает…
Вы тоже подписывались Маша?
Кто нибудь, позвоните по номеру :)
видел и такое
if (isset($_GET['id'])) { .... } else {
// В любой непонятной ситуации просто ложись спать. 
exit;
}
Совершенно недавно работал над изучением кода MediaWiki и провел много радостных часов:

Article.php:450: // todo FIXME: Horrible, horrible! This content-loading interface just plain sucks.
WikiPage.php:185: * todo: move this UI stuff somewhere else
WikiPage.php:3144: * todo This is a shitty interface function. Kill it and replace the
* other shitty functions like doEditUpdates and such so it's not needed
* anymore.
Title.php:170: * THIS IS NOT THE FUNCTION YOU WANT.
EditPage.php:1270: // FIXME this sucks, we should just use the Status object throughout
HtmlForm.php:1974: # If one of the options' 'name' is int(0), it is automatically selected.
# because PHP sucks and thinks int(0) == 'some string'.
# Working around this by forcing all of them to strings.
ApiEditPage.php:229: // That interface kind of sucks, but it's workable
ApiEditPage.php:337: // todo FIXME: This interface SUCKS
ApiQueryQueryPage.php:47: // This SUCKS
SqliteInstaller.php:169: # Setting globals kind of sucks
JpegMetadataExtractor.php:136: // Just need to find out what the byte order is.
// because php's exif plugin sucks…
SearchEngine.php:395: $contextlines = 2; // Hardcode this. Old defaults sucked. :)
$contextchars = 75; // same as above… :P
UploadBase.php:1020: * Internet Explorer for Windows performs some really stupid…
Setup.php:303: /// todo UGLY UGLY
UtfNormal.php:316: # Since PHP is not the fastest language on earth, some of
# this code is a little ugly with inner loop optimizations.
User.php:4115: // Now here's a goddamn hack…

Это то что быстро смог найти, а вообще там иногда целые короткие рассказы от разработчиков. Кстати ну не знаю как Вам,
а меня реально напрягает файл в 4000 и более тысяч строк. Ну не пойму зачем так нужно было делать?

Интересно много уже было случаев суицида среди разработчиков MediaWiki?
бедный todo…
В последнее время использую только три вида комментариев:

//DEBUG

//STUB

//<hell>
...
//</hell>
НЛО прилетело и опубликовало эту надпись здесь
image
image
Мне всегда нравился комментарий про то, что это тяжело было написать, что- то типа:
It was hard to write, it should be hard to understand and harder to modify. So — no comments.
НЛО прилетело и опубликовало эту надпись здесь
это намного круче, хотя и боян (извиняюсь за отуствтие форматирования, у меня теги не работают):

int GetRandomNumber()
{
return 4; // Chosen by a fair dice roll
// Guaranteed to be a random
}
KolibriOS kernel.asm
.epic_fail:

hlt; Houston, we've had a problem
protected static function getMostRelevant(array $documents)
{
	...
	// если документ всего один, то он и возвращается
	...
	// если остался один, то он возвращается
	...
	// если остался один, то он возвращается
	...
	// если остался один, то он возвращается
	...
	// если все еще более одного совпадения
	// I'm Feeling Lucky!
	return $documents[0];
}
for($j=0; $j < 23000000; $j++); //пауза ~3 сек
Не комментарий, но все же:

void get_tomorrow_date( struct timeval *date )
{
   sleep( 86400 );  // 60 * 60 * 24
   gettimeofday( date, 0 );
}
Из ответов на stackoverflow:

// somedev1 -  6/7/02 Adding temporary tracking of Login screen
// somedev2 -  5/22/07 Temporary my ass

И вольный перевод:
// разработчик1 -  07.06.2002 Добавил временное отслеживание экрана логина
// разработчик2 -  22.05.2007 Ну ОЧЕНЬ временное...
Нет ничего более постоянного чем временное. (с) Народная мудрость.
Короткая история из собственного факапа.
1. Работая над проектом отвлекся на звонок.
2. Надо было записать номер телефона -записал комментом в код.
3. код ушел на сертификацию.
4. Молодые лейтенанты обладают чувством юмора и им просто было интересно — чей это номер.
5. Звонок девушке: «Ало. С вами говорит N-ый центр ***, с кем я говорю» — бесценно :))

У меня было такое что в комментариях программисты оставляли сообщения для будущих программистов как кинул их заказчик.
Недавно в sql процедуре натнулся на следующий комментарий (близко к тексту)
/*
Я не знаю, кто и зачем ТАК написал эту процедуру.
Исправлять не буду, Бог тебе судья!
*/
Встречал код типа

month[1]=января;
month[12]=декабря;
month[13]=хренобря;
НЛО прилетело и опубликовало эту надпись здесь
Программистам должно было и хренобря хватить )
многие отсчёт и с нуля начать могут ;)
$day[0]='нулельник';
$day[1]='понедельник';
$day[2]='вторник';
… AdminCMS, малоизвестная печалька.
Помню сам на уроках информатики писал «нольдцать». Эх, было время.
Всегда считал вот этот комментарий, достойным перевода: stackoverflow.com/a/769443

// Здесь, я хотел бы немного поговорить с тобой о Adobe PSD формате. PSD это не хороший
// формат. PSD это даже не плохой формат. Называть его плохим, было бы оскорблением других 
// плохих форматов, таких как PCX или JPEG. Нет, PSD это отвратительнейший формат. Поработав 
// над этим кодом уже несколько недель, моя ненависть к PSD выросла в бушующее пламя, 
// которое горит с всепоглощающим жаром миллиона солнц.

// Если есть два различных пути сделать что-нибудь, PSD будет использовать оба в разных местах. 
// Потом он придумает еще три пути, до которых бы не догадался ни один вменяемый человек, и 
// также будет их использовать. Несовместимость - это форма искусства для PSD. Например, 
// почему, он вдруг решил что именно *эти* блоки должны быть выровнены по 4х 
// байтовой границе, а вот это выравнивание *не* должно быть включено в размер. Другие 
// блоки в других местах либо не выравниваются или выравниваются по границам, включенным 
// в размер. Хотя, здесь, они не включены. Подошел бы любой из этих трех возможных вариантов 
// поведения. Вменяемый формат бы выбрал один. PSD, конечно же, использует все три и даже 
// больше.

// Попытка получить данные из PSD файла - это как попытка найти что-то на чердаке вашего 
// эксцентричного старого дядюшки, убитого обдолбанной пресноводной акулой на его 58ой
//  день рождения. Такие подробности, может быть, и не важны для целей этого сравнения, но 
// теперь я провожу очень много времени, придумывая интересные судьбы для людей, 
// написавших этот формат имени Рубена Голдберга (*).

// Недавно, я пытался заполучить последние спецификации PSD формата. Чтобы их получить, мне 
// бы пришлось подать заявление на разрешение на заявление им, чтобы они хотя бы подумали, 
// стоит ли высылать мне этот священный том. Это бы включало в себя отправку им по факсу 
// копии какого-нибудь документа или чего-нибудь другого, скорее всего, подписанного кровью. Я 
// могу только предполагать, что они сознательно затрудняют этот процесс, потому что им крайне 
// стыдно за создание этой мерзости. Я не слишком доверчив от природы, чтобы пройти через эту 
// процедуру, но если бы я это сделал, я бы распечатал каждую страницу спецификации и сжег бы 
// их все. Если бы это было в моей власти, я бы собрал все копии этих спецификаций и запустил 
// их на космическом корабле прямиком к солнцу.

// PSD - мой не самый любимый формат.


(*) Рубен Люциус Голдберг — американский карикатурист, более всего известен серией карикатур, в которых фигурирует так называемая «машина Руба Голдберга» — чрезвычайно сложное, громоздкое и запутанное устройство, выполняющее очень простые функции.
Вот крики души иногда бывают у людей — слезы на глаза наворачиваются

wFrame.origin.y = (int)CGRectGetMaxY([header frame])+5;//Oh 10 hours of my life and what i know? Subviews of UIWebView Forgot mantissa! (bug 30208)
Источник уже не помню, но встречал чудесный метод:

void enableDisable();
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории