- 1
select nvl(count(*), 0) from ...
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−180
select nvl(count(*), 0) from ...
Вот такое увидел.
Защита от нежданчика.
+145
public function redirect($url) {
header('Location: '.$url);
echo '<script>document.location.href = "'.$url.'"</script>';
die('<a href="'.$url.'"><h2>Нажмите сюда. У вас ебанутый браузер.</h2></a>');
}
+145
$(function(){
oCatalog=new Catalog();
});
Catalog = function (){
function test (data){
alert(data);
}
}
+163
std::vector<double> WBuffer;
std::vector<double> CleanWBuffer;
std::vector<Color> PixelBuffer;
std::vector<Color> CleanPixelBuffer;
void Scene3D::ClearBuffers()
{
const size_t n = static_cast<size_t>(ScreenSize[0] * ScreenSize[1]);
memcpy(&*(WBuffer.begin()), &*(CleanWBuffer.begin()), n * sizeof(*(WBuffer.begin())));
memcpy(&*(PixelBuffer.begin()), &*(CleanPixelBuffer.begin()), n * sizeof(*(PixelBuffer.begin())));
}
Быстрая очистка буферов.
CleanWBuffer предварительно заполнен 0.0, CleanPixelBuffer предварительно заполнен нужным цветом.
Можно было воспользоваться std::fill, но оно работает в несколько раз дольше.
Пришлось так вот лезть в потроха std::vector. Доставляют подряд идущие & и *.
+166
<?php
# bla bla bla...
public function __construct ($dbname, $host = null, $user = null, $pass = null) {
$numargs = func_num_args ();
if ($numargs == 1)
parent::__construct ($dbname);
else
parent::__construct ($dbname, $host = null, $user = null, $pass = null);
$this->begin = time ();
}
# bla bla bla...
"гениальный" вызов конструктора!
+157
void Scene3D::DrawTriangle(const Point3D &A, const Point3D &B, const Point3D &C, const Color& color)
{
// ---------------------------------------------------------------------------------------
// вспомогательные вычисления
// нормаль
const Vector3D& n = (B - A) ^ (C - A);
// ...
// центр треугольника
const Point3D& medium = (A + B + C) / 3.0;
Руки как-то привыкли const TypeName& variableName набирать в определении параметров методов.
И случайно набралось такое (строки 6, 11)
Операторы (+, -, ^, /) над векторами возвращают Vector3D, не const Vector3D&.
Заметил только через полгода, и всё это время оно почему-то работало, и даже ворнингов не было.
Но такое ведь не должно работать!
Результат вычисления в правой части присваивания структура, то есть она возвращается в стеке. Если бы я присвоил её какой-то локальной переменной, для которой выделена память в стеке текущей функции, то она бы перед удалением скопировалась в локальную переменную. А так получается что ссылка (n, medium) указывает куда-то на стек, где временно хранится возвращенное оператором значение. И при следующем вызове любой функции эта область стека должна перезаписаться.
+75
for ( Cluster c : Clusters.getInstance( ).listValues( ) ) {
stopNet.newInstance( ).dispatch( cluster );
}
Суровые калифорнийцы как всегда суровы...
+156
index.php:
<?php
define("TEMPLATE_FOLDER", "./templates/");
class Template
{
public function view($template, $data)
{
foreach($data as $key => $variable)
$$key = $variable;
require(TEMPLATE_FOLDER . $template . '.php');
foreach($data as $key => $variable)
unset($$key);
}
}
$template = new Template();
$data['test'] = array(1, 2, 3);
$template->view('index', $data);
?>
templates/index.php:
<html>
<body>
<?php foreach($test as $row): ?>
<?php echo $row ?><br/><br/>
<?php endforeach; ?>
</body>
</html>
Говно ли?
+131
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Билайн анкетирование</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="Билайн анкетирование">
<meta name="keywords" content="Билайн анкетирование">
<link href="/stylesheets/main_stl.css" type=text/css rel=stylesheet>
<script src="/javascripts/jquery-1.4.2.min.js" language="javascript"></script>
<script src="/javascripts/jquery.maskedinput-1.2.2.min.js" language="javascript"></script>
<script src="/javascripts/custom/masked.js" language="javascript"></script>
</head>
<body>
<table id=main cellspacing=0 cellpadding=0 border=0>
<!-- HEAD -->
<tr>
<td style="height:128px; text-align:center;" align=center>
<table style="height:128px; width:798px; margin:0px auto;" cellspacing=0 cellpadding=0 border=0><tr>
<td style="padding-top:70px; padding-left:32px; vertical-align:top; width:681px;"><img src="/images/beetitle.png"></td>
<td style="padding-top:33px; vertical-align:top; width:117px;"><img src="/images/beelogo.png"></td>
</tr></table>
</td>
</tr>
<!-- BODY -->
<tr>
<td style="text-align:center;" valign=top align=center>
...
Это от сюда: http://opros-beeline.ru/login
Интересный у них там XHTML
+144
#include <stdio.h>
// Говнокод здесь
#define ABS(x) ((x) ? (x) : (-(x)))
int main () {
char ch = -128;
short sm = -32768;
int i = -2147483647; i--; // здесь
long long l = -9223372036854775807LL; l--; // и здесь декременты нужны
// для подавления варнингов
printf("char:\t\tABS(%hhd) = %hhd\n", ch, ABS(ch));
printf("short:\t\tABS(%hd) = %hd\n", sh, ABS(sh));
printf("int:\t\tABS(%d) = %d\n", i, ABS(i));
printf("long long:\tABS(%lld) = %lld\n", l, ABS(l));
return 0;
}
Может быть, баян, но...
Всем знакомый макрос ABS способен сделать большую гадость.
Вот вывод программы:
char: ABS(-128) = -128
short: ABS(-32768) = -32768
int: ABS(-2147483648) = -2147483648
long long: ABS(-9223372036854775808) = -9223372036854775808