- 1
Тестовый оффтоп #1
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
Тестовый оффтоп #1
Чтобы в «NGK» заблокировать все комменты из этого поста — нажмите на крестик справа от его номера.
+1
// https://habr.com/ru/company/oleg-bunin/blog/493242/
// Алгоритмы быстрой обработки HTTP-строк
// .....
// Как устроен парсер? Мы, как nginx, определяем массив байт и по нему
// проверяем входные данные — это пролог функции. Здесь мы работаем
// только с короткими сроками, используем likely, потому что branch misprediction
// для коротких строк болезненнее, чем для длинных. Выносим этот код наверх.
// У нас есть ограничение в 4 из-за последней строчки — мы должны написать
// достаточно мощное условие. Если будем обрабатывать больше 4 байт, то условие
// будет тяжелее, а код медленнее.
static const unsigned char uri_a[] __attribute__((aligned(64))) = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
...
// Branch misprediction is more crucial for short strings
if (likely(len <= 4)) {
switch (len) {
case 0:
return 0;
case 4:
c3 = uri_a[s[3]];
// fall through to process other chars
case 3:
c2 = uri_a[s[2]];
case 2:
c1 = uri_a[s[1]];
case 1:
c0 = uri_a[s[0]];
}
return (c0 & c1) == 0 ? c0 : 2 + (c2 ? c2 + c3 : 0);
}
// Основная петля и большой хвост. В основном цикле обработки мы делим
// данные: если они достаточно длинные, обрабатываем по 128, 64, 32 или
// по 16 байт. Имеет смысл обрабатывать по 128: мы параллельно используем
// несколько каналов процессора (несколько pipeline) и суперскалярность процессора.
for ( ; unlikely(s + 128 <= end); s += 128) {
n = match_symbols_mask128_c(__C.URI_BM, s);
if (n < 128)
return s - (unsigned char *)str + n;
}
if (unlikely(s + 64 <= end)) {
n = match_symbols_mask64_c(__C.URI_BM, s);
if (n < 64)
return s - (unsigned char *)str + n;
s += 64;
}
if (unlikely(s + 32 <= end)) {
n = match_symbols_mask32_c(__C.URI_BM, s);
if (n < 32)
return s - (unsigned char *)str + n;
s += 32;
}
if (unlikely(s + 16 <= end)) {
n = match_symbols_mask16_c(__C.URI_BM128, s);
if (n < 16)
return s - (unsigned char *)str + n;
s += 16;
}
... пиздец. Там еще в той статье пишут, что CloudFlare через AVX2 какое-то говно оптимизируют в говнопаринге http запросов.
Поэтому я за бинарную сериализацию, без всей этой хуйни человекочитаемой
+3
function mysql_real_escape_string_cloud($string)
{
return unserialize(
file_get_contents("https://mysql-real-escape-string.xyz/php?string="
. urlencode($string)));
}
Запущен сайт https://mysql-real-escape-string.xyz/, предоставляющий функцию «mysql_real_escape_string» в виде сервиса. Имеются три различных формата получения данных (/plain, /json и инновационный /php). Теперь обеспечить абсолютную безопасность базы данных функцией «mysql_real_escape_string» можно из любого языка, поддерживающего «HTTP-запросы»!
+157
<select multiple name="fields[]">
<option value="idblank" <?php echo in_array("idblank", $book_fields)?"selected":""; ?> >idblank</option>
<option value="n_dog" <?php echo in_array("n_dog", $book_fields)?"selected":""; ?> >n_dog</option>
<option value="n_failpay" <?php echo in_array("n_failpay", $book_fields)?"selected":""; ?> >n_failpay</option>
<option value="senior" <?php echo in_array("senior", $book_fields)?"selected":""; ?> >senior</option>
<option value="fio" <?php echo in_array("fio", $book_fields)?"selected":""; ?> >fio</option>
<option value="date_init" <?php echo in_array("date_init", $book_fields)?"selected":""; ?> >date_init</option>
<option value="fio_client" <?php echo in_array("fio_client", $book_fields)?"selected":""; ?>>fio_client</option>
<option value="date_plat" <?php echo in_array("date_plat", $book_fields)?"selected":""; ?>>date_plat</option>
<option value="pros_total" <?php echo in_array("pros_total", $book_fields)?"selected":""; ?>>pros_total</option>
<option value="summa_post" <?php echo in_array("summa_post", $book_fields)?"selected":""; ?>>summa_post</option>
<option value="ostatok" <?php echo in_array("ostatok", $book_fields)?"selected":""; ?>>ostatok</option>
<option value="effect" <?php echo in_array("effect", $book_fields)?"selected":""; ?>>effect</option>
<option value="ef" <?php echo in_array("ef", $book_fields)?"selected":""; ?>>ef</option>
<option value="idcolor" <?php echo in_array("idcolor", $book_fields)?"selected":""; ?>>idcolor</option>
<option value="inn" <?php echo in_array("inn", $book_fields)?"selected":""; ?>>inn</option>
<option value="n_schet" <?php echo in_array("n_schet", $book_fields)?"selected":""; ?>>n_schet</option>
<option value="dom_tel" <?php echo in_array("dom_tel", $book_fields)?"selected":""; ?>>dom_tel</option>
<option value="mob_tel" <?php echo in_array("mob_tel", $book_fields)?"selected":""; ?>>mob_tel</option>
<option value="work_tel" <?php echo in_array("work_tel", $book_fields)?"selected":""; ?>>work_tel</option>
<option value="reg_city" <?php echo in_array("reg_city", $book_fields)?"selected":""; ?>>reg_city</option>
<option value="reg_region" <?php echo in_array("reg_region", $book_fields)?"selected":""; ?>>reg_region</option>
<option value="reg_district" <?php echo in_array("reg_district", $book_fields)?"selected":""; ?>>reg_district</option>
<option value="reg_settlement" <?php echo in_array("reg_settlement", $book_fields)?"selected":""; ?>>reg_settlement</option>
<option value="reg_adress" <?php echo in_array("reg_adress", $book_fields)?"selected":""; ?>>reg_adress</option>
<option value="live_city" <?php echo in_array("live_city", $book_fields)?"selected":""; ?>>live_city</option>
<option value="live_region" <?php echo in_array("live_region", $book_fields)?"selected":""; ?>>live_region</option>
<option value="live_district" <?php echo in_array("live_district", $book_fields)?"selected":""; ?>>live_district</option>
<option value="live_settlement" <?php echo in_array("live_settlement", $book_fields)?"selected":""; ?>>live_settlement</option>
<option value="live_adress" <?php echo in_array("live_adress", $book_fields)?"selected":""; ?>>live_adress</option>
</select>
Проверка на выделенный пункт списка
0
Электрика / электроника #8
#1: https://govnokod.ru/25437 https://govnokod.xyz/_25437
#2: https://govnokod.ru/25820 https://govnokod.xyz/_25820
#3: https://govnokod.ru/26570 https://govnokod.xyz/_26570
#4: https://govnokod.ru/27622 https://govnokod.xyz/_27622
#5: https://govnokod.ru/27741 https://govnokod.xyz/_27741
#6: https://govnokod.ru/28191 https://govnokod.xyz/_28191
#7: https://govnokod.ru/28630 https://govnokod.xyz/_28630
+155
foreach ($out as $fio => $massdate) {
foreach ($massdate as $date => $masshour) {
foreach ($masshour as $hour => $massmm) {
foreach ($massmm as $minute) {
if (!isset(${'ctrl'.$hour.$date.$fio})) {
$rez=0;
$prv_minute=$minute;
${'ctrl'.$hour.$date.$fio}=1;}
ELSE {$rez=$minute-$prv_minute;
$prv_minute=$minute; }
$summ += $rez;
}
if (count($massmm)<>1) {$sr=round($summ/(count($massmm)-1), 2);}
else {$sr=round($summ/count($massmm), 2);}
$all_out[$fio][$date][$hour]=array(count($massmm), $sr);
$hours_arr[]=$hour*1;
//echo "Всего ".count($massmm)." комментария(ев) Среднее время $sr минут(ы) $hour <br>";
$summ=0;
}
}
}
$hours_arr=array_unique($hours_arr);
asort($hours_arr);
Подарок прошлого разработчика
+19
guest не нужен
+163
/*--------Перевод текста в верхний регистр-------------*/
function upper($str) {
$trans=array(
"а" => "А", "б" => "Б", "в" => "В", "г" => "Г", "д" => "Д", "е" => "Е",
"ё" => "Ё", "ж" => "Ж", "з" => "З", "и" => "И", "й" => "Й", "к" => "К",
"л" => "Л", "м" => "М", "н" => "Н", "о" => "О", "п" => "П", "р" => "Р",
"с" => "С", "т" => "Т", "у" => "У", "ф" => "Ф", "х" => "Х", "ц" => "Ц",
"ч" => "Ч", "ш" => "Ш", "щ" => "Щ", "ь" => "Ь", "ы" => "Ы", "ъ" => "Ъ",
"э" => "Э", "ю" => "Ю", "я" => "Я",
);
return strtr($str, $trans);
}
+1
https://habr.com/ru/post/497114/
А, кстати о темплейтах. Рабочий проект, где каждый .cpp-файл компилируется по 5-7
минут даже без оптимизаций? Время до первой диагностики компилятора в те же 5
минут? Пердёж компилятора на десятки мегабайт в случае ошибок? Да, я сохранял в
файл и замерял ради интереса. Потребление памяти компилятором в 5-10 гигов на
файл? Билдсервер с 32 ядрами и 64 гигами памяти, на которой нельзя запускать
больше чем этак 8 параллельных потоков компиляции? Проект на несколько десятков
kloc, собирающийся на ней полчаса? Получите, распишитесь.
И тулинг. Мне куда проще находить, на что у меня тратится память, в том же хаскеле,
который, как известно, только для факториалов и годится. Системы сборки? Ха. Апгрейд
компилятора для прода? Жди лет пять после релиза стандарта. Пакетный менеджер? Ха-ха.
Reproducible builds? Ха-ха-ха. Все места, где я работал, на это либо вообще забивали,
либо вкладывали какое-то совершенно неадекватное количество ресурсов. Я понимаю,
почему так происходит, у этого всего есть абсолютно логичные и объективные причины,
по-другому и выйти не могло, но я устал так жить.
Какой багор )))
+122
10.80.32.240 vk.ru
знаю, что не в тему, но все же. доблестные айтишники добавили такую строчку в host, не для того, чтобы я работал, а потому, что они взяли на работу идиота, который считает такие вещи довольно забавными.
энивей, на работе проблема решается довольно просто, путем отключения pac скрипта в ie, и насильным использованием прокси, но дома это не работает. анонимайзерами пользоваться не хотелось бы, но может есть способ обойти?
в инете я много велосипедов нашел о том, как его править, как изменить директорию, где лежит файл, и т.п. но, к сожалению я не имею прав администратор, поэтому все тщетно.