- 1
- 2
- 3
- 4
- 5
if (!self.options.cat_main) {
counter = self.renderSingleGame(game_id, cat, cat.name, counter);
} else if (cat_id === self.options.cat_main) {
counter = self.renderSingleGame(game_id, cat, cat.name, counter);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+155
if (!self.options.cat_main) {
counter = self.renderSingleGame(game_id, cat, cat.name, counter);
} else if (cat_id === self.options.cat_main) {
counter = self.renderSingleGame(game_id, cat, cat.name, counter);
}
гениально!
+155
<?php
function load ($file) {
static $files = null;
$files or $files = [];
if (!isset($files[$file])) {
require($file);
$files[$file] = true;
}
}
$times = 1000000;
$time1 = microtime(true);
for ($i = 0; $i < $times; $i ++) {
require_once('inc.php');
}
$end1 = microtime(true) - $time1;
$time2 = microtime(true);
for ($i = 0; $i < $times; $i ++) {
load('inc.php');
}
$end2 = microtime(true) - $time2;
echo "require_once = $end1 vs \nload = $end2";
Вот это да... require_once работает в ~8 раз медленнее чем функция load. Вывод:
require_once = 16.962311029434 vs
load = 2.6861710548401
Содежания файла inc.php:
<?php echo 'Hello, world!';
+155
}
if(isset($this->digits[1])) {//разряд десятков
if($this->digits[1]>1)
$result.=$this->spelling['ties'][$this->language][$this->digits[1]]." ";
if($this->digits[1]==1) $result.=$this->spelling['teens'][$this->language][$this->digits[0]]." ";
}
if(isset($this->digits[0])) {//разряд единиц
if((isset($this->digits[1]))&&($this->digits[1]!=1))
$result.=$this->spelling['ones'][$this->language][$this->digits[0]]." ";
if(!isset($this->digits[1])) {
if($this->digits[0]==0) $result.=$this->spelling['nought'][$this->language]." ";
else $result.=$this->spelling['ones'][$this->language][$this->digits[0]]." ";
}
}
return $result;
}
}
Часть программы, которая преобразовывает целое число из промежутка [-9999999; 9999999] в текст (разговорный) на трех языках (Russian, Ukrainian, English). Состоит из трех классов. Это продолжение класса numberspelling , начиная с закрытой скобки последнего if`а предыдущего поста. Именно класс numberspelling преобразует цифру из уже имеющегося массива number в массив в произношение этой цифры на данном языке, в соответствии с её весом (той степенью числа 10, на которую она умножена). Например, если цифра 5 в уже имеющемся массиве стоит под номером 2, то она будет произносится "пятьсот". Напомню, номер элемента в массиве соответствует степени числа 10, на которую надо умножить элемент.
+155
require_once 'number.php';
class numberspelling extends number {
//put your code here
private $spelling=array(
'nought'=>array(
'eng'=>'nought',
'ukr'=>'нуль',
'rus'=>'ноль'
),
'ones'=>array(
'eng'=>array("", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"),
'ukr'=>array("", "один", "два", "три", "чотири", "п`ять", "шість", "сім", "вісім", "дев`ять"),
'rus'=>array("", "один", "два", "три", "четыре", "пять", "шесть", "семь", "восемь", "девять")
),
'teens'=>array(
'eng'=>array("ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"),
'ukr'=>array("десять", "одинадцять", "дванадцять", "тринадцять", "чотирнадцять", "п`ятнадцять", "шістнадцять", "сімнадцять", "вісімнадцять", "дев`ятнадцять"),
'rus'=>array("десять", "одиннадцать", "двенадцать", "тринадцать", "четырнадцать", "пятнадцать", "шестнадцать", "семнадцать", "восемнадцать", "девятнадцать")
),
'ties'=>array(
'eng'=>array("", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"),
'ukr'=>array("", "десять", "двадцять", "тридцять", "сорок", "п`ятдесят", "шістдесят", "сімдесят", "вісімдесят", "дев`яносто"),
'rus'=>array("", "десять", "двадцать", "тридцать", "сорок", "пятьдесят", "шестьдесят", "семдесят", "восемдесят", "девяносто")
),
'hundreds'=>array(
'eng'=>array("", "hundred", "two hundred", "three hundred", "four hundred", "five hundred", "six hundred", "seven hundred", "eight hundred", "nine hundred"),
'ukr'=>array("", "сто", "двісті", "триста", "чотириста", "п`ятсот", "шістсот", "сімсот", "вісімсот", "дев`ятсот"),
'rus'=>array("", "сто", "двести", "триста", "четыреста", "пятьсот", "шестьсот", "семьсот", "восемьсот", "девятьсот")
)
);
private $greatnumbersspelling=array(
'thousands'=>array(
'eng'=>array("", "one thousand", "two thousand", "three thousand", "four thousand", "thousand"),
'ukr'=>array("", "одна тисяча", "дві тисячі", "три тисячі", "чотири тисячі", "тисяч"),
'rus'=>array("", "одна тысяча", "две тысячи", "три тысячи", "четыре тысячи", "тысяч")
),
'millions'=>array(
'eng'=>array("", "one million", "two million", "three million", "four million", "million"),
'ukr'=>array("", "один мільйон", "два мільйони", "три мільйони", "чотири мільйони", "мільйонів"),
'rus'=>array("", "один миллион", "два миллиона", "три миллиона", "четыре миллиона", "миллионов")
)
);
private $signspelling=array(
'negative'=>array(
'eng'=>'minus',
'ukr'=>'мінус',
'rus'=>'минус'
),
'positive'=>array(//для удобства изменения кода при необходимости
'eng'=>'',
'ukr'=>'',
'rus'=>''
)
);
private $language;
public function __construct($number, $language) {
parent::__construct($number);
$this->language=$language;
}
public function spell() {
//spelling
$result="";
if($this->sign==-1)
$result=$result.
$this->signspelling['negative'][$this->language]." ";
else $result.=$this->signspelling['positive'][$this->language]." ";
if(isset($this->digits[6])) {//разряд миллионов
for($i=1; $i<5; $i++) {
if($this->digits[6]==$i) {
$result.=$this->greatnumbersspelling['millions'][$this->language][$i]." ";
}
}
if($this->digits[6]>=5) {
$result.=$this->spelling['ones'][$this->language][$this->digits[6]]." ".$this->greatnumbersspelling['millions'][$this->language][5]." ";
}
}
if(isset($this->digits[5])) {//разряд сотен тысяч
$result.=$this->spelling['hundreds'][$this->language][$this->digits[5]]." ";
if(($this->digits[5]!=0)&($this->digits[4]==0)&($this->digits[3]==0)) $result.=$this->greatnumbersspelling['thousands'][$this->language][5]." ";
}
if(isset($this->digits[4])) {//разряд десятков тысяч
if($this->digits[4]>1) {
$result.=$this->spelling['ties'][$this->language][$this->digits[4]]." ";
if($this->digits[3]==0) $result.=$this->greatnumbersspelling['thousands'][$this->language][5]." ";
}
if($this->digits[4]==1) $result.=$this->spelling['teens'][$this->language][$this->digits[3]]." ".$this->greatnumbersspelling['thousands'][$this->language][5]." ";
}
if(isset($this->digits[3])) {//разряд тысяч
for($i=1; $i<5; $i++) {
if($this->digits[3]==$i) {
if(!isset($this->digits[4])||(isset($this->digits[4])&&$this->digits[4]!=1)) $result.=$this->greatnumbersspelling['thousands'][$this->language][$i]." ";
}
}
if($this->digits[3]>=5) {
if(!isset($this->digits[4])||(isset($this->digits[4])&&$this->digits[4]!=1))
$result.=$this->spelling['ones'][$this->language][$this->digits[3]]." ".$this->greatnumbersspelling['thousands'][$this->language][5]." ";
}
}
if(isset($this->digits[2])) {//разряд сотен
$result.=$this->spelling['hundreds'][$this->language][$this->digits[2]]." ";
Часть программы, которая преобразовывает целое число из промежутка [-9999999; 9999999] в текст (разговорный) на трех языках (Russian, Ukrainian, English). Состоит из трех классов. Это класс numberspelling - основной класс программы. Точнее его часть. Остальное - в следующем посте. Именно он преобразует цифру из уже имеющегося массива number в массив в произношение этой цифры на данном языке, в соответствии с её весом (той степенью числа 10, на которую она умножена). Например, если цифра 5 в уже имеющемся массиве стоит под номером 2, то она будет произносится "пятьсот". Напомню, номер элемента в массиве соответствует степени числа 10, на которую надо умножить элемент.
+155
class number {
//put your code here
protected $digits;/*массив цифр числа. 0й эл-т - самый правый разряд*/
protected $sign;/*знак числа*/
public function __construct($number) {
if(($number>=-9999999)&($number<=9999999)) {
if(intval($number)<0) {
$this->sign=-1;
}
else {
$this->sign=1;
}
$this->digits= preg_split("//", $number*$this->sign, -1,
PREG_SPLIT_NO_EMPTY);//преобразовываем число в массив цифр
$this->digits=array_reverse($this->digits);/*переворачиваем массив,
* чтобы индексы соответствовали степеням числа 10*/
}
else {
exit("Введено число вне диапазона или неверного типа!<br>".
"The number from non-essential range or type!<br>");
}
}
public function isNegative() {
if($this->sign==-1) return true;
else return false;
}
public function isPositive() {
if($this->sign==-1) return false;
else return true;
}
public function getSign() {return $this->sign;}
public function getDigits() {return $this->digits;}
public function getDigit($cn) {
if(($cn>=0)&($cn<=7)) return $this->digits[$cn];
else return 0;
}
}
Часть программы, которая преобразовывает целое число из промежутка [-9999999; 9999999] в текст (разговорный) на трех языках (Russian, Ukrainian, English). Состоит из трех классов. Это класс number , основное назначение которого - преобразовать число в массив цифр, номера цифр в котором соответствуют степерям числа 10.
+155
express_static = express.static(static_files.file_path)
app.use('/files', (req, res, next) ->
if Math.random() > app.failureProbability
express_static.handle(req, res, next)
else
# server failure or timeout
if Math.random() < 0.5
console.log('\x1B[31mRandom failure\x1B[0m')
res.send(500, 'Fuck you')
else
console.log('\x1B[31mRandom timeout\x1B[0m')
)
а вот так мы тестируем сетевую нагрузку (нода, кофе)
+155
function in_array(value, array)
{
if (is_array(array)){
for(var i = 0; i < array.length; i++)
{
if(array[i] == value) return true;
}
return false;
}
}
от создателей http://govnokod.ru/17149
+155
<?php
// Default: http://<host>/<dir>/<filename>.php?iter1=64&width=600&height=400&coef=32
function BN($n, $l, $r) {return $n>$l && $n<=$r;}
function SQR($a) {return $a*$a;}
define("COEF", $_GET["coef"]);
$iter1 = $_GET["iter1"];
$width = $_GET["width"];
$height = $_GET["height"];
header("Content-type: image/png");
$img = imagecreatetruecolor($width, $height);
$iter2 = 0.01/($width/300);
$yy = -1;
for ($y = -1; $y < 1; $y = $y + $iter2) {
$yy++; $xx=-1;
for($x = -2; $x < 1; $x = $x + $iter2) {
$xx++;
$Cx = $x;
$Cy = $y;
$X = $x;
$Y = $y;
$ix = 0;
$iy = 0;
$n = 0;
while ((SQR($ix) + SQR($iy) < 4) and ($n < $iter1)) {
$ix = SQR($X) - SQR($Y) + $Cx;
$iy = 2*$X*$Y + $Cy;
$X = $ix;
$Y = $iy;
$n++;
}
if(BN($n,0,7)) $col = imagecolorallocate($img,COEF*$n,0,0);
elseif(BN($n,7,14)) $col = imagecolorallocate($img,COEF*$n,COEF*$n,0);
elseif(BN($n,14,21))$col = imagecolorallocate($img,COEF*$n,0,COEF*$n);
elseif(BN($n,21,28))$col = imagecolorallocate($img,0,COEF*$n,0);
elseif(BN($n,28,35))$col = imagecolorallocate($img,COEF*$n,COEF*$n,0);
elseif(BN($n,35,42))$col = imagecolorallocate($img,0,COEF*$n,COEF*$n);
elseif(BN($n,42,49))$col = imagecolorallocate($img,0,0,COEF*$n);
elseif(BN($n,49,56))$col = imagecolorallocate($img,COEF*$n,0,COEF*$n);
elseif(BN($n,56,64))$col = imagecolorallocate($img,0,COEF*$n,COEF*$n);
imagesetpixel($img, $xx, $yy, $col);
}
}
imagepng($img);
imagedestroy($img);
?>
https://ru.wikipedia.org/wiki/%D0%9C%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1% 82%D0%B2%D0%BE_%D0%9C%D0%B0%D0%BD%D0%B4% D0%B5%D0%BB%D1%8C%D0%B1%D1%80%D0%BE%D1%8 2%D0%B0
+155
list($usec, $sec) = explode(' ', microtime());
$s2_start = ((float)$usec + (float)$sec);
О первом параметре функции microtime не слыхали?
http://s2cms.ru/trac/browser/trunk/index.php#L11
Интересное замечание: hook'и копипастом подключаются
($hook = s2_hook('idx_pre_redirect')) ? eval($hook) : null;
// …
($hook = s2_hook('idx_pre_rss')) ? eval($hook) : null;
// …
$return = ($hook = s2_hook('idx_get_content')) ? eval($hook) : null;
// и так еще 4 раза
Функцию надо.
+155
function generateSession()
{
$chars = "qazxswedcvfrtgbnhyujmkiolp1234567890QAZXSWEDCVFRTGBNHYUJMKIOLP";
$max = rand(20, 32);
$size = StrLen($chars) - 1;
$sessionID = null;
while ($max--)
$sessionID .= $chars[rand(0, $size)];
return $sessionID;
}