- 1
IT Оффтоп #25
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
IT Оффтоп #25
#1: https://govnokod.ru/18142 https://govnokod.xyz/_18142
#2: https://govnokod.ru/18378 https://govnokod.xyz/_18378
#3: https://govnokod.ru/19667 https://govnokod.xyz/_19667
#4: https://govnokod.ru/21160 https://govnokod.xyz/_21160
#5: https://govnokod.ru/21772 https://govnokod.xyz/_21772
#6: https://govnokod.ru/24063 (потёр пидор сракер) https://govnokod.xyz/_24063
#7: https://govnokod.ru/24538 https://govnokod.xyz/_24538
#8: https://govnokod.ru/24815 (потёр пидор сракер) https://govnokod.xyz/_24815
#9: https://govnokod.ru/24867 https://govnokod.xyz/_24867
#10: https://govnokod.ru/25328 https://govnokod.xyz/_25328
#11: https://govnokod.xyz/_25436 https://govnokod.ru/25436 (потёр пидор сракер)
#12: https://govnokod.xyz/_25471
#13: https://govnokod.xyz/_25590 (потёр пидор сракер)
#14: https://govnokod.xyz/_25684
#15: https://govnokod.xyz/_25694
#16: https://govnokod.xyz/_25725
#17: https://govnokod.xyz/_25731
#18: https://govnokod.xyz/_25762
#19: https://govnokod.xyz/_25767
#20: https://govnokod.xyz/_25776
#21: https://govnokod.xyz/_25798
#22: https://govnokod.xyz/_25811
#23: http://govnokod.ru/25863 https://govnokod.xyz/_25863
#24: http://govnokod.ru/25941 https://govnokod.xyz/_25941
0
DBconfig.php
<?
function sql_connect($mysqlhost,$mysqluser,$mysqlpass,$mysqldb){
$sql_conn=mysql_connect($mysqlhost,$mysqluser,$mysqlpass) or die("mysql_query error: " .mysql_error());
mysql_select_db($mysqldb);
}
function sql_execute($query, $get_counter = false)
{
static $sqlquerycounter = 0;
if(isset($_GET['_dbg']) && isset($_GET['_sql'])){pr('['.$sqlquerycounter.'] '.$query);}
if(!$get_counter)
{
if (!$query = mysql_query($query)) {
trigger_error('MySQL Error: '.mysql_error());
}
$sqlquerycounter++;
return $query;
}
else {return $sqlquerycounter;}
}
function sql_close(){
mysql_close($sql_conn);
}
?>
file.php
sql_connect($_CONFIG["mysqlhost"], $_CONFIG["mysqluser"], $_CONFIG["mysqlpass"], $_CONFIG["mysqldb"]);
$sql = sql_execute("SET NAMES UTF8");
$sql = sql_execute("SELECT * FROM publications WHERE id='$_GET[id]' LIMIT 0,1");
$res = mysql_fetch_array($sql);
0
<? foreach ($arResult["ITEMS"] as $i => $arItem):
$this->AddEditAction($arItem['ID'], $arItem['EDIT_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_EDIT"));
$this->AddDeleteAction($arItem['ID'], $arItem['DELETE_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_DELETE"), array("CONFIRM" => GetMessage('CT_BNL_ELEMENT_DELETE_CONFIRM')));
switch ($i) {
case(0):
$case = 'bgd1';
break;
case(1):
$case = 'bgd2';
break;
case(2):
$case = 'bgd2';
break;
case(3):
$case = 'bgd3';
break;
default:
$case = 'bgd4';
break;
}
?>
Вот что я кукареку
0
<?if($arParams["DISPLAY_PICTURE"]!="N" && is_array($arItem["PREVIEW_PICTURE"])):?>
<?if(!$arParams["HIDE_LINK_WHEN_NO_DETAIL"] || ($arItem["DETAIL_TEXT"] && $arResult["USER_HAVE_ACCESS"])):?>
<span class="article_image"><img class="preview_picture" src="<?=$arItem["PREVIEW_PICTURE"]["SRC"]?>" alt="<?=$arItem["NAME"]?>" title="<?=$arItem["NAME"]?>"></span>
<?else:?>
<span class="article_image"><img class="preview_picture" src="<?=$arItem["PREVIEW_PICTURE"]["SRC"]?>" alt="<?=$arItem["NAME"]?>" title="<?=$arItem["NAME"]?>"></span>
<?endif;?>
<?endif?>
....
<?if($arParams["DISPLAY_NAME"]!="N" && $arItem["NAME"]):?>
<?if(!$arParams["HIDE_LINK_WHEN_NO_DETAIL"] || ($arItem["DETAIL_TEXT"] && $arResult["USER_HAVE_ACCESS"])):?>
<header><?echo $arItem["NAME"]?></header>
<?else:?>
<header><?echo $arItem["NAME"]?></header>
<?endif;?>
<?endif;?>
От создателя if (true) return true elseif (false) return false;
+4
// https://godbolt.org/z/PPAWM0
#include <embed>
#include <cstdint>
constexpr std::uint64_t val_64_const = 0xcbf29ce484222325u;
constexpr std::uint64_t prime_64_const = 0x100000001b3u;
inline constexpr std::uint64_t
hash_64_fnv1a_const(const char* const ptr, std::size_t ptr_size, const std::uint64_t value = val_64_const) noexcept {
return (ptr_size == 1)
? value :
hash_64_fnv1a_const(&ptr[1],
ptr_size - 1,
(value ^ static_cast<std::uint64_t>(static_cast<char>(*ptr))) * prime_64_const);
}
int main () {
constexpr std::span<const char> art_data = std::embed("/dev/urandom", 32);
constexpr std::uint64_t actual = hash_64_fnv1a_const(art_data.data(), art_data.size());
return static_cast<int>(actual);
}
Очередная дрисня http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/p1040r0.html в крестоговне, теперь можно через std::embed прочитать какое-то говно и даже в constexpr с ним что-то делать, например считать хеш-сумму. Можно constexpr-компилятор сделать, который бы читал код через std::embed и через constexpr хуиту его обрабатывал и компилировал. Скажите им еще про миксины из D
0
module Voretion.Kobenation (
trySort
, natalyze
, toBase64
, fromBase64
, dbgKob
) where
https://github.com/k32/zenmaster
Чей петух, кто знает?
+2
Дали тестовое задание.
Написать хеш таблицу с открытой адресацией. Главное качество, а не скорость, сказали.
Реализовал на C++.
Самая тягомотина - это тестирование многопоточности.
Есть операции:
find, equalRange, operator [] - тот же equalRange, но возвращает все найденные вхождения, insert, remove, extend, size, capacity.
И вот надо каждую относительно другой проверять.
Только это выходит (9 - 1)^2 тестов. Помимо остальных, уже реализованных.
у меня проверка на значения только в операциях поиска относительно вставки, то бишь, нашелся ли в многопоточном исполнении элемент, или нет.
относительно удаления проверять - это муторно, потому что после удаления на той же позиции встает соседняя пара, и это случайно, проверено
экспериментально.
Сойдет ли просто проверять время блокировки (shared_lock, и lock_guard)
каждого параллельного текущему потоку относительно времени блокировки\старта\окончания блокировки текущего?
кроме связки (access - insert)?
Тем более, что операции записи\чтения проверяются в немногопоточном исполнении?
−1
#!/bin/sh
IFS=:
echo "Login\tUID"
while read LOGIN _ UID _;
do
echo "$LOGIN\t$UID"
done < /etc/passwd
давайте обсуждать шелл-программирование
0
#include "pch.h"
#include <iostream>
using namespace std;
struct _Point {
double x, y, z;
};
void setPoint(_Point &, double = 0, double = 0, double = 0);
void outPoint(const _Point &, char);
int main()
{
_Point A, B, C, D;
setPoint(A, 1, 5, 6.78);
setPoint(B);
setPoint(C, 8);
setPoint(D, 3, 4);
outPoint(A,'a');
outPoint(B,'b');
outPoint(C,'c');
outPoint(D,'d');
}
void setPoint(_Point &name, double a, double b, double c) {
name.x = a;
name.y = b;
name.z = c;
}
void outPoint(const _Point &name,char ch) {
cout <<ch<< "(" << name.x << ", " << name.y << ", " << name.z << ")\n";
}
0
Building on that example, the new syntax for function definitions would look like:
def name(positional_only_parameters, /, positional_or_keyword_parameters,
*, keyword_only_parameters):
Therefore the following would be valid function definitions:
def name(p1, p2, /, p_or_kw, *, kw):
def name(p1, p2=None, /, p_or_kw=None, *, kw):
def name(p1, p2=None, /, *, kw):
def name(p1, p2=None, /):
def name(p1, p2, /, p_or_kw):
https://www.python.org/dev/peps/pep-0570