- 1
https://medium.com/@evnowandforever/f-you-i-quit-hiring-is-broken-bb8f3a48d324
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
https://medium.com/@evnowandforever/f-you-i-quit-hiring-is-broken-bb8f3a48d324
tl;tr:
Чувак говорит что его заебали интервьюеры которые просят на доске перевернуть бинарное дерево.
Он считает что надо давать практические задачи, пускай даже и на дом. Если для решения практической задачи ему понадобится перевернуть бинарное дерево -- он почитает статью и напишет алгоритм.
А интервьюеры сначала хотят дерево, а потом ноют.
+1
if ($_REQUEST['hash']==md5('2445355'.$uid.'__SECRET_KEY__')) {
//доверяем вконтактику, и далее полагаем, что пользователь действительно авторизован там
//для учетных записей пользователей я решил выделить логины вида vk-********
$result = mysql_query("SELECT id, random, password FROM tracker_users WHERE username = 'vk-$uid'");
setcookie('uid','');
setcookie('pass','');
if (mysql_num_rows($result)) {
//пользователь авторизован, просто пересоздадим куки
$user = mysql_fetch_assoc($result);
mysql_query("UPDATE tracker_users SET name = '$name' WHERE username = 'vk-$uid' LIMIT 1");
setcookie('pass',md5($user['random'].$user['password'].$user['random']));
setcookie('uid',$user['id']);
} else {
//добавим запись в таблицу пользователей
$random = mt_rand(100000,999999);
$pwd = $uid . 'verysecretlonglongword-';
$pid=md5(uniqid(rand(),true));
mysql_query("INSERT INTO tracker_users
(username, name, password, random, id_level, email, style, language, flag, joined, lastconnect, pid, time_offset) VALUES
('vk-$uid', '$name', '" . md5($pwd) . "', $random, 3, '', 5, 7, 0, NOW(), NOW(),'$pid', '0')");
//вставили строчку, теперь создадим куки и перебросим на другую страницу
setcookie('pass',md5($random.md5($pwd).$random));
setcookie('uid',mysql_insert_id());
}
header("Location: /index.php");
}
https://habr.com/ru/post/126717/
−2
https://github.com/pustladi/MS-DOS-v.1.1
давайте обсуждать сырцуы доса
+1
https://github.com/pustladi/Windows-2000
давайте обсуждать срцы винд
0
// https://patents.google.com/patent/US20160357533A1/en
// Generating code in statically typed programming languages for dynamically typed array-based language
/*
Example 2
The cell array is classified as heterogeneous and translated into a C structure. Source code includes the following array, which is classified as belonging to a heterogeneous class.
x = {‘add’, d1, ‘multiply’, d2, ‘add’, 1, ‘add’, 1};
...
function y = process (x)
...
y = 0;
for i = 1:2:numel(x)
if ~strcmp(x{i}, ‘add’)
y = y + x{i+ 1};
elseif ~strcmp(x{i}, ‘multiply’)
y = y * x{i+1};
end
end
end
C code generated in the STPL contains a C structure type that is used for the variable “x”:
*/
typedef struct {
char f1[3];
double f2;
char f3[8];
double f4;
char f5[3];
double f6;
char f7[3];
double f8;
} cell_0;
static double process(const cell_0 x)
{
...
}
Сраные софтерные патенты. Блядь, вдумайтесь в эту хуйню. Вам дан динамически-типизированный язык, вот типа есть такой "массив" в котором элементы могут быть произвольной поеботой, например строками, флоатами. Как нам это оттранслировать? Да запросто, вот допустим есть такое говно: x = {‘add’, d1, ‘multiply’, d2, ‘add’, 1, ‘add’, 1}; - хуйнуть структуру надо
typedef struct {
char f1[3]; // тут сука 3 буквы потому что слово "add" из трех букв
double f2;
char f3[8]; // тут сука 8 букв потому что слово "multiply" из 8 букв
double f4;
char f5[3]; // тут сука 3 буквы потому что слово "add" из трех букв
double f6;
char f7[3]; // тут сука 3 буквы потому что слово "add" из трех букв
double f8;
} cell_0;
А нахуй? Ну т.е. вот потом там будет сгенерен в сишке код, который будет через memcmp проверять этот char f1[3] что там "add", и потом будет еще код, который проверит что char f3[8] это "multiply", да? Ну т.е. у вас структура специализирована под конкретную поебень x = {‘add’, d1, ‘multiply’, d2, ‘add’, 1, ‘add’, 1}; и там блядь и так понятно, что вот там будет add, там будет multiply, и что вот такое количество элементов, это ясно из самого определения структуры, нахуй это говно вообще? И это говно еще запатентовали
0
if (memory[i] == CRG && memory[i + 1] == STDI) {
fprintf(code, "%d %d ", CRG, STDI);
i++;
}
else if (memory[i] == CRC && memory[i + 1] == STDI) {
fprintf(code, "%d %d ", CRC, STDI);
i++;
}
else if (memory[i] == PRG && memory[i + 1] == STDI) {
fprintf(code, "%d %d ", PRG, STDI);
i++;
}
else if (memory[i] == PRC && memory[i + 1] == STDI) {
fprintf(code, "%d %d ", PRC, STDI);
i++;
}
h: post/442988 / https://github.com/Centrix14/TVM/blob/master/TVM/ngl.c
На статье стоит меточка «Tutorial».
−1
// Microsoft открыла код Калькулятора Windows
// https://github.com/Microsoft/calculator/blob/057401f5f2b4bb1ea143da02c773ac18d1bb9a2e/src/CalcViewModel/Common/CalculatorButtonUser.h#L8
namespace CalculatorApp
{
namespace CM = CalculationManager;
public enum class NumbersAndOperatorsEnum
{
Zero = (int) CM::Command::Command0,
One = (int) CM::Command::Command1,
Two = (int) CM::Command::Command2,
Three = (int) CM::Command::Command3,
Four = (int) CM::Command::Command4,
Five = (int) CM::Command::Command5,
Six = (int) CM::Command::Command6,
Seven = (int) CM::Command::Command7,
Eight = (int) CM::Command::Command8,
Nine = (int) CM::Command::Command9,
Add = (int) CM::Command::CommandADD,
Subtract = (int) CM::Command::CommandSUB,
Multiply = (int) CM::Command::CommandMUL,
Divide = (int) CM::Command::CommandDIV,
Invert = (int) CM::Command::CommandREC,
Equals = (int) CM::Command::CommandEQU,
Decimal = (int) CM::Command::CommandPNT,
Sqrt = (int) CM::Command::CommandSQRT,
Percent = (int) CM::Command::CommandPERCENT,
Negate = (int) CM::Command::CommandSIGN,
Backspace = (int) CM::Command::CommandBACK,
ClearEntry = (int) CM::Command::CommandCENTR,
Clear = (int) CM::Command::CommandCLEAR,
Degree = (int) CM::Command::CommandDEG,
Radians = (int) CM::Command::CommandRAD,
Grads = (int) CM::Command::CommandGRAD,
Degrees = (int) CM::Command::CommandDegrees,
OpenParenthesis = (int) CM::Command::CommandOPENP,
CloseParenthesis = (int) CM::Command::CommandCLOSEP,
Pi = (int) CM::Command::CommandPI,
Sin = (int) CM::Command::CommandSIN,
Cos = (int) CM::Command::CommandCOS,
Tan = (int) CM::Command::CommandTAN,
Factorial = (int) CM::Command::CommandFAC,
XPower2 = (int) CM::Command::CommandSQR,
Mod = (int) CM::Command::CommandMOD,
FToE = (int) CM::Command::CommandFE,
LogBaseE = (int) CM::Command::CommandLN,
InvSin = (int) CM::Command::CommandASIN,
InvCos = (int) CM::Command::CommandACOS,
InvTan = (int) CM::Command::CommandATAN,
LogBase10 = (int) CM::Command::CommandLOG,
XPowerY = (int) CM::Command::CommandPWR,
YRootX = (int) CM::Command::CommandROOT,
TenPowerX = (int) CM::Command::CommandPOW10,
EPowerX = (int) CM::Command::CommandPOWE,
Exp = (int) CM::Command::CommandEXP,
IsScientificMode = (int) CM::Command::ModeScientific,
IsStandardMode = (int) CM::Command::ModeBasic,
None = (int) CM::Command::CommandNULL,
IsProgrammerMode = (int) CM::Command::ModeProgrammer,
DecButton = (int) CM::Command::CommandDec,
OctButton = (int) CM::Command::CommandOct,
HexButton = (int) CM::Command::CommandHex,
BinButton = (int) CM::Command::CommandBin,
And = (int) CM::Command::CommandAnd,
Ror = (int) CM::Command::CommandROR,
Rol = (int) CM::Command::CommandROL,
Or = (int) CM::Command::CommandOR,
Lsh = (int) CM::Command::CommandLSHF,
Rsh = (int) CM::Command::CommandRSHF,
Xor = (int) CM::Command::CommandXor,
Not = (int) CM::Command::CommandNot,
A = (int) CM::Command::CommandA,
B = (int) CM::Command::CommandB,
C = (int) CM::Command::CommandC,
D = (int) CM::Command::CommandD,
E = (int) CM::Command::CommandE,
F = (int) CM::Command::CommandF,
Memory, // This is the memory button. Doesn't have a direct mapping to the CalcEngine.
Sinh = (int) CM::Command::CommandSINH,
Cosh = (int) CM::Command::CommandCOSH,
Tanh = (int) CM::Command::CommandTANH,
InvSinh = (int) CM::Command::CommandASINH,
InvCosh = (int) CM::Command::CommandACOSH,
InvTanh = (int) CM::Command::CommandATANH,
Qword = (int) CM::Command::CommandQword,
Dword = (int) CM::Command::CommandDword,
Word = (int) CM::Command::CommandWord,
Byte = (int) CM::Command::CommandByte,
Cube = (int) CM::Command::CommandCUB,
DMS = (int) CM::Command::CommandDMS,
BINSTART = (int) CM::Command::CommandBINEDITSTART,
BINPOS0 = (int) CM::Command::CommandBINPOS0,
BINPOS1 = (int) CM::Command::CommandBINPOS1,
BINPOS2 = (int) CM::Command::CommandBINPOS2,
BINPOS3 = (int) CM::Command::CommandBINPOS3,
BINPOS4 = (int) CM::Command::CommandBINPOS4,
BINPOS5 = (int) CM::Command::CommandBINPOS5,
Интересно, а эту херню кодогенерировали? Или это всё ручной труд?
−2
Электрика / электроника #1
+1
ДеФфЧоНаЧкИ с ПрАзДнИчКоМ вАс!
Всем джвумерным, трёхмерным и прочим N-мерным няшкам с клювом и без шлю чмоки-чмоки!
+3
MSDN: To obtain the full version number for the operating system, call the GetFileVersionInfo function on one of the system DLLs, such as Kernel32.dll
В Windows функции вроде GetVersion задепрекейтили (и остальные более новые функции из SDK) и теперь они всегда возвращают "Windows 8" в том числе на десятке, если приложения не манифестить или ещё чего (а манифестить не всегда возможно, если допустим, разрабатывается плагин под другой софт). В итоге в API куча непонятных правил и разных ЕСЛИ, и нет уверенности в том, реальную ли версию Винды нам возвращает функция, или это опять какой-то shim.
С появлением rapid release cycle в Windows и автоапдейтов появляется проблема: новые апдейты постоянно ломают ранее рабочий софт. Для этого нужно делать workaround'ы: смотреть какой там у нас билд (1803? 1809?) и включать нужный костыль. Видимо, самим в Microsoft это надоело, что они на полном серьёзе предлагают смотреть file version у каких-нибудь системных файлов в системной папке, чтобы узнать версию ОС наверняка. Официальный говнокод от Майкрософт.