"Шедевры" программерской мысли

Для любителей обсудить что круче Linux или Win32, Java или C#.

Модератор: Duncon

Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

12 янв 2007, 19:46

Тсзать, фольклор. Куски кода, при взгляде на которые слезы наворачиваются. Собираем вместе!

На создание темы вдохновило сообщение Игоря Акопяна вот здесь:
Программистский шедевр на индусском форуме на тему "как узнать завтрашнюю дату" остался непревзойденным:
void get_tomorrow_date( struct timeval *date )
(
sleep( 86400 ); // 60 * 60 * 24
gettimeofday( date, 0 );
)

А вот еще один: человеку нужно было узнать, содержит ли булевская переменная b значение TRUE. Как бы вы это сделали? if b then ... . На худой конец if b=TRUE then... . Угадайте, что сделал этот деятель?
if length(str(b))<5 then...
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Absurd
Сообщения: 1213
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

12 янв 2007, 19:53

Кто-то попытался сэкономить на проверке счетчика, но не знал что раскручивание стека происходит на два порядка медленнее:

Код: Выделить всё

try {
  int i = 0;
  while (true) {
    Object o = arr[i++];
  }
} catch (ArrayOutOfBoundsException e) {}
2B OR NOT(2B) = FF
Absurd
Сообщения: 1213
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

12 янв 2007, 20:10

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

типа так:

Код: Выделить всё

void superPupelMegaRobustMethod() {
  Thread watchdog = new WatchdogThread().start();
   ...
   watchdog.stop();
}

..
void run() { // watchdog loop
 boolean timeElapsed = false;
 while(true) {   
    if (timeElapsed) () {
       new Thread() {
          ....
          superPupelMegaRobustMethod();
          .....
       }.start();
    }
    Thread.sleep(1000);
    timeElapsed = true;
  }
}
2B OR NOT(2B) = FF
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

15 янв 2007, 17:05

Кусок кода программера-мьянмийца (Мьянма - это бывшая Бирма):

Код: Выделить всё

procedure a1;
....
procedure a2;
....
procedure a3;
....
var i:byte;
begin
....
for i:=1 to 3 do
  begin
     if i=1 then a1;
     if i=2 then a2;
     if i=3 then a3;
  end;
end.
Это новый подход к последовательным вычислениям!
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

26 окт 2007, 14:36

ха! мъянмы... индусы.... вот тока что узрел на sources.ru
совет как исключить закрытие основной формы по ESC при закрытии модальной:
ввести глобальный флаг и проверять

Код: Выделить всё

procedure TForm.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  if CLOSED then
    CanClose := CLOSED
  else
    CanClose := CLOSED;
end;
Изображение
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

30 окт 2007, 15:34

Что-то подобное видел недавно:
try:
aaa()
except:
aaa()
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
Oscar
Сообщения: 958
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

02 ноя 2007, 17:07

нашел в коде своего проэкта (при помощи FindBugs):

Код: Выделить всё

if (clusters != null) {
	return result;
}

//Add all clusters
for(Cluster cluster : clusters) {
P.S. Этот кусок кода писал не я )) честно! :-D
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

12 ноя 2007, 12:52

Нашел в одном из своих проектов:
function have_sex($user);
function get_sex($sex);
а функции всего-то определяли, задан ли в записи БД о пользователе его пол, и преобразовывал чары 'M', 'm', 'F', 'f' в "Мужской" и "Женский" соответственно.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

12 ноя 2007, 13:31

По-хорошему Get_Sex() должна иметь другой параметр либо содержать рекурентные вызовы )))))))) и по-больше, по-больше...))))
It's a long way to the top if you wanna rock'n'roll
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

12 ноя 2007, 18:07

Ага, ага, помню секс на Ассемблере:
PUSH AX
POP AX
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить