- 1
- 2
- 3
- 4
if(number / 2 == ((int)number / 2))
{
...
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+104
if(number / 2 == ((int)number / 2))
{
...
}
Проверка на чётность.
+169
function
enc($str,$k)//$str - входная строка, $k - ключ от 0 до f
{
$m=floor(strlen($str)/2);
$a=strrev(substr($str,0,$m));
$b=strrev(substr($str,$m));
$c=$a.$b;
$s=bin2hex($c);
switch($k)
{
case '0':$c0='h';$c1='y';$c2='j';$c3='z';$c4='i';$c5='g';$c6='x';$c7='k';$c8='s';$c9='w';$ca='p';$cb='l';$cc='q';$cd='m';$ce='v';$cf='t';break;
case '1':$c0='u';$c1='k';$c2='x';$c3='m';$c4='s';$c5='w';$c6='r';$c7='z';$c8='q';$c9='t';$ca='g';$cb='v';$cc='o';$cd='y';$ce='n';$cf='i';break;
case '2':$c0='i';$c1='u';$c2='n';$c3='k';$c4='y';$c5='x';$c6='o';$c7='m';$c8='q';$c9='s';$ca='g';$cb='v';$cc='w';$cd='r';$ce='t';$cf='z';break;
case '3':$c0='k';$c1='j';$c2='z';$c3='x';$c4='q';$c5='s';$c6='n';$c7='i';$c8='l';$c9='r';$ca='g';$cb='p';$cc='w';$cd='y';$ce='v';$cf='m';break;
case '4':$c0='m';$c1='g';$c2='p';$c3='t';$c4='i';$c5='l';$c6='r';$c7='s';$c8='n';$c9='q';$ca='k';$cb='j';$cc='h';$cd='u';$ce='z';$cf='v';break;
case '5':$c0='q';$c1='i';$c2='u';$c3='z';$c4='t';$c5='n';$c6='k';$c7='r';$c8='w';$c9='y';$ca='x';$cb='v';$cc='g';$cd='o';$ce='m';$cf='s';break;
case '6':$c0='s';$c1='l';$c2='h';$c3='i';$c4='t';$c5='k';$c6='r';$c7='q';$c8='o';$c9='v';$ca='w';$cb='x';$cc='n';$cd='u';$ce='p';$cf='j';break;
case '7':$c0='s';$c1='j';$c2='l';$c3='p';$c4='u';$c5='h';$c6='i';$c7='n';$c8='x';$c9='t';$ca='k';$cb='w';$cc='v';$cd='r';$ce='q';$cf='o';break;
case '8':$c0='o';$c1='s';$c2='q';$c3='j';$c4='l';$c5='r';$c6='v';$c7='p';$c8='u';$c9='w';$ca='h';$cb='k';$cc='t';$cd='i';$ce='x';$cf='n';break;
case '9':$c0='v';$c1='h';$c2='t';$c3='y';$c4='j';$c5='m';$c6='q';$c7='z';$c8='i';$c9='l';$ca='p';$cb='g';$cc='x';$cd='w';$ce='s';$cf='k';break;
case 'a':$c0='k';$c1='v';$c2='h';$c3='s';$c4='t';$c5='w';$c6='x';$c7='y';$c8='j';$c9='g';$ca='p';$cb='m';$cc='q';$cd='l';$ce='z';$cf='i';break;
case 'b':$c0='i';$c1='k';$c2='z';$c3='v';$c4='h';$c5='l';$c6='q';$c7='s';$c8='t';$c9='m';$ca='p';$cb='w';$cc='x';$cd='g';$ce='j';$cf='y';break;
case 'c':$c0='y';$c1='i';$c2='k';$c3='j';$c4='z';$c5='g';$c6='v';$c7='x';$c8='h';$c9='w';$ca='p';$cb='l';$cc='q';$cd='m';$ce='t';$cf='s';break;
case 'd':$c0='s';$c1='y';$c2='t';$c3='i';$c4='k';$c5='m';$c6='j';$c7='q';$c8='l';$c9='z';$ca='g';$cb='p';$cc='w';$cd='v';$ce='h';$cf='x';break;
case 'e':$c0='u';$c1='z';$c2='o';$c3='k';$c4='q';$c5='j';$c6='t';$c7='i';$c8='w';$c9='g';$ca='x';$cb='p';$cc='m';$cd='n';$ce='r';$cf='l';break;
case 'f':$c0='l';$c1='u';$c2='r';$c3='z';$c4='o';$c5='n';$c6='m';$c7='k';$c8='q';$c9='p';$ca='x';$cb='j';$cc='t';$cd='g';$ce='w';$cf='i';break;
}
$f=str_replace('0',$c0,$s);
$f=str_replace('1',$c1,$f);
$f=str_replace('2',$c2,$f);
$f=str_replace('3',$c3,$f);
$f=str_replace('4',$c4,$f);
$f=str_replace('5',$c5,$f);
$f=str_replace('6',$c6,$f);
$f=str_replace('7',$c7,$f);
$f=str_replace('8',$c8,$f);
$f=str_replace('9',$c9,$f);
$f=str_replace('a',$ca,$f);
$f=str_replace('b',$cb,$f);
$f=str_replace('c',$cc,$f);
$f=str_replace('d',$cd,$f);
$f=str_replace('e',$ce,$f);
$f=str_replace('f',$cf,$f);
return $f;
}
"От SQL иньекции проще простого защиться при помощи шифрования входных данных перед вставкой их в запрос к базе данных...И не надо ничего мудрить со специальными функциями....И соответственно в базе данные будут храниться в зашифрованном виде...Пример функции для кодирования:"
Отрыто в комментариях к статье, рассказывающей о встроенных в php алгоритмах шифрования.
А ведь это лишь функция для шифровки. Есть еще и для дешифровки. Даже для говнокода многовато букавок. (:
+97
if (((((length > 4) && ((anUrl[0] == 'h') || (anUrl[0] == 'H'))) &&
((anUrl[1] == 't') || (anUrl[1] == 'T'))) &&
(((anUrl[2] == 't') || (anUrl[2] == 'T')) &&
((anUrl[3] == 'p') || (anUrl[3] == 'P')))) &&
((anUrl[4] == ':') || (((length > 5) &&
((anUrl[4] == 's') || (anUrl[4] == 'S'))) && (anUrl[5] == ':'))))
Нашел в коде проверку на http(s)
+157
function report1(req, res, next, type) {
if (!req.query || !req.query.name) {
var ct = "Income statement";
if (type == 'pieflow')
ct = 'Pie flow chart';
else if (type == 'barflow')
ct = 'Bar flow chart';
res.redirect(req.url + "?name=" + ctx.i18n(req.session.apiToken, 'cash', ct));
return;
}
var pid = "reports-" + type + "-" + req.query.name;
var vtabs,data,reportSettings;
async.waterfall([
function (cb1) {
async.series([
function(cb2) {
webapp.guessTab(req, {pid: pid, name:req.query.name, url:req.url}, cb2);
},
function(cb2) {
webapp.getTabSettings(req.session.apiToken, pid, cb2);
}
],
function (err, results) {
cb1(null, results[0], results[1]);
});
},
function (vtabs_, reportSettings_, cb1) {
vtabs = vtabs_;
reportSettings = reportSettings_;
if (_.isEmpty(reportSettings) || !reportSettings.version || (reportSettings.version != reportSettingsVersion)){
reportSettings = getDefaultSettings(req.query.name);
webapp.saveTabSettings(req.session.apiToken, pid, reportSettings, function(err){
if (err) console.log(err);
});
}
calculateGraphData(req.session.apiToken,type,reportSettings,cb1);
},
function(data_,cb1){
data = data_;
cb1()
},
function(){
data.tabs = vtabs;
data.pmenu = {name:req.query.name,
items:[{name:webapp.ctx.i18n(req.session.apiToken, 'cash','Page settings'),id:"settings",href:"#"}]}
data.reportSettings = reportSettings;
res.render(__dirname+"/../res/views/report", data);
}],
next
);
};
Прислали мне, значит, вступительное задание на должность разработчика node.js, а там гигантский проект, в который нужно дописать модуль, который выглядит весь так же ужасно, как эта функция. Долго порывался написать, что это самый ужасный код, который я когда-либо видел. http://pastebin.com/4NYccg3Y вот ссылка на весь файл, кому интересно, весь проект палить не буду, но скажу, что он большой и ужасный.
−407
http://habrahabr.ru/post/244487/
Очень жаль всех этих людей, которые вынуждены писать на этом выхлопе от Apple.
"Мыши плакали, кололись, но продолжали грызть кактус."
+160
echo 'some string'."\n";
)))
+53
template <typename T, typename Mid, int N>
struct UselessWrapperFillMid
{
inline static void FillMid (T* t, Mid mid)
{
mid(t[0], t[N], t[N/2]);
UselessWrapperFillMid<T,Mid,N/2>::FillMid (&t[0] , mid);
UselessWrapperFillMid<T,Mid,N/2>::FillMid (&t[N/2], mid);
}
};
template <typename T, typename Mid>
struct UselessWrapperFillMid <T, Mid, 1>
{
inline static void FillMid (T* t, Mid mid)
{
(void)t;
(void)mid;
}
};
Бесит такой понос вместо нормальной рекурсии.
Но иначе оно не развернётся в последовательность инструкций без ветвлений и вызовов.
+136
DIR_STRUCT * fill_dir_struct(DIR_STRUCT * dir_stc, _ptr_by_val_(char *) base_dir_path, _ptr_by_val_(char *) offset_dir)
{
DIR_STRUCT * sub_dir;
DIR * srcdir;
struct stat st;
char full_sub_dir_path[MAX_PATH_SIZE];
struct dirent * dent;
sprintf(full_sub_dir_path, "%s/%s", base_dir_path, offset_dir);
dbgprintln("Directory %s", full_sub_dir_path);
if(NULL != (dir_stc = malloc(sizeof(DIR_STRUCT))))
{
memset(dir_stc, 0x00, sizeof(DIR_STRUCT));
if (NULL != (srcdir = opendir(full_sub_dir_path)))
{
if(NULL != (dir_stc->dir_path = malloc(strlen(offset_dir) + 1)))
{
strcpy(dir_stc->dir_path, offset_dir);
for( ;(NULL != (dent = readdir(srcdir))); )
{
if((0 != strcmp(dent->d_name, ".")) &&
(0 != strcmp(dent->d_name, "..")) &&
(0 <= fstatat(dirfd(srcdir), dent->d_name, &st, 0)))
{
if (S_ISDIR(st.st_mode)) //Directory
{
if(NULL != (sub_dir = fill_dir_struct(sub_dir, full_sub_dir_path, dent->d_name)))
{
dir_stc->sub_dirs = list_append_node(dir_stc->sub_dirs, sub_dir);
dir_stc->dir_files_size += sub_dir->dir_files_size;
dir_stc->sub_dir_files_count += sub_dir->sub_dir_files_count;
}
else
{
dir_stc = destroy_dir_struct(dir_stc);
break;
}
}
else //File
{
dbgprintln("File %s, size %lu bytes", dent->d_name, st.st_size);
dir_stc->dir_files = list_append_node(dir_stc->dir_files, allocate_and_copy_char_buffer(dent->d_name, strlen(dent->d_name) + 1));
dir_stc->dir_files_size += st.st_size;
dir_stc->sub_dir_files_count++;
}
}
}//End of for(;NULL != (dent = readdir(srcdir)); )
closedir(srcdir);
}
else//End of if(NULL != (dir_stc->dir_path = malloc(strlen(offset_dir) + 1)))
{
dir_stc = destroy_dir_struct(dir_stc);
}
}//End of if (NULL != (srcdir = opendir(full_sub_dir_path)))
else
{
dir_stc = destroy_dir_struct(dir_stc);
}
}//End of if(NULL != (dir_stc = malloc(sizeof(DIR_STRUCT))))
return dir_stc;
}
Восьмикратный индент, Йода нотейшн, const *(x) const в аргументах. Есть подозрение, что велосипедисты не знали о scandir.
Это кладезь говна.
+58
#include "internationalization.h"
namespace internationalization
{
QString numToString(int num, CASE padezh)
{
switch ( padezh )
{
case NOMINATIVE:
switch ( num )
{
case 0: return "ноль";
case 1: return "один";
case 2: return "два";
case 3: return "три";
case 4: return "четыре";
case 5: return "пять";
case 6: return "шесть";
case 7: return "семь";
case 8: return "восемь";
case 9: return "девять";
case 10: return "десять";
case 11: return "одиннадцать";
case 12: return "двенадцать";
case 13: return "тринадцать";
case 14: return "четырнадцать";
case 15: return "пятнадцать";
case 16: return "шестнадцать";
case 17: return "семьнадцать";
case 18: return "восемьнадцать";
case 19: return "девятнадцать";
case 20: return "двадцать";
case 21: case 22: case 23: case 24: case 25: case 26: case 27: case 28: case 29: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 30: return "традцать";
case 31: case 32: case 33: case 34: case 35: case 36: case 37: case 38: case 39: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 40: return "сорок";
case 41: case 42: case 43: case 44: case 45: case 46: case 47: case 48: case 49: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 50: return "пятьдесят";
case 51: case 52: case 53: case 54: case 55: case 56: case 57: case 58: case 59: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 60: return "шестьдесят";
case 61: case 62: case 63: case 64: case 65: case 66: case 67: case 68: case 69: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 70: return "семьдесят";
case 71: case 72: case 73: case 74: case 75: case 76: case 77: case 78: case 79: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 80: return "восемьдесят";
case 81: case 82: case 83: case 84: case 85: case 86: case 87: case 88: case 89: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 90: return "девяносто";
case 91: case 92: case 93: case 94: case 95: case 96: case 97: case 98: case 99: return numToString( num / 10 * 10 ) + " " + numToString( num % 10 );
case 100: return "сто";
case 101: case 102: case 103: case 104: case 105: case 106: case 107: case 108: case 109: return numToString( (num / 100 % 10 ) * 100 ) + " " + numToString( num % 10 );
case 110: case 111: case 112: case 113: case 114: case 115: case 116: case 117: case 118: case 119: case 120: case 121: case 122: case 123: case 124: case 125: case 126: case 127: case 128: case 129: case 130: case 131: case 132: case 133: case 134: case 135: case 136: case 137: case 138: case 139: case 140: case 141: case 142: case 143: case 144: case 145: case 146: case 147: case 148: case 149: case 150: case 151: case 152: case 153: case 154: case 155: case 156: case 157: case 158: case 159: case 160: case 161: case 162: case 163: case 164: case 165: case 166: case 167: case 168: case 169: case 170: case 171: case 172: case 173: case 174: case 175: case 176: case 177: case 178: case 179: case 180: case 181: case 182: case 183: case 184: case 185: case 186: case 187: case 188: case 189: case 190: case 191: case 192: case 193: case 194: case 195: case 196: case 197: case 198: case 199: return numToString( (num / 100 % 10 ) * 100 ) + " " + numToString( (num / 10 % 10 ) * 10 ) + " " + numToString( num % 10 );
Такой код мне встретился в моем старом проекте... Мне кажется, или из меня вышел бы неплохой программист в Китае или Индии?
И там не конец, весь файл сего перла здесь: http://pastebin.com/tpAd95fd
+136
class Program
{
class A
{
//-----------------------------------------------------------------------
public static A CurrentRoot;
public static Dictionary<object, A> RootMap = new Dictionary<object, A>();
public static object Lock = new object();
//-----------------------------------------------------------------------
public int Test;
public A()
{
lock (Lock)
{
CurrentRoot = this;
b = new B();
}
}
internal class B
{
public B() { RootMap.Add(this, CurrentRoot); }
public A root { get { return RootMap[this]; } }
~B() { RootMap.Remove(this); }
}
public B b;
}
static void Main(string[] args)
{
A a1 = new A(); a1.Test = 555;
A a2 = new A(); a2.Test = 888;
Console.WriteLine(a1.b.root.Test); Console.WriteLine(a1.Test);
Console.WriteLine(a2.b.root.Test); Console.WriteLine(a2.Test);
Console.WriteLine(a1.b.root.b.root.b.root.b.root.b.root.Test);
}
Класс создан для того чтобы вложенные структуры имели доступ к структуре родителя. Safe thread support.