- 1
- 2
https://i.imgur.com/kMVofCA.png
ооооонейросетьоооотвечайрррооооооооооооооооооооооооооооооооооооооооооооооооввоооооооооооо
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 340
+2
https://i.imgur.com/kMVofCA.png
ооооонейросетьоооотвечайрррооооооооооооооооооооооооооооооооооооооооооооооооввоооооооооооо
по какому блядь принципу работает этот гугловский говнопереводчик?
0
https://github.com/TartanLlama/optional/blob/master/optional.hpp#L853
/// Constructs the stored value with `u`.
/// \synopsis template <class U=T> constexpr optional(U &&u);
template <
class U = T,
detail::enable_if_t<std::is_convertible<U &&, T>::value> * = nullptr,
detail::enable_forward_value<T, U> * = nullptr>
constexpr optional(U &&u) : base(in_place, std::forward<U>(u)) {}
/// \exclude
template <
class U = T,
detail::enable_if_t<!std::is_convertible<U &&, T>::value> * = nullptr,
detail::enable_forward_value<T, U> * = nullptr>
constexpr explicit optional(U &&u) : base(in_place, std::forward<U>(u)) {}
/// Converting copy constructor.
/// \synopsis template <class U> optional(const optional<U> &rhs);
template <
class U, detail::enable_from_other<T, U, const U &> * = nullptr,
detail::enable_if_t<std::is_convertible<const U &, T>::value> * = nullptr>
optional(const optional<U> &rhs) {
this->m_has_value = true;
new (std::addressof(this->m_value)) T(*rhs);
}
/// \exclude
template <class U, detail::enable_from_other<T, U, const U &> * = nullptr,
detail::enable_if_t<!std::is_convertible<const U &, T>::value> * =
nullptr>
explicit optional(const optional<U> &rhs) {
this->m_has_value = true;
new (std::addressof(this->m_value)) T(*rhs);
}
/// Converting move constructor.
/// \synopsis template <class U> optional(optional<U> &&rhs);
template <
class U, detail::enable_from_other<T, U, U &&> * = nullptr,
detail::enable_if_t<std::is_convertible<U &&, T>::value> * = nullptr>
optional(optional<U> &&rhs) {
this->m_has_value = true;
new (std::addressof(this->m_value)) T(std::move(*rhs));
}
/// \exclude
template <
class U, detail::enable_from_other<T, U, U &&> * = nullptr,
detail::enable_if_t<!std::is_convertible<U &&, T>::value> * = nullptr>
explicit optional(optional<U> &&rhs) {
this->m_has_value = true;
new (std::addressof(this->m_value)) T(std::move(*rhs));
}
Я даже не знаю, какой конкретно фрагмент этого творчества сюда выкладывать.
https://github.com/TartanLlama/optional C++11/14/17 std::optional with functional-style extensions https://optional.tartanllama.xyz
Вообще меня это забавляет, все эти костылепостроения поверх плюсов. Сделайте там уже возможность в компилтайме работать напрямую с исходным кодом самого себя, т.е. чтобы был некий код, который плюсокомпилятором в компилтайме обрабатывался, и чтобы он принимал исходник самого себя просто в виде тупо текста, и мог произвольно менять содержимое исходника на этапе компиляции (не меняя при этом сами файлы в файловой системе), и чтоб в качестве библиотек к этому компилтайм-метушению шел лексер-парсер плюсов.
Понятно что из плюсов никакого гомоиконного лиспа сделать не выйдет, ведь тогда надо выкинуть очень красивый и элегантный плюсосинтаксис вида std::kukarek(std:kudah<std:kokoko{kokoko ko[hui<govno>]}>:()[*huita]{}) и заменить его на бездуховные скобочки
+8
Для кульминации ебаных тендеций ебаных информационных технологий,
предлагаю выпустить новые процессоры интел со встроенным джаваскриптом.
Никакого больше ассемблера, никаких ядер, драйверов, ничего не нужно, на
каждом процессоре будет встроенный хардварный веб-сервер с нодежс,
общение с видеокартой, памятью, периферией будет только с помощью
API-вызовов, теперь каждый альтернативно интеллектуальный
жаваскрипт-разработчик сможет почувствовать себя системным программистом
+3
https://pbs.twimg.com/media/DMbz4s9UEAACa5x.jpg
how to deprecate an interface
+3
// https://github.com/vk-com/kphp-kdb/blob/ce6dead5b3345f4b38487cc9e45d55ced3dd7139/bayes/bayes-data.c#L1966
int init_all (kfs_file_handle_t Index) {
int i;
log_ts_exact_interval = 1;
ltbl_init (&user_table);
bl_head = qmalloc (sizeof (black_list));
black_list_init (bl_head);
int f = load_header (Index);
jump_log_ts = header.log_timestamp;
jump_log_pos = header.log_pos1;
jump_log_crc32 = header.log_pos1_crc32;
int user_cnt = index_users = header.user_cnt;
if (user_cnt < 1000000) {
user_cnt = 1000000;
}
assert (user_cnt >= 1000000);
user_cnt *= 1.1;
while (user_cnt % 2 == 0 || user_cnt % 5 == 0) {
user_cnt++;
}
ltbl_set_size (&user_table, user_cnt);
users = qmalloc (sizeof (user) * user_cnt);
for (i = 0; i < user_cnt; i++) {
user_init (&users[i]);
}
LRU_head = users;
LRU_head->next_used = LRU_head->prev_used = LRU_head;
if (f) {
try_init_local_uid();
}
if (index_mode) {
buff = qmalloc (max_words * sizeof (entry_t));
new_buff = qmalloc (4000000 * sizeof (entry_t));
}
return f;
}
http://govnokod.ru/23357#comment390273
> Говорят что в ВК в начале была такая херь: "уже зарегистрировано N" и это N увеличивалось джаваскриптом со случайной скоростью вообще без связи с сервером
Если я правильно понял, вконтакт продолжает пиздеть по поводу фактического количества зареганых на нем пользовалелей, но теперь делает это на бэкенде
user_cnt *= 1.1;
cunt
+2
// https://github.com/vk-com/kphp-kdb/blob/ce6dead5b3345f4b38487cc9e45d55ced3dd7139/bayes/bayes-data.c#L569
for (i = j = 0; v[i]; i++) {
f[j] = i;
if (v[i + 1] == '#' && (v[i] == '&' || v[i] == '$')) {
int r = 0, ti = i;
if (v[i + 2] != 'x') {
for (i += 2; v[i] != ';' && v[i]; i++) {
if ('0' <= v[i] && v[i] <= '9') {
r = r * 10 + v[i] - '0';
} else {
break;
}
}
} else {
for (i += 3; v[i] != ';' && v[i]; i++) {
if (('0' <= v[i] && v[i] <= '9') ||
('a' <= v[i] && v[i] <= 'f') ||
('A' <= v[i] && v[i] <= 'F')) {
r = r * 16;
if (v[i] <= '9') {
r += v[i] - '0';
} else if (v[i] <= 'F') {
r += v[i] - 'A' + 10;
} else {
r += v[i] - 'a' + 10;
}
} else {
break;
}
}
}
if (r == 0) {
bad[j] = 0;
pv[j++] = v[i = ti];
} else {
bad[j] = 1;
pv[j++] = r;
if (v[i] != ';') {
i--;
}
}
} else if (v[i] == '%' && '0' <= v[i + 1] && v[i + 1] <= '7' &&
(('0' <= v[i + 2] && v[i + 2] <= '9') ||
('a' <= v[i + 2] && v[i + 2] <= 'f') ||
('A' <= v[i + 2] && v[i + 2] <= 'F'))) {
int r = (v[i + 1] - '0') * 16;
if (v[i + 2] <= '9') {
r += v[i + 2] - '0';
} else if (v[i + 2] <= 'F') {
r += v[i + 2] - 'A' + 10;
} else {
r += v[i + 2] - 'a' + 10;
}
i += 2;
if (r != ':' && r != '/' && r != '=' && r != '?' && r != '&' && r != '+') {
bad[j] = 1;
} else {
bad[j] = 0;
}
pv[j++] = r;
} else {
bad[j] = 0;
pv[j++] = v[i];
}
}
f[j] = i;
pv[j] = 0;
for (i = 0; i < j; i++) {
if ('A' <= pv[i] && pv[i] <= 'Z') {
pv[i] = pv[i] - 'A' + 'a';
bad[i] += 2;
}
}
Очередной ебаный пиздец из kPHP
В предыдущих сериях:
http://govnokod.ru/19842
http://govnokod.ru/15406
+2
string shifarhex(string count)
{
string take,take2;
string getch1;
getch1=count;
string sub1 = "0000";//2 to 3 31
unsigned int pos1 = getch1.find(sub1,0);
if(pos1 != string::npos)
{
take2="0";
}
string sub2 = "0001";//2 to 3 31
unsigned int pos2 = getch1.find(sub2,0);
if(pos2 != string::npos)
{
take2="1";
}
string sub3 = "0010";//2 to 3 31
unsigned int pos3 = getch1.find(sub3,0);
if(pos3 != string::npos)
{
take2="2";
}
string sub4 = "0011";//2 to 3 31
unsigned int pos4 = getch1.find(sub4,0);
if(pos4 != string::npos)
{
take2="3";
}
string sub5 = "0100";//2 to 3 31
unsigned int pos5 = getch1.find(sub5,0);
if(pos5 != string::npos)
{
take2="4";
}
string sub6 = "0101";//2 to 3 31
unsigned int pos6 = getch1.find(sub6,0);
if(pos6 != string::npos)
{
take2="5";
}
string sub7 = "0110";//2 to 3 31
unsigned int pos7 = getch1.find(sub7,0);
if(pos7 != string::npos)
{
take2="6";
}
string sub8 = "0111";//2 to 3 31
unsigned int pos8 = getch1.find(sub8,0);
if(pos8 != string::npos)
{
take2="7";
}
string sub9 = "1000";//2 to 3 31
unsigned int pos9 = getch1.find(sub9,0);
if(pos9 != string::npos)
{
take2="8";
}
string sub10 = "1001";//2 to 3 31
unsigned int pos10 = getch1.find(sub10,0);
if(pos10 != string::npos)
{
take2="9";
}
string sub11 = "1010";//2 to 3 31
unsigned int pos11 = getch1.find(sub11,0);
if(pos11 != string::npos)
{
take2="A";
}
string sub12 = "1011";//2 to 3 31
unsigned int pos12 = getch1.find(sub12,0);
if(pos12 != string::npos)
{
take2="B";
}
string sub13 = "1100";//2 to 3 31
unsigned int pos13 = getch1.find(sub13,0);
if(pos13 != string::npos)
{
take2="B";
}
string sub14 = "1101";//2 to 3 31
unsigned int pos14 = getch1.find(sub14,0);
if(pos14 != string::npos)
{
take2="D";
}
string sub15 = "1110";//2 to 3 31
unsigned int pos15 = getch1.find(sub15,0);
...
http://www.sql.ru/forum/1269897/delaem-arhivator
Вореционное зожатие битов
+3
void Assembler::divsd(XMMRegister dst, Address src) {
NOT_LP64(assert(VM_Version::supports_sse2(), ""));
InstructionMark im(this);
simd_prefix(dst, dst, src, VEX_SIMD_F2);
emit_byte(0x5E);
emit_operand(dst, src);
}
void Assembler::divsd(XMMRegister dst, XMMRegister src) {
NOT_LP64(assert(VM_Version::supports_sse2(), ""));
int encode = simd_prefix_and_encode(dst, dst, src, VEX_SIMD_F2);
emit_byte(0x5E);
emit_byte(0xC0 | encode);
}
void Assembler::divss(XMMRegister dst, Address src) {
NOT_LP64(assert(VM_Version::supports_sse(), ""));
InstructionMark im(this);
simd_prefix(dst, dst, src, VEX_SIMD_F3);
emit_byte(0x5E);
emit_operand(dst, src);
}
void Assembler::divss(XMMRegister dst, XMMRegister src) {
NOT_LP64(assert(VM_Version::supports_sse(), ""));
int encode = simd_prefix_and_encode(dst, dst, src, VEX_SIMD_F3);
emit_byte(0x5E);
emit_byte(0xC0 | encode);
}
void Assembler::emms() {
NOT_LP64(assert(VM_Version::supports_mmx(), ""));
emit_byte(0x0F);
emit_byte(0x77);
}
void Assembler::hlt() {
emit_byte(0xF4);
}
void Assembler::idivl(Register src) {
int encode = prefix_and_encode(src->encoding());
emit_byte(0xF7);
emit_byte(0xF8 | encode);
}
https://github.com/openjdk-mirror/jdk7u-hotspot/blob/50bdefc3afe944ca74c3093e7448d6b889cd20d1/src/cpu/x86/vm/assembler_x86.cpp
+3
// https://github.com/julycoding/The-Art-Of-Programming-By-July/blob/master/ebook/code/c/1.1%EF%BC%9A%E5%B7%A6%E6%97%8B%E8%BD%AC%E5%AD%97%E7%AC%A6%E4%B8%B2.c
#include <stdio.h>
#include <string.h>
//字符串旋转问题,例如abcdef 左旋2位 变成 cdefab
//暴力移位法
void leftShift1(char * arr, int n)
{
size_t tmpLen = strlen(arr);
char tmpChar;
int i, j;
if (n >= 0)
{
for (i = 0; i < n; i++)
{
tmpChar = *arr;
for (j = 0; j < tmpLen - 1; j++)
{
*(arr + j) = *(arr + j + 1);
}
*(arr + tmpLen - 1) = tmpChar;
}
}
else
{
for (i = 0; i < -n; i++)
{
tmpChar = *(arr + tmpLen - 1);
for (j = tmpLen - 1; j > 0; j--)
{
*(arr + j) = *(arr + j - 1);
}
*arr = tmpChar;
}
}
}
Копаясь в гитхабе, нашел я тут The Art Of Programming By July, написанный каким-то китайцем.
https://github.com/julycoding/The-Art-Of-Programming-By-July
+1
static inline void set0b (const uint8_t at, uint64_t bm[static 4])
{
bm[at / 64] &= ~(1ULL << (at % 64));
}
static inline void set1b (const uint8_t at, uint64_t bm[static 4])
{
bm[at / 64] |= 1ULL << (at % 64);
}
static inline void inv_b (const uint8_t at, uint64_t bm[static 4])
{
bm[at / 64] ^= 1ULL << (at % 64);
}
static inline uint8_t find_empt_pos (const uint64_t bm[static 4])
{
if (bm[0] != UINT64_MAX)
{
return __builtin_ctzll(~bm[0]) + 64 * 0; // __builtin_ctzll - https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html
}
if (bm[1] != UINT64_MAX)
{
return __builtin_ctzll(~bm[1]) + 64 * 1;
}
if (bm[2] != UINT64_MAX)
{
return __builtin_ctzll(~bm[2]) + 64 * 2;
}
if (bm[3] != UINT64_MAX)
{
return __builtin_ctzll(~bm[3]) + 64 * 3;
}
fprintf(stderr, "ERROR! No empty space!\n");
exit (-1);
}
static inline uint8_t allocate_ll (uint64_t bm[static 4])
{
uint8_t tmp = find_empt_pos (bm);
set1b (tmp, bm);
return tmp;
}
static inline void inject(const uint8_t prev_p, const uint8_t next_p, const uint8_t at, struct ll_data a[static 256])
{
a[next_p].ll.prev = at;
a[prev_p].ll.next = at;
a[at].ll.prev = prev_p;
a[at].ll.next = next_p;
}
static inline void remove_betw(const uint8_t prev_p, const uint8_t next_p, struct ll_data a[static 256])
{
a[prev_p].ll.next = next_p;
a[next_p].ll.prev = prev_p;
}
static inline void remove_at(const uint8_t at, struct ll_data a[static 256], uint64_t bm[static 4])
{
uint8_t prev_t = a[at].ll.prev;
uint8_t next_t = a[at].ll.next;
set0b (at, bm);
a[at].ll.prev = next_t;
a[at].ll.next = prev_t;
}
void add_elem_next (struct ll_all *a, const uint8_t elm, const int value)
{
uint8_t pos = allocate_ll (a->bm);
inject(elm, a->arr[elm].ll.next, pos, a->arr);
set_elm (pos, value, a->arr);
}
void add_elem_prev (struct ll_all *a, const uint8_t elm, const int value)
{
uint8_t pos = allocate_ll (a->bm);
inject(a->arr[elm].ll.prev, elm, pos, a->arr);
a->arr[pos].data = value;
}
void rem_elem_next (struct ll_all *a, const uint8_t elm)
{
set0b (a->arr[elm].ll.next, a->bm);
remove_betw (elm, a->arr[a->arr[elm].ll.next].ll.next, a->arr);
}
void rem_elem_prev (struct ll_all *a, const uint8_t elm)
{
set0b (a->arr[elm].ll.next, a->bm);
remove_betw (a->arr[a->arr[elm].ll.prev].ll.prev, elm, a->arr);
}
Тру-царская неанскилльная реализация двусвязного списка внутри массива.
К сожалению, весь код не помещается, см https://wandbox.org/permlink/Ky8fnuqyE0Ahxftm