Комментарии 110
// total_hours_wasted_here = 42
Судя по комменту на Хабре за 3 года успели ещё 5 часов добавить в каунтер.
+29
Есть же история изменений поста на SO. Сначала там вообще 16 было.
+3
CHALLENGE ACCEPTED
+13
// Я посвящаю весь свой код, всю работу своей жене Дарлин, которой
// придётся содержать меня, наших троих детей и собаку, когда
// это пойдет в паблик.
Просто Шедевр!!!
+33
Видел подобный код в одном из проектов:
Настроение было улучшено до конца рабочего дня :)
int optimisticRange = 30; // радиус кривизны васиных рук
Настроение было улучшено до конца рабочего дня :)
+17
Автор, ни в оригинальной статье, ни в топике на SO ни слова не сказано об open source.
+5
Это так боянисто, что аж уши закладывает
+21
double penetration; // ouch
+97
у меня в одной программе есть коммент такого типа:
// ????-????, ????? ???? ?????! :)
// ????-????, ????? ???? ?????! :)
+6
Скорее всего кодировка битая.
-5
я встречал по круче:
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.
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.
+1
+2
What a Terrible Failure!
+8
Ещё из API Android developer.android.com/reference/android/app/ActivityManager.html#isUserAMonkey()
+1
Еще из Android: developer.android.com/reference/android/widget/Advanceable.html#fyiWillBeAdvancedByHostKThx%28%29
Иконка LogCat — это Андроид в стиле Nyan Cat. И еще вместо команды adb logcat можно использовать adb lolcat :)
Иконка LogCat — это Андроид в стиле Nyan Cat. И еще вместо команды adb logcat можно использовать adb lolcat :)
0
Нормальный коммент. Сам им пользуюсь)
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';
0
Я обычно не закрываю двери в свой кабинет и отлично слышу что происходит в комнате с программистами. Наша переписка по скайпу с одним из них:
[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();
}
+1
В комментариях к MVCC проверкам PostgreSQL долгое время был вот такой фрагмент:
В актуальной версии исходников его уже выпилили. Последнюю версию соответствующего файла с ним можно посмотреть здесь:
git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/backend/utils/time/tqual.c;hb=e126958c2efdfc2d60b978d1fc7a780ff647e8ad
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
+7
Или вот
img.leprosorium.com/1906472
img.leprosorium.com/1906472
+24
+5
У нас в коде живут герои Star Wars (ascii telnet) и всякая псевдографика,
Transformer revengeOfTheFallen;
и аннотация @Workaround
Transformer revengeOfTheFallen;
и аннотация @Workaround
0
Встречал в проекте жуткий индусский говнокод, с комментарием
// I am sorry
+28
Только сегодня поставил в Template новых файлов:
/**
* Created by ${USER} ${DATE} ${TIME}
* Этот код распространяется под лицензией JCD:
* 1. Вы можете делать с кодом всё что угодно, но обязаны комментировать;
* 2. Использовать Tab для отступов;
* 3. Пользоваться автоформатированием (e.g Ctrl+Alt+L, Ctrl+Shift+F)
*/
/**
* Created by ${USER} ${DATE} ${TIME}
* Этот код распространяется под лицензией JCD:
* 1. Вы можете делать с кодом всё что угодно, но обязаны комментировать;
* 2. Использовать Tab для отступов;
* 3. Пользоваться автоформатированием (e.g Ctrl+Alt+L, Ctrl+Shift+F)
*/
0
Ctrl+Alt+L
ща заминусят поди, но все же =)
развернул я консоль, открыл вим, открыл проект, нажал сочетание. Кеды заблокировали экран. Видимо они так прозрачно намекают.
PS автоформатирование это такая прикольная штука, что во всех нормальных редакторах (даже какой нить kwrite это умеет вроде), она легко настраивается практически как угодно
+1
> открыл вим
Имеется ввиду среда разработки, а не vim.
Имеется ввиду среда разработки, а не vim.
-5
отсюда:
PS уверен на 95% (проверять не в чем), что кеды из чего угодно перехватят это сочетание.
PPS нашел у себя установленный qtcreator — там ctrl+i.
О, в предупреждение возможных споров — я понял ваше сообщение, но оно какое то странное, ИМХО, в области автоформатирования ;)
Уровень 0: как выйти из vim
Уровень 1: vim — не IDE
Уровень 2: vim — IDE
Уровень 3: кому нужны IDE, если есть vim
PS уверен на 95% (проверять не в чем), что кеды из чего угодно перехватят это сочетание.
PPS нашел у себя установленный qtcreator — там ctrl+i.
О, в предупреждение возможных споров — я понял ваше сообщение, но оно какое то странное, ИМХО, в области автоформатирования ;)
+12
Сталкивался с таким поведением в IDEA, пришлось включить эклипсную раскладку (за поддержку которой ребятам из JetBrains отдельное спасибо).
0
Кстати, Ctrl+Shift+F — тоже непростая комбинация. В старых линуксах Ctrl+Shift+[A-F|U] использовали для ввода юникодных символов. Сейчас от этого оставили только Ctrl+Shift+U (и затем шестнадцатиричный код).
0
/* Отношение длины окружности к ее диаметру.
Не забудьте поменять значение на 3.0 для штата Индиана */
#define Pi 3.1415927
+20
Интересно, для сверхточных вычислений некоторые хранят PI в файле? И насколько он велик?
0
Где-то я читал, что для точных расчетов необязательно вычислять ОЧЕНЬ много знаков после запятой.
Но правда это или нет сейчас не знаю
Но правда это или нет сейчас не знаю
0
+2
Для вычисления размера видимой вселенной достаточно 39 знаков: www.youtube.com/watch?v=FpyrF_Ci2TQ
+2
С регионального сайта Нокиа в бородатом году.
Может на Хабре живет хозяин сих перлов.
оригинал имеется, храню для потомков
savepic.su/3106823.jpg
Может на Хабре живет хозяин сих перлов.
оригинал имеется, храню для потомков
savepic.su/3106823.jpg
+1
Очень смеялся когда-то со следующего комментария, который встретил в исходниках 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.
*/
+2
bla-bla-bla… // no comments
0
Много раз видел эту штуку:
А, оказывается, дело вот в чем:
А, оказывается, дело вот в чем:
/// <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
}
+7
(Это даже компилируется в 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?
-5
/* FIXME: please god, when will the hurting stop? Thus function is so
fucking broken it's not even funny. */
fucking broken it's not even funny. */
0
// Магия. Не трогать.
Как ни печально, но такое в коде встречается нередко. И хорошо, если автор сего удосуживается описать смысл магии.
+9
А ровно один раз сам написал комментарий:
После чего шли десяток строк с зубодробительными конвертациями структур данных на Linq и Rx.
Через полтора года пришлось немного поменять код. Поменял мелочь, удалил Б-гмерзкий комментарий, попытался отрефакторить, откатился, восстановил комментарий. Пусть уж лучше магия.
// Let the magic begin
После чего шли десяток строк с зубодробительными конвертациями структур данных на Linq и Rx.
Через полтора года пришлось немного поменять код. Поменял мелочь, удалил Б-гмерзкий комментарий, попытался отрефакторить, откатился, восстановил комментарий. Пусть уж лучше магия.
+2
> #define TRUE FALSE
> // Удачного дебаггинга, молокососы
Слишком банально.
Гораздо лучше этот вариант:
> // Удачного дебаггинга, молокососы
Слишком банально.
Гораздо лучше этот вариант:
#include <cstdlib>
#include <exceptio.h>
#define return if (std::random(1000) < 2) throw std::exception(); else return
+13
туда-же
#define malloc(X) ((void*) std::random())
+3
А чё там дебажить-то? Логи спасут человечество.
0
Вот правильный вариант этого дела: gist.github.com/aras-p/6224951
+3
+1
Там и в комментариях отличные есть :)
/* create memory leaks if compiled on April, 1st */
#define free(x) if(strncmp(__DATE__, «Apr 1», 6) != 0) free(x)
/* create memory leaks if compiled on April, 1st */
#define free(x) if(strncmp(__DATE__, «Apr 1», 6) != 0) free(x)
+6
#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))
Во второй строчке препроцессорная рекурсия или используется первое определение?
0
сюда же
#define if(condition) if(rand()%2)
#define if(condition) if(rand()%2)
0
Столкнулся на фрилансе как-то с одним заказом, который выполнял какой-то писатель.
//вёрстка сделана так, что хуже пожалуй что даже почти некуда
//но с ТАКИМ «дизайном», любые другие варианты не уложатся в такой «бюджет»
//поэтому сидите и не чирикайте…
//да-да, мы имеем фиксированную ширину в 1280рх. скажите спасибо «дизайнеру».
И весь код пронизан нереальным количеством абсолютно бессмысленных комментариев.
//FORCE PNG!!! use the FORCE!!!
[...]
//конечно это ОЧЕНЬ ДИКОЕ извращение, но так предусмотрены всякие гадости с множественным путём…
[...]
//если мы загружали карту или другое дерьмецо, то НИЧЕГО не делать
//вёрстка сделана так, что хуже пожалуй что даже почти некуда
//но с ТАКИМ «дизайном», любые другие варианты не уложатся в такой «бюджет»
//поэтому сидите и не чирикайте…
//да-да, мы имеем фиксированную ширину в 1280рх. скажите спасибо «дизайнеру».
И весь код пронизан нереальным количеством абсолютно бессмысленных комментариев.
//FORCE PNG!!! use the FORCE!!!
[...]
//конечно это ОЧЕНЬ ДИКОЕ извращение, но так предусмотрены всякие гадости с множественным путём…
[...]
//если мы загружали карту или другое дерьмецо, то НИЧЕГО не делать
0
встречалось:
// лишь бы дети хорошо учились
// лишь бы дети хорошо учились
+1
Из чьей-то лабораторной работы по программированию:
// 8-926-123-45-67 Маша
+25
видел и такое
if (isset($_GET['id'])) { .... } else {
// В любой непонятной ситуации просто ложись спать.
exit;
}
+5
Совершенно недавно работал над изучением кода 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?
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?
+1
В последнее время использую только три вида комментариев:
//DEBUG
//STUB
//<hell>
...
//</hell>
+5
НЛО прилетело и опубликовало эту надпись здесь
Мне всегда нравился комментарий про то, что это тяжело было написать, что- то типа:
It was hard to write, it should be hard to understand and harder to modify. So — no comments.
It was hard to write, it should be hard to understand and harder to modify. So — no comments.
0
НЛО прилетело и опубликовало эту надпись здесь
0
protected static function getMostRelevant(array $documents)
{
...
// если документ всего один, то он и возвращается
...
// если остался один, то он возвращается
...
// если остался один, то он возвращается
...
// если остался один, то он возвращается
...
// если все еще более одного совпадения
// I'm Feeling Lucky!
return $documents[0];
}
+2
for($j=0;$j
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 Ну ОЧЕНЬ временное...
+5
Короткая история из собственного факапа.
1. Работая над проектом отвлекся на звонок.
2. Надо было записать номер телефона -записал комментом в код.
3. код ушел на сертификацию.
4. Молодые лейтенанты обладают чувством юмора и им просто было интересно — чей это номер.
5. Звонок девушке: «Ало. С вами говорит N-ый центр ***, с кем я говорю» — бесценно :))
1. Работая над проектом отвлекся на звонок.
2. Надо было записать номер телефона -записал комментом в код.
3. код ушел на сертификацию.
4. Молодые лейтенанты обладают чувством юмора и им просто было интересно — чей это номер.
5. Звонок девушке: «Ало. С вами говорит N-ый центр ***, с кем я говорю» — бесценно :))
+1
У меня было такое что в комментариях программисты оставляли сообщения для будущих программистов как кинул их заказчик.
0
Недавно в sql процедуре натнулся на следующий комментарий (близко к тексту)
/*
Я не знаю, кто и зачем ТАК написал эту процедуру.
Исправлять не буду, Бог тебе судья!
*/
/*
Я не знаю, кто и зачем ТАК написал эту процедуру.
Исправлять не буду, Бог тебе судья!
*/
0
Встречал код типа
month[1]=января;
month[12]=декабря;
month[13]=хренобря;
month[1]=января;
month[12]=декабря;
month[13]=хренобря;
+4
Всегда считал вот этот комментарий, достойным перевода: stackoverflow.com/a/769443
(*) Рубен Люциус Голдберг — американский карикатурист, более всего известен серией карикатур, в которых фигурирует так называемая «машина Руба Голдберга» — чрезвычайно сложное, громоздкое и запутанное устройство, выполняющее очень простые функции.
// Здесь, я хотел бы немного поговорить с тобой о Adobe PSD формате. PSD это не хороший
// формат. PSD это даже не плохой формат. Называть его плохим, было бы оскорблением других
// плохих форматов, таких как PCX или JPEG. Нет, PSD это отвратительнейший формат. Поработав
// над этим кодом уже несколько недель, моя ненависть к PSD выросла в бушующее пламя,
// которое горит с всепоглощающим жаром миллиона солнц.
// Если есть два различных пути сделать что-нибудь, PSD будет использовать оба в разных местах.
// Потом он придумает еще три пути, до которых бы не догадался ни один вменяемый человек, и
// также будет их использовать. Несовместимость - это форма искусства для PSD. Например,
// почему, он вдруг решил что именно *эти* блоки должны быть выровнены по 4х
// байтовой границе, а вот это выравнивание *не* должно быть включено в размер. Другие
// блоки в других местах либо не выравниваются или выравниваются по границам, включенным
// в размер. Хотя, здесь, они не включены. Подошел бы любой из этих трех возможных вариантов
// поведения. Вменяемый формат бы выбрал один. PSD, конечно же, использует все три и даже
// больше.
// Попытка получить данные из PSD файла - это как попытка найти что-то на чердаке вашего
// эксцентричного старого дядюшки, убитого обдолбанной пресноводной акулой на его 58ой
// день рождения. Такие подробности, может быть, и не важны для целей этого сравнения, но
// теперь я провожу очень много времени, придумывая интересные судьбы для людей,
// написавших этот формат имени Рубена Голдберга (*).
// Недавно, я пытался заполучить последние спецификации PSD формата. Чтобы их получить, мне
// бы пришлось подать заявление на разрешение на заявление им, чтобы они хотя бы подумали,
// стоит ли высылать мне этот священный том. Это бы включало в себя отправку им по факсу
// копии какого-нибудь документа или чего-нибудь другого, скорее всего, подписанного кровью. Я
// могу только предполагать, что они сознательно затрудняют этот процесс, потому что им крайне
// стыдно за создание этой мерзости. Я не слишком доверчив от природы, чтобы пройти через эту
// процедуру, но если бы я это сделал, я бы распечатал каждую страницу спецификации и сжег бы
// их все. Если бы это было в моей власти, я бы собрал все копии этих спецификаций и запустил
// их на космическом корабле прямиком к солнцу.
// PSD - мой не самый любимый формат.
(*) Рубен Люциус Голдберг — американский карикатурист, более всего известен серией карикатур, в которых фигурирует так называемая «машина Руба Голдберга» — чрезвычайно сложное, громоздкое и запутанное устройство, выполняющее очень простые функции.
+8
Вот крики души иногда бывают у людей — слезы на глаза наворачиваются
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)
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)
0
Источник уже не помню, но встречал чудесный метод:
void enableDisable();
void enableDisable();
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Самые смешные комментарии в исходном коде