- 1
- 2
Привет, писюны. Что-то слишком много стало нападений собаков на людей...
Кто как считает, виноваты собаки или люди?
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
Привет, писюны. Что-то слишком много стало нападений собаков на людей...
Кто как считает, виноваты собаки или люди?
0
Мда... Какое же всё таки говнецо это Ваше США.
0
# Setup the admin service from Microsoft
def setup_microsoft_admin_service
# define the empty microsoft picture url
@no_profile_picture = 'https://secure.aadcdn.microsoftonline-p.com/ests/2.1.5670.18/content/images/work_account.png'
# Application id and secret from microsoft
client_id = ENV['AZURE_CLIENT_ID']
# client_secret = 'z8uGboGliWfBqa8/s8K4KbDH96l1F0+PuFwX+AOGJTQ='
client_secret = ENV['AZURE_CLIENT_SECRET']
# Should also be listed in microsoft app
tenant = Current.organization['microsoft_azure_domain_hint']
# Create credentials using Active Directory Azure Library
client_cred = ADAL::ClientCredential.new(client_id, client_secret)
context = ADAL::AuthenticationContext.new(ADAL::Authority::WORLD_WIDE_AUTHORITY, tenant)
# Return the acquired tokens from the graph site
context.acquire_token_for_client('https://graph.microsoft.com', client_cred)
end
Perfección
0
int IsEven(long long int number){
if (number == 0) return 0;
long long int loc_num = 0;
update:
if (number == loc_num+1) {return 1;
} else if (number == (loc_num+1)*(-1)) { return 1;
} else {
if (number == loc_num+2) {return 0;
} else if (number == (loc_num+2)*(-1)) { return 0;
} else {
if (number == loc_num+3) {return 1;
} else if (number == (loc_num+3)*(-1)) { return 1;
} else {
if (number == loc_num+4) {return 0;
} else if (number == (loc_num+4)*(-1)) { return 0;
} else {
if (number == loc_num+5) {return 1;
} else if (number == (loc_num+5)*(-1)) { return 1;
} else {
if (number == loc_num+6) {return 0;
} else if (number == (loc_num+6)*(-1)) { return 0;
} else {
if (number == loc_num+7) {return 1;
} else if (number == (loc_num+7)*(-1)) { return 1;
} else {
if (number == loc_num+8) {return 0;
} else if (number == (loc_num+8)*(-1)) { return 0;
} else {
if (number == loc_num+9) {return 1;
} else if (number == (loc_num+9)*(-1)) { return 1;
} else {
if (number == loc_num+10) {return 0;
} else if (number == (loc_num+10)*(-1)) { return 0;
} else {
loc_num+=10;
goto update;
}
}
}
}
}
}
}
}
}
}
}
0
Тип объекта, который инициализируется безумно.
https://learn.microsoft.com/ru-ru/dotnet/api/system.lazy-1?view=net-8.0#--------------
Обожаю автоматический перевод в документации
В оригинале, кстати, вот так:
https://learn.microsoft.com/en-us/dotnet/api/system.lazy-1?view=net-8.0#type-parameters
Заметьте, что ссылка тоже побилась
0
//Таб пропущенные
УсловиеОтбора = "ABANDON";
ДлинаСтрОтбора = 32;
Для с=1 По ДлинаСтрОтбора - СтрДлина(УсловиеОтбора) Цикл
УсловиеОтбора = УсловиеОтбора + " ";
КонецЦикла;
ТабПропущенные = Таб_queue.Скопировать(Новый Структура("Событие",УсловиеОтбора));
//Таб всё же дозвонились
УсловиеОтбора = "CONNECT";
ДлинаСтрОтбора = 32;
Для с=1 По ДлинаСтрОтбора - СтрДлина(УсловиеОтбора) Цикл
УсловиеОтбора = УсловиеОтбора + " ";
КонецЦикла;
ТабДозвонились = Таб_queue.Скопировать(Новый Структура("Событие",УсловиеОтбора));
В таблице какого то черта стояла фиксированная строка длинной 32 символа.
Вот так "изящно" обошли это.
0
private void UpdateRowInfo()
{
//код
if (condition);
{
//код
}
//код
}
Наткнулся на вот такое в одном проекте. Точка с запятой после if считается пустым statement, а всё что внутри фигурных скобок - просто блок, от if'а независящий. Всё, как IDEшка об этом сообщает - точка с запятой стала серого цвета (на сером фоне, ага). Угадайте, сколько времени искался этот баг
0
#define EMPTY(...)
#define DEFER(...) __VA_ARGS__ EMPTY()
#define EXPAND(...) __VA_ARGS__
#define PARENS ()
#define CONCAT_IMPL(L, R) L ## R
#define CONCAT(L, R) CONCAT_IMPL(L, R)
#define EVAL(...) __VA_ARGS__
#define EVAL_1(...) __VA_ARGS__
#define EVAL_1_1(...) __VA_ARGS__
#define EVAL_1_2(...) __VA_ARGS__
#define EVAL_2(...) EVAL_1(EVAL_1(__VA_ARGS__))
#define EVAL_4(...) EVAL_2(EVAL_2(__VA_ARGS__))
#define EVAL_8(...) EVAL_4(EVAL_4(__VA_ARGS__))
#define EVAL_16(...) EVAL_8(EVAL_8(__VA_ARGS__))
#define EVAL_32(...) EVAL_16(EVAL_16(__VA_ARGS__))
#define EVAL_64(...) EVAL_32(EVAL_32(__VA_ARGS__))
#define EVAL_128(...) EVAL_64(EVAL_64(__VA_ARGS__))
#define EVAL_256(...) EVAL_128(EVAL_128(__VA_ARGS__))
#define EVAL_512(...) EVAL_256(EVAL_256(__VA_ARGS__))
#define EVAL_1024(...) EVAL_512(EVAL_512(__VA_ARGS__))
#define FOR_EACH_64(MACRO, ...) EVAL_64(FOR_EACH_IMPL(MACRO, __VA_ARGS__))
#define FOR_EACH_128(MACRO, ...) EVAL_128(FOR_EACH_IMPL(MACRO, __VA_ARGS__))
#define FOR_EACH_256(MACRO, ...) EVAL_256(FOR_EACH_IMPL(MACRO, __VA_ARGS__))
#define FOR_EACH_512(MACRO, ...) EVAL_512(FOR_EACH_IMPL(MACRO, __VA_ARGS__))
#define FOR_EACH_1024(MACRO, ...) EVAL_1024(FOR_EACH_IMPL(MACRO, __VA_ARGS__))
#define FOR_EACH(MACRO, ...) EVAL_1024(FOR_EACH_IMPL(MACRO, __VA_ARGS__))
#define FOR_EACH_NEXT() FOR_EACH_IMPL
#define FOR_EACH_IMPL(MACRO, ARG1, ...) MACRO(ARG1)__VA_OPT__(FOR_EACH_NEXT PARENS (MACRO, __VA_ARGS__))
#define SELECT(FIRST, ...) FIRST
#define SELECT_SECOND(FIRST, ...) __VA_ARGS__
#define DISCARD_1(FIRST, ...) SELECT##__VA_OPT__(_SECOND)(FIRST, __VA_ARGS__)
#define REMOVE_PARENTHESES_IMPL(ARG, _, ...) __VA_OPT__(EVAL) ARG
#define REMOVE_PARENTHESES(ARG) EVAL_1(DEFER(REMOVE_PARENTHESES_IMPL)(ARG, CHECK_PARENTHESES ARG))
#define CHECK_PARENTHESES(...) _, __VA_ARGS__
#define MAKE_HELPER_STRUCT(COUNTER, ...) template<EVAL_1024(MAKE_HELPER_STRUCT_IMPL(COUNTER, __VA_ARGS__))
#define MEMBER_POINTER_CONCAT(_, ...) FOR_EACH_256(MEMBER_POINTER_CONCAT_ONCE, __VA_ARGS__)
#define MEMBER_POINTER_CONCAT_ONCE(ARG) auto EVAL_1_1(DEFER(DISCARD_1)(REMOVE_PARENTHESES(ARG))), EMPTY()
#define MAKE_HELPER_STRUCT_IMPL(COUNTER, ARG1, ...) EVAL_1_2(DEFER(MAKE_HELPER_STRUCT_IMPL_DISPATCH)(COUNTER, ARG1, (__VA_ARGS__), CHECK_PARENTHESES ARG1))
#define MAKE_HELPER_STRUCT_IMPL_DISPATCH(COUNTER, ARG1, ARGS, _, ...) MAKE_HELPER_STRUCT_IMPL_TASK##__VA_OPT__(_EXEC)(COUNTER, CONCAT(ARG1, EVAL ARGS), __VA_ARGS__) __VA_OPT__(MAKE_HELPER_STRUCT_NEXT PARENS (COUNTER, EVAL ARGS))
#define MAKE_HELPER_STRUCT_IMPL_TASK(COUNTER, FUNCTIONS, ...) void *> struct intrusive_function_helper_##COUNTER { FUNCTIONS };
#define MAKE_HELPER_STRUCT_IMPL_TASK_EXEC(_1, _2, ...) MEMBER_POINTER_CONCAT(__VA_ARGS__)
#define MAKE_HELPER_STRUCT_NEXT() MAKE_HELPER_STRUCT_IMPL
#define CLASS_CONCAT(CLASS, ...) EVAL_256(CLASS_CONCAT_IMPL(CLASS, __VA_ARGS__))
#define CLASS_CONCAT_IMPL(CLASS, ARG1, ...) &CLASS::EVAL(DEFER(SELECT)(REMOVE_PARENTHESES(ARG1))), __VA_OPT__(CLASS_CONCAT_NEXT PARENS (CLASS, __VA_ARGS__))
#define CLASS_CONCAT_NEXT() CLASS_CONCAT_IMPL
#define MAKE_TEMPLATE_INST(COUNTER, ...) template struct intrusive_function_helper_##COUNTER<EVAL_1024(MAKE_TEMPLATE_INST_IMPL(__VA_ARGS__)) nullptr>
#define MAKE_TEMPLATE_INST_IMPL(ARG1, ...) EVAL_1_1(DEFER(MAKE_TEMPLATE_INST_IMPL_DISPATCH)((__VA_ARGS__), CHECK_PARENTHESES ARG1))
#define MAKE_TEMPLATE_INST_IMPL_DISPATCH(ARGS, _, ...) MAKE_TEMPLATE_INST_IMPL_TASK##__VA_OPT__(_EXEC)(__VA_ARGS__) __VA_OPT__(MAKE_TEMPLATE_INST_NEXT PARENS ARGS)
#define MAKE_TEMPLATE_INST_IMPL_TASK(...)
#define MAKE_TEMPLATE_INST_IMPL_TASK_EXEC(...) CLASS_CONCAT(__VA_ARGS__)
#define MAKE_TEMPLATE_INST_NEXT() MAKE_TEMPLATE_INST_IMPL
#define DEFINE_INTRUSIVE_FUNCTIONS_IMPL(COUNTER, ...) MAKE_HELPER_STRUCT(COUNTER, __VA_ARGS__) MAKE_TEMPLATE_INST(COUNTER, __VA_ARGS__)
#define DEFINE_INTRUSIVE_FUNCTIONS(...) DEFINE_INTRUSIVE_FUNCTIONS_IMPL(__COUNTER__, __VA_ARGS__);
template<class T> T force_create() { char bytes[sizeof(T)]{}; return *reinterpret_cast<T *>(bytes); }
//=======================================================================================//
#include <iostream>
#include <tuple>
class Person {
private:
class BankAccount { int money; } bank_account;
int money;
std::string name;
std::string status;
Person() = delete;
};
DEFINE_INTRUSIVE_FUNCTIONS((Person, name, bank_account, money, status), (Person::BankAccount, (money, bank_money)),
friend Person force_create_person(auto ...args) {
auto p = force_create<Person>();
std::tie(p.*name, p.*status, p.*bank_account.*bank_money, p.*money) = std::make_tuple(args...);
return p;
}
friend void force_print(const Person &p) {
std::cout << p.*name
<< "\n status: " << p.*status
<< "\n bank_money: " << p.*bank_account.*bank_money
<< "\n money: " << p.*money
<< "\n";
}
friend void force_rob(Person &p) {
p.*status = "poor";
p.*bank_account.*bank_money = std::min(0, p.*bank_account.*bank_money);
p.*money = std::min(0, p.*money);
})
Person force_create_person(auto ...args);
void force_print(const Person &p);
void force_rob(Person &p);
int main() {
auto p = force_create_person("John", "rich", 999999, 4242);
force_print(p);
force_rob (p);
force_print(p); // John
// status: poor
// bank_money: 0
// money: 0
}
Принудительный доступ к закрытым членам в C++
+1
$tempname = '__temp__.apk';
copy($origname, $tempname);
exec('C:\Android\android-sdk\build-tools\34.0.0\aapt.exe dump badging ' . '"'.$tempname.'"', $output);
unlink($tempname);
Понадобилось по-быстрому наговнякать переименоватор apk-файлов. Решил метушню из манифеста вытянуть с помощью «aapt» из официальных «Android build tools». Оказалось, что «aapt» не может открыть файл, если его имя содержит символы за пределами базового ASCII. CHCP не помогает вообще никак.
При передаче в aapt имени в 866 выводится «asset... Asset path... is neither a directory nor file (type=1)», при передаче имени в других кодировках (1251, UTF-8) выводится сообщение «ziparchive... Invalid byte sequence». Так и не смог подобрать кодировку, в которой заработает.
Шёл 2024-й год.
0
@JvmInline
value class Code(val value: Short) {
companion object {
fun from(value: Number): CurrencyCode {
checkValid(value)
return CurrencyCode(value.toShort())
}
private fun checkValid(value: Number) {
val targetValue = value.toDouble()
val isValueInvalid = floor(targetValue) != targetValue
|| targetValue < 0
|| targetValue > Short.MAX_VALUE
if (isValueInvalid) {
throw DomainRuleViolationException(
"Code must be of 'short' type, greater than 0 and lower than ${Short.MAX_VALUE}. Provided: [$value]"
)
}
}
}
init {
checkValid(value)
}
}
Валидация данных приходящих в контроллер. При этом в проекте существует Эксепшнхендлер на неверный инпут от пользователя, который отлично работает еще во время десерелизации запроса.