Страница 1 из 2

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

Добавлено: 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...

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

Добавлено: 12 янв 2007, 19:53
Absurd
Кто-то попытался сэкономить на проверке счетчика, но не знал что раскручивание стека происходит на два порядка медленнее:

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

try {
  int i = 0;
  while (true) {
    Object o = arr[i++];
  }
} catch (ArrayOutOfBoundsException e) {}

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

Добавлено: 12 янв 2007, 20:10
Absurd
Еще я как-то офигел, когда поставил брейкпоинт на чужой метод: на нем сидел тред-вотчдог, который замерял время работы функции, и если через время 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;
  }
}

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

Добавлено: 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.
Это новый подход к последовательным вычислениям!

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

Добавлено: 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;

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

Добавлено: 30 окт 2007, 15:34
Хыиуду
Что-то подобное видел недавно:
try:
aaa()
except:
aaa()

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

Добавлено: 02 ноя 2007, 17:07
Oscar
нашел в коде своего проэкта (при помощи FindBugs):

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

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

//Add all clusters
for(Cluster cluster : clusters) {
P.S. Этот кусок кода писал не я )) честно! :-D

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

Добавлено: 12 ноя 2007, 12:52
Хыиуду
Нашел в одном из своих проектов:
function have_sex($user);
function get_sex($sex);
а функции всего-то определяли, задан ли в записи БД о пользователе его пол, и преобразовывал чары 'M', 'm', 'F', 'f' в "Мужской" и "Женский" соответственно.

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

Добавлено: 12 ноя 2007, 13:31
somewhere
По-хорошему Get_Sex() должна иметь другой параметр либо содержать рекурентные вызовы )))))))) и по-больше, по-больше...))))

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

Добавлено: 12 ноя 2007, 18:07
Хыиуду
Ага, ага, помню секс на Ассемблере:
PUSH AX
POP AX