- 1
- 2
- 3
- 4
function runIcqBot($username, $password) {
$command = "nohup php-fcgi process.php ". $username ." ". $password ." > logs/".$username.".log &";
shell_exec($command);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+164
function runIcqBot($username, $password) {
$command = "nohup php-fcgi process.php ". $username ." ". $password ." > logs/".$username.".log &";
shell_exec($command);
}
И похеру на безопасность... Зато ICQ-клиент прямо в браузере!
+156
char* setw_c(int width, char* str, const char align){
width = width - strlen(str) / 2;
if (align == 'l'){
std::cout << str;
if (width > 0)
for (int i = 0; i < width - 1; i++)
std::cout << " ";
return " ";
} else {
if (width > 0)
for (int i = 0; i < width; i++)
std::cout << " ";
return str;
}
}
вот так коряво я решил проблему с setw(), кириллицей и utf-8.
strlen() - чуть ли не единственная функция из cstring, более-менее нормально работающая с кириллицей в utf-8, да и то возвращает не реальную длину, а в два раза бОльшую, т.к. в utf-8 символ кириллицы занимает 2 байта, вместо одного, чего эта функция не учитывает.
−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>
Говно ли?