-
Лучший говнокод
- В номинации:
-
- За время:
-
-
+159
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
<?php
$action = $_REQUEST["action"];
$subaction = $_REQUEST["subaction"];
$id = intval($_REQUEST["id"]);
if ($action == "" or $subaction == "" or $id =="") {
die("Go fuck yourself!");
} elseif ($action == 'add' or $action == 'edit' or $action == 'delete') {
if ($action == 'add') {
if ($subaction == "character") {
} elseif ($subaction == "seiyu") {
} else {
die("Go fuck yourself!");
}
} elseif ($action == 'edit') {
if ($subaction == "character") {
} elseif ($subaction == "seiyu") {
} else {
die("Go fuck yourself!");
}
} elseif ($action == 'delete') {
if ($subaction == "character") {
} elseif ($subaction == "seiyu") {
} else {
die("Go fuck yourself!");
}
}
} else {
die("Go fuck yourself!");
}
Вырезка из модуля DLE
Lothbrok,
23 Сентября 2014
-
+57
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
void NestMathematica::DATABS(){
int ks1 = 0;
int ns1=0;
int ns=0;
ia=-1;
ia=ia+1;
b[ia]=-ak[0];
ia=ia+1;
b[ia]=alfa;
mud=1;
mld=1;
if(ks!=1){
ia=ia+1;
b[ia]=0.;
ks1=ks-1;
for(int i=0; i<ks1; i++){
ns1=ns;
ns=ns+1;
if(ns!=1){
ia=ia+1;
b[ia]=0.;
}
ia=ia+1;
b[ia]=ak[ns1];
ia=ia+1;
b[ia]=0.;
ia=ia+1;
b[ia]=-ak[ns];
ia=ia+1;
b[ia]=0.;
ia=ia+1;
b[ia]=h[ns1];
ia=ia+1;
b[ia]=1.;
ia=ia+1;
b[ia]=0.;
ia=ia+1;
b[ia]=-1.;
if(ns!=ks){
ia=ia+1;
b[ia]=0.;
}
}
mud=2;
mld=2;
ia=ia+1;
b[ia]=0.;
} //10
if(beta<0){
ia=ia+1;
b[ia]=h[ks-1];
ia=ia+1;
b[ia]=1.;
}else{
ia=ia+1;
b[ia]=ak[ks]+beta*h[ks];
ia=ia+1;
b[ia]=beta;
}
return;
}
Программист на фортране может программировать на любом языке... как на фортране.
Abbath,
16 Сентября 2014
-
−118
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
CREATE FUNCTION get_date RETURN DATE
IS
BEGIN
RETURN SYSDATE;
END;
DECLARE
v_date DATE;
v_dummy VARCHAR2(2);
BEGIN
v_date := SYSDATE+4/24/60/60;
SELECT MAX(dummy)
INTO v_dummy
FROM dual
connect BY v_date > get_date;
END;
"А есть ли какой-то еще способ, когда нет прав на DBMS_LOCK? "
http://www.sql.ru/forum/1115120/pauza-v-pl-sql-kak
n1919,
10 Сентября 2014
-
+155
- 1
- 2
- 3
- 4
- 5
- 6
- 7
global $strError, $MESS, $HTTP_GET_VARS, $arrFORM_FILTER;
global $find_date_create_1, $find_date_create_2, $lAdmin;
$str = "";
CheckFilterDates($find_date_create_1, $find_date_create_2, $date1_wrong, $date2_wrong, $date2_less);
if ($date1_wrong=="Y") $str.= GetMessage("FORM_WRONG_DATE_CREATE_FROM")."<br>";
if ($date2_wrong=="Y") $str.= GetMessage("FORM_WRONG_DATE_CREATE_TO")."<br>";
if ($date2_less=="Y") $str.= GetMessage("FORM_FROM_TILL_DATE_CREATE")."<br>";
bitrix
- использование HTTP_GET_VARS уже давно deprecated
- магические переменные find_date_create_1, find_date_create_2, да и lAdmin тоже не понятно что
- зачем-то используются символы Y и N вместо true и false или 1 и 0
memclutter,
28 Августа 2014
-
+158
- 001
- 002
- 003
- 004
- 005
- 006
- 007
- 008
- 009
- 010
- 011
- 012
- 013
- 014
- 015
- 016
- 017
- 018
- 019
- 020
- 021
- 022
- 023
- 024
- 025
- 026
- 027
- 028
- 029
- 030
- 031
- 032
- 033
- 034
- 035
- 036
- 037
- 038
- 039
- 040
- 041
- 042
- 043
- 044
- 045
- 046
- 047
- 048
- 049
- 050
- 051
- 052
- 053
- 054
- 055
- 056
- 057
- 058
- 059
- 060
- 061
- 062
- 063
- 064
- 065
- 066
- 067
- 068
- 069
- 070
- 071
- 072
- 073
- 074
- 075
- 076
- 077
- 078
- 079
- 080
- 081
- 082
- 083
- 084
- 085
- 086
- 087
- 088
- 089
- 090
- 091
- 092
- 093
- 094
- 095
- 096
- 097
- 098
- 099
- 100
/// =------------------------------------
if($razdel_cataloga=="kabinet-gastroenterologii-i-endoskopii") {
$nameeeeee = 'Кабинет гастроэнтерологии и эндоскопии';
$info_variables['slide_show_top_banners'] = '
<ul class="thumbnails">
<li class="span3">
<a href="/images/photo/gastroenterologii800/gastroenterologii1.jpg" class="thumbnail">
<img src="/images/photo/gastroenterologii200/gastroenterologii1.jpg" alt="Кабинет ГАСТРОЭНТЕРОЛОГИИ">
</a>
</li>
<li class="span3">
<a href="/images/photo/gastroenterologii800/gastroenterologii2.jpg" class="thumbnail">
<img src="/images/photo/gastroenterologii200/gastroenterologii2.jpg" alt="Кабинет ГАСТРОЭНТЕРОЛОГИИ">
</a>
</li>
<li class="span3">
<a href="/images/photo/gastroenterologii800/gastroenterologii3.jpg" class="thumbnail">
<img src="/images/photo/gastroenterologii200/gastroenterologii3.jpg" alt="Кабинет ГАСТРОЭНТЕРОЛОГИИ">
</a>
</li>
<li class="span3">
<a href="/images/photo/gastroenterologii800/gastroenterologii4.jpg" class="thumbnail">
<img src="/images/photo/gastroenterologii200/gastroenterologii4.jpg" alt="Кабинет ГАСТРОЭНТЕРОЛОГИИ">
</a>
</li>
</ul>
';
$info_variables['center'] = ' <h3 id="overview">Кабинет гастроэнтерологии и эндоскопии. Поликлиника. Комплекс «Времена года»</h3>
<div class="art-Post-inner">
<div class="art-PostContent">
<div class="art-article"><table class="table table-bordered table-hover">
<colgroup><col width="416"> <col width="64"> <col width="85"> <col width="73"> <col width="65"> </colgroup>
<tbody>
<tr>
<td width="416">Наименование услуги</td>
<td width="64">Кол-во</td>
<td width="65">Стоим. <br> всего(грн.)</td>
</tr>
<tr>
<td width="416">Гидроколонотерапия</td>
<td>1 проц.</td>
<td width="65">125,00</td>
</tr>
<tr>
<td width="416">Гидроколонотерапия + фитотерапия(или биопрепараты)</td>
<td>1 проц.</td>
<td width="65">150,00</td>
</tr>
<tr>
<td width="416">Гидроколонотерапия + минеральная вода</td>
<td>1 проц.</td>
<td width="65">150,00</td>
</tr>
<tr>
<td width="416">Очистительная клизма</td>
<td>1 проц.</td>
<td width="65">20,00</td>
</tr>
<tr>
<td width="416">Сифонная клизма</td>
<td>1 проц.</td>
<td width="65">40,00</td>
</tr>
<tr>
<td>Клизма с биопрепаратами</td>
<td>1 проц.</td>
<td>30,00</td>
</tr>
<tr>
<td width="416">Лечебная клизма</td>
<td>1 проц.</td>
<td width="65">40,00</td>
</tr>
<tr>
<td width="416">Фиброгастродуоденоскопия</td>
<td>1 проц.</td>
<td width="65">180,00</td>
</tr>
<tr>
<td width="416">Фиброколоноскопия</td>
<td>1 проц.</td>
<td width="65">180,00</td>
</tr>
<tr>
<td width="416">Фибробронхоскопия</td>
<td>1 проц.</td>
<td width="65">250,00</td>
</tr>
<tr>
<td width="416">Лечебная бронхоскопия</td>
<td>1 проц.</td>
Всё тот же печально известный кодер.
Весь файл (513 КБ) - две функции, одна из которых состоит из нескольких тысяч подобных строчек.
Uhehesh,
25 Августа 2014
-
+57
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
#include "TrayIcon.h"
// ----------------------------------------------------------------------------
TrayIcon::TrayIcon(QObject* parent) : QSystemTrayIcon(parent),
INTERVAL(1000),
WIDTH_ICON(30), HEIGHT_ICON(30)
{
currentDate = QDate(0, 0, 0);
defaultIcon = QPixmap(WIDTH_ICON, HEIGHT_ICON);
defaultIcon.fill(Qt::black);
reminderIcon = QPixmap(WIDTH_ICON, HEIGHT_ICON);
reminderIcon.fill(Qt::yellow);
thousandthDayIcon = QPixmap(WIDTH_ICON, HEIGHT_ICON);
thousandthDayIcon.fill(Qt::green);
dialogBoxIsActive = false;
readSettings();
wasReminder = false;
wasCongratulation = false;
wasSetNewDate = false;
slotUpdateDate();
QMenu* contextMenu = new QMenu;
contextMenu->addAction("Set date of birth...",
this, SLOT(slotSetDateOfBirth()));
QAction* autorunAction = contextMenu->addAction("Autorun",
this, SLOT(slotSetAutorun(bool)));
autorunAction->setCheckable(true);
autorunAction->setChecked(autorun);
contextMenu->addSeparator();
contextMenu->addAction("About...", this, SLOT(slotAboutMyProgram()));
contextMenu->addSeparator();
contextMenu->addAction("Quit", qApp, SLOT(quit()));
setContextMenu(contextMenu);
QTimer* timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), SLOT(slotUpdateDate()));
timer->start(500);
}
// ----------------------------------------------------------------------------
void TrayIcon::slotUpdateDate()
{
if((currentDate != QDate::currentDate()) || wasSetNewDate)
{
currentDate = QDate::currentDate();
daysToThousandthDay
= INTERVAL - dateOfBirth.daysTo(currentDate) % INTERVAL;
wasCongratulation = false;
wasReminder = false;
wasSetNewDate = false;
if((daysToThousandthDay != INTERVAL) && (daysToThousandthDay != 1))
{
setIcon(QIcon(defaultIcon));
setToolTip("Until next thousandth day in " +
QString().number(daysToThousandthDay) + " days.");
}
else
{
if(daysToThousandthDay == 1)
{
if(!wasReminder)
reminderBeforeDay();
}
else
{
if(!wasCongratulation)
congratulation();
}
}
}
}
Описание конструктора и одного из методов класса иконки в системном трее из программы, которая должна оповещать пользователя о каждом тысячном дне его жизни. Написано на Qt.
Полная версия:
main: http://pastebin.com/DEKiMWdb
хедер класса иконки трея: http://pastebin.com/rN9NwBPB
.cpp класса иконки трея: http://pastebin.com/uuyf5uxX
хедер класса окна ввода даты рождения: http://pastebin.com/bmfAbFwg
.cpp класса окна ввода даты рождения: http://pastebin.com/3R8BaPFC
darkKnight,
18 Августа 2014
-
+133
- 1
decimal dblOrderTotal = calculatedOrders.Sum(objOrder => objOrder.total);
Что бы значило это dbl?
musuk,
10 Августа 2014
-
+136
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
void lcd_show(uint8_t number)
{
uint8_t digit3 = 0;
uint8_t digit2 = 0;
uint8_t digit1 = number > 99u ? 1u : 0;
switch(number)
{
case 0u:
digit3 = 0u;
digit2 = 0u;
break;
case 1u:
digit3 = 1u;
digit2 = 0u;
break;
.....
.....
case 199u:
digit3 = 9u;
digit2 = 9u;
break;
default:
digit3 = '-';
digit2 = '-';
digit1 = 0;
break;
}
display3d(digit3);
display2d(digit2);
display1d(digit1);
}
8-битный микроконтроллер, 32768Гц тактовая частота, батарейное питание, CPU по-максимуму в спячке для экономии энергии.
Функции display3d(), display2d(), display1() отображают цифру в соответствующем знакоместе на 2.5 разрядном LCD от 0 до 199.
Преобразование числа в BCD формат.
Эта жесть даёт выигрыш порядка 10 мкА перед "обычным" преобразования с делениями на 10 за счёт меньшего времени работы CPU для расчёта. Вроде говнокод, но в данном случае оправдан, потому не воняет :)
FlySnake,
09 Июля 2014
-
+86
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
function IsMemoryCommitByAdress(const AAddress: Pointer): Boolean;
var
MemoryInfo: TMemoryBasicInformation;
begin
Result := False;
if not Assigned(AAddress) then
Exit;
VirtualQuery(AAddress, MemoryInfo, SizeOf(MemoryInfo));
Result := MemoryInfo.State and MEM_COMMIT <> 0;
end;
function IsPointerToVMT(const APointer: Pointer): Boolean;
var
VMTPointer, VMTPointerSelf: Pointer;
begin
Result := False;
if not IsMemoryCommitByAdress(APointer) then
Exit;
VMTPointer := APointer;
VMTPointerSelf := Pointer(Integer(VMTPointer) + vmtSelfPtr);
if not IsMemoryCommitByAdress(VMTPointer) then
Exit;
if not IsMemoryCommitByAdress(VMTPointerSelf) then
Exit;
if not IsMemoryCommitByAdress(PPointer(VMTPointerSelf)^) then
Exit;
Result := PPointer(VMTPointerSelf)^ = VMTPointer;
end;
function IsBadptr(apointer:pointer):boolean;
begin
Result := IsMemoryCommitByAdress(APointer) and IsPointerToVMT(PPointer(APointer)^);
end;
Функция, для определения качества указателя, в ситуации "один объект - несколько указателей".
Гк в том, что нет надежности - это все равно, что юзать IsBadReadPtr и аналогичные.
Почему-то никто не пытается использовать операторы is и as (я узнал о них благодаря Тарасу, спасибо ему), чтобы сравнить качество приведения.
brutushafens,
19 Июня 2014
-
+10
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
string intArrayToString(int* array, int size)
{
ostringstream ss;
ss << "[";
for (int i=0; i<size-1; i++)
ss << array[i] << ",";
ss << array[size-1];
ss << "]";
return ss.str();
}
string longIntArrayToString(long int* array, int size)
{
ostringstream ss;
ss << "[";
for (int i=0; i<size-1; i++)
ss << array[i] << ",";
ss << array[size-1];
ss << "]";
return ss.str();
}
О шаблонах мы, видимо, не в курсе. Ну и упаси вас боже передать суда size=0.
Думаю, сюда можно смело выкладывать весь источник, но уж больно он уныл
https://github.com/adobe-research/libkafka
Адобъ Рисёрчъ на острие прогресса#ifdef DEBUG
#define D(x) x
#else
#define D(x)
#endif
#define E(x) cout.flush() << x
Так ведь и придётся своего клиента писать... :(
roman-kashitsyn,
12 Июня 2014