- 1
Как дела в 2019 году?Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−3
Как дела в 2019 году?Экшскрипт сгнил.
−103
Остались ли среди созидателей Ынтерпрайзного гуано не познавшие вкус хуйца своего шефа?Cолгите ещё один раз. Обманите себя, сказав что Ваш рот девственен.
0
https://habr.com/post/431534/
Проблемные личности среди разработчиков
+1
// HooksList.h
#define PPCAT_NX(A, B) A ## B
#define PPCAT(A, B) PPCAT_NX(A, B)
#ifdef HOOKS_DEFS
    using namespace NtStructs;
    #define API_HOOK_DEF(module_name, hook_name, return_type, enabled, ...) \
        typedef return_type(WINAPI *PPCAT(hook_name, _ptr))(__VA_ARGS__); \
        return_type WINAPI PPCAT(hook_name, _hook)(__VA_ARGS__); \
        extern PPCAT(hook_name, _ptr) PPCAT(hook_name, _orig);
#elif defined(HOOKS_LIST)
    #define API_HOOK_DEF(module_name, hook_name, return_type, enabled, ...) \
        {module_name, #hook_name, (LPVOID)PPCAT(hook_name, _hook), (LPVOID*)&PPCAT(hook_name, _orig), enabled},
#elif defined(HOOKS_TYPES_DEF)
    using namespace NtStructs;
    #define API_HOOK_DEF(module_name, hook_name, return_type, enabled, ...) \
        typedef return_type(WINAPI *PPCAT(hook_name, _ptr))(__VA_ARGS__); \
        return_type WINAPI PPCAT(hook_name, _hook)(__VA_ARGS__);
#elif defined(ORIGINAL_FUNCTIONS_TABLE_DEF)
    #define API_HOOK_DEF(module_name, hook_name, return_type, enabled, ...) \
        PPCAT(hook_name, _ptr) hook_name;
#elif defined(ORIGINAL_FUNCTIONS_TABLE_FILL)
    #define API_HOOK_DEF(module_name, hook_name, return_type, enabled, ...) \
        (ORIGINAL_FUNCTIONS_TABLE_NAME).hook_name = PPCAT(hook_name, _orig);
#else
    #define API_HOOK_DEF(...)
#endif
// NtCreateFile
API_HOOK_DEF(L"ntdll", NtCreateFile, NTSTATUS, true,
             PHANDLE            FileHandle,
             ACCESS_MASK        DesiredAccess,
             POBJECT_ATTRIBUTES ObjectAttributes,
             PIO_STATUS_BLOCK   IoStatusBlock,
             PLARGE_INTEGER     AllocationSize,
             ULONG              FileAttributes,
             ULONG              ShareAccess,
             ULONG              CreateDisposition,
             ULONG              CreateOptions,
             PVOID              EaBuffer,
             ULONG              EaLength)
// NtDeleteFile
API_HOOK_DEF(L"ntdll", NtDeleteFile, NTSTATUS, true,
             POBJECT_ATTRIBUTES ObjectAttributes)
// И так далее
// В .cpp:
static HookEntry hookEntries[] = {
#define HOOKS_LIST
#include "HooksList.h"
#undef HOOKS_LIST
};
// ...
static OriginalFunctions originalFuncsTable;
#define ORIGINAL_FUNCTIONS_TABLE_FILL 1
#define ORIGINAL_FUNCTIONS_TABLE_NAME originalFuncsTable
#include "HooksList.h"
#undef ORIGINAL_FUNCTIONS_TABLE_NAME
#undef ORIGINAL_FUNCTIONS_TABLE_FILLМокросы!..
+3
: ENUM>  ( -- )  ;
: <ENUM ( xt n -- )
   BEGIN
      BEGIN
         >IN @  BL WORD DUP C@ 0=
      WHILE
         2DROP  REFILL 0= IF EXIT THEN
      REPEAT
      FIND SWAP ['] ENUM> = AND IF DROP 2DROP EXIT THEN
      >IN !
      2DUP SWAP EXECUTE
      1+
   AGAIN
;
WORDLIST CONSTANT ASSEMBLER
GET-ORDER ASSEMBLER SWAP 1+ SET-ORDER  DEFINITIONS
HEX
VARIABLE 'BYTES
: B,  ( c -- )  C,  1 'BYTES @ +! ;
: W,  ( u -- )  DUP B,  8 RSHIFT B, ;
: DB"  ( "ccc<quote>" -- c-addr u )
   [CHAR] " PARSE SWAP OVER HERE >R HERE SWAP DUP ALLOT CMOVE
   R> SWAP DUP 'BYTES @ +!
;
: W!  ( u addr -- )  2DUP C!  SWAP 8 RSHIFT SWAP 1+ C! ;
' CONSTANT 0 <ENUM  AX CX DX BX SP BP SI DI  ENUM>
' CONSTANT 0 <ENUM  AL CL DL BL AH CH DH BH  ENUM>
: MEM  ( u "<spaces>name" -- )  DUP 18 AND 3 RSHIFT >R 7 AND R> 2CONSTANT ;
' MEM 0 <ENUM
   [BX+SI]   [BX+DI]   [BP+SI]   [BP+DI]   [SI]   [DI]   [W]      [BX]
   [BX+SI]+B [BX+DI]+B [BP+SI]+B [BP+DI]+B [SI]+B [DI]+B [BP]+B   [BX]+B
   [BX+SI]+W [BX+DI]+W [BP+SI]+W [BP+DI]+W [SI]+W [DI]+W [BP]+W   [BX]+W
ENUM>
:NONAME  ( reg1 reg2 -- )  3 LSHIFT OR B, ;
:NONAME  ( reg off u -- )  ROT 3 LSHIFT OR B, W, ;
:NONAME  ( reg off u -- )  ROT 3 LSHIFT OR B, B, ;
:NONAME  ( reg off 6 | reg u -- )
   DUP 6 = IF
      ROT 3 LSHIFT OR B, W,
   ELSE
      SWAP 3 LSHIFT OR B,
   THEN 
;
CREATE MOD , , , ,
3 CONSTANT REG
: -- ( opcode "<spaces>name" -- )  CREATE C,   DOES> C@ B, CELLS MOD + @ EXECUTE ;
' --  0   <ENUM    ADD<B    ADD<W    ADD>B    ADD>W    ENUM>
' --  8   <ENUM    OR<B     OR<W     OR>B     OR>W     ENUM>
' --  10  <ENUM    ADC<B    ADC<W    ADC>B    ADC>W    ENUM>
' --  18  <ENUM    SBB<B    SBB<W    SBB>B    SBB>W    ENUM>
' --  20  <ENUM    AND<B    AND<W    AND>B    AND>W    ENUM>
' --  28  <ENUM    SUB<B    SUB<W    SUB>B    SUB>W    ENUM>
' --  30  <ENUM    XOR<B    XOR<W    XOR>B    XOR>W    ENUM>
' --  38  <ENUM    CMP<B    CMP<W    CMP>B    CMP>W    ENUM>
' --  85  <ENUM    TESTB    TESTW    XCHGB    XCHGW
                   MOV<B    MOV<W    MOV>B    MOV>W    ENUM>
8D -- LEA    0C4 -- LES    0C5 -- LDS
: -- ( opcode "<spaces>name" -- )  CREATE C,   DOES> C@ B, B, ;
4  -- AL-ADD     0C  -- AL-OR    14  -- AL-ADC   1C  -- AL-SBB
24 -- AL-AND     2C  -- AL-SUB   34  -- AL-XOR   3C  -- AL-CMP
6B -- PUSHB      0A8 -- AL-TEST  0CD -- INT      0EB -- JMP-SHORT
' --  70  <ENUM  JO JNO JB JAE JZ JNZ JBE JA JS JNS JP JNP  ENUM>
' --  0B0 <ENUM    AL-MOV    CL-MOV    DL-MOV    BL-MOV
                   AH-MOV    CH-MOV    DH-MOV    BH-MOV    ENUM>
' --  0E0 <ENUM    LOOPNZ    LOOPZ     LOOP      JCXZ
                   INB       INW       OUTB      OUTW      ENUM>
: -- ( opcode "<spaces>name" -- )  CREATE C,   DOES> C@ B, W, ;
5   -- AX-ADD    0D  -- AX-OR     15  -- AX-ADC    1D  -- AX-SBB
25  -- AX-AND    2D  -- AX-SUB    35  -- AX-XOR    3D  -- AX-CMP
68  -- PUSHW     0A0 -- MEM>AL    0A1 -- MEM>AX    0A2 -- AL>MEM
0A3 -- AX>MEM    0A9 -- AX-TEST   0C2 -- RETW      0CA -- RETW-FAR
0E8 -- CALL      0E9 -- JMP
' --  0B8  <ENUM    AX-MOV    CX-MOV    DX-MOV   BX-MOV
                    SP-MOV    BP-MOV    SI-MOV   DI-MOV    ENUM>
: -- ( opcode "<spaces>name" -- )  CREATE C,   DOES> C@ B, ;
6   -- ES-PUSH             7   -- ES-POP    0E -- CS-PUSH    16 -- SS-PUSH
17  -- SS-POP              1E  -- DS-PUSH   1F  -- DS-POP     26 -- ES:
26  -- DAA                 2E  -- CS:       2F  -- DAS        36 -- SS:
37  -- AAA                 3E  -- DS:       3F  -- AAS        60 -- PUSHA
61  -- POPA                64  -- FS:       65  -- GS:        66 -- CHANGE-OP-SIZE
67  -- CHANGE-ADDR-SIZE    0C3 -- RET       0C9 -- LEAVE      0CB -- RET-FAR
0CC -- INT3                0CE -- INTO      0CF -- IRET       0F0 -- LOCK
' --  40  <ENUM    AX-INC  CX-INC  DX-INC  BX-INC  SP-INC  BP-INC  SI-INC  DI-INC
                   AX-DEC  CX-DEC  DX-DEC  BX-DEC  SP-DEC  BP-DEC  SI-DEC  DI-DEC
                   AX-PUSH CX-PUSH DX-PUSH BX-PUSH SP-PUSH BP-PUSH SI-PUSH DI-PUSH
                   AX-POP  CX-POP  DX-POP  BX-POP  SP-POP  BP-POP  SI-POP  DI-POP
ENUM>
' --  6C  <ENUM    INSB          INSW          OUTSB         OUTSW         ENUM>
' --  80  <ENUM    NOP           CX-AX-XCHG    DX-AX-XCHG    BX-AX-XCHG
                   SP-AX-XCHG    BP-AX-XCHG    SI-AX-XCHG    DI-AX-XCHG
                   CBW           CWD                                       ENUM>
' --  9B  <ENUM    WAIT      PUSHF     POPF       SAHF       LAHF          ENUM>
' --  0A4 <ENUM    MOVSB     MOVSW     CMPSB      CMPSW                    ENUM>
' --  0AA <ENUM    STOSB     STOSW     LODSB      LODSW      SCASB  SCASW  ENUM>
' --  0D4 <ENUM    AAM       AAD       SALC       XLAT                     ENUM>
' --  0EC <ENUM    DX-AL-IN  DX-AX-IN  AL-DX-OUT  AX-DX-OUT                ENUM>
' --  0F2 <ENUM    REPNZ     REPZ      HLT        CMC                      ENUM>
' --  0F8 <ENUM    CLC       STC       CLI        STI        CLD    STD    ENUM>
            Я вчера упоролся подумал, хуля я как лох пешу форт на асме, ТруЪ фротеры пишут форт на ыорте. И начал я с этого —– я представляю вам единственный и неповторимый говно-фрот-асамблец за авторством моего меня.
Примерим:
VARIABLE BYTES
BYTES 'BYTES !
CREATE PROG
9     AH-MOV
0     DX-MOV  HERE 2 -
21    INT
4C00  AX-MOV
21    INT
DB" Hello, Forth-ASSembler!$" DROP PROG - 100 + SWAP W!
PROG BYTES @ DUMP0
// https://dev.to/saigowthamr/how-to-reverse-a-string-in-javascript-3i9c
// In this tutorial, we are going to learn three different ways to reverse a string
// in JavaScript by using the reverse method, reduce method.
// First way
const str = "hello"
str.split('').reverse().join('')
//"olleh"
// We used split method to split the string into an array of individual strings then chain it to reverse method.
// Second way
const str = "hello"
[...str].reduce((prev,next)=>next+prev)
//"olleh"
// First, we spread the string using spread operator and reverse the string using the reduce method
// Third way
function reverseString(str){
  const arr = [...str]
  let reverse= "";
  while(arr.length){
     reverse = reverse + arr.pop()
  }
  return reverse
}
// I mostly like the Second way to reverse a string using reduce method.
// Happy coding...Это видимо такой вид соревнований, типа как вкрутить лампочку в патрон наиболее упоротым и неочевидным способом. Нахрена это нужно обычному программисту? Может это такой способ ручной обфускации? Тогда понятно
+1
#include <stdio.h>
#include <inttypes.h>
#include <string.h>
typedef struct
{
  uint8_t arr[10];
  uint8_t pos;
  uint8_t is_swap;
} arr10;
arr10 bubble_sort_recursion(arr10 a);
void bubble_sort (uint8_t arr[static 10]);
void bubble_sort (uint8_t arr[static 10])
{
  arr10 a;
  memcpy(a.arr, arr, sizeof(a.arr));
  a.pos = 0;
  a.is_swap = 0;
  a = bubble_sort_recursion(a);
  memcpy(arr, a.arr, sizeof(a.arr));
}
arr10 bubble_sort_recursion(arr10 a)
{
  if (a.pos != 9)
  {
    if (a.arr[a.pos] > a.arr[a.pos + 1])
    {
      uint8_t tmp = a.arr[a.pos + 1];
      a.arr[a.pos + 1] = a.arr[a.pos];
      a.arr[a.pos] = tmp;
      a.is_swap = 1;
    }
    a.pos++;
    return bubble_sort_recursion(a);
  }
  else
  {
   if (a.is_swap == 0)
   {
     return a;
   }
   else
   {
     a.pos = 0;
     a.is_swap = 0;
     return bubble_sort_recursion(a);
   }
  }
}
int main(void)
{
  uint8_t arr[10] = {244, 90, 254, 109, 33, 85, 69, 81, 126, 71};
  bubble_sort(arr);
  printf("%" PRIu8 ", %" PRIu8 ", %" PRIu8 ", %" PRIu8 ", %" PRIu8 ", %" PRIu8 ", %" PRIu8 ", %" PRIu8 ", %" PRIu8 ", %" PRIu8,
         arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7], arr[8], arr[9]);
  return 0;
}Рекурсивная сортировка пузырьком
−4
<j123123__> Ну лол, я 29-летний бородатый чел из Харькова который живет с мамкой, пишет прошивки под микроконтроллеры STM32
<j123123__> Я не мобилизован потому что например дважды в психбольнице лежал, лол
<j123123__> Ну диагноз тама не говорят, вроде шизо-какое-то расстройство
<j123123__> А вот представь вот в пледик укрыться с кунчиком и на сишечке прогатьУзнаем j123123 с новой стороны.
−6
Давайте хвалить "NodeJS".
−1
$type = ($_POST['type'] == 'any') ? '' : str_replace(' ', '%20', str_replace('|','%7C', $_POST['type']));
$make = ($_POST['make'] == 'any') ? '' : str_replace(' ', '%20', str_replace('|','%7C', $_POST['make']));
$url = 'http://www.cycletrader.com/search-results?sort=featured%3Aasc&page='.$_POST['page'].'&type='.$type.'&make='.$make;
$str = getCurlObject($url);
$content = multiexplode('<div id="searchPage"', '<div class="footer', $str);
$list = multiexplode('<div id="gridView"', '<div class="rezDetailsBtm', $content);
$field = explode('<div data-url=', $list);
for ($k = 1; $k < count($field); $k++) {
    $title_tmp = multiexplode('<a class="listing-info-title', '</a>', $field[$k]);
    $title = multiexplode('title="', '"', $title_tmp);
    $link = $lang['dir'].'detail?'.$_POST['form'].'&'.multiexplode('href="', '"', $title_tmp);
    $img_tmp = multiexplode('<img', '/>', $field[$k]);
    $img = multiexplode('data-src="', '"', $img_tmp);
    $price_tmp = multiexplode('class="price', '</span>', $field[$k]);
    if (strripos($price_tmp,'<span class="mileage">')) {
        $price = multiexplode('<span>', '<span', $price_tmp);
    } else {
        $price = multiexplode('<span>', '</span>', $price_tmp);
    }
    if (trim($price) == 'Call for price') $price = '';
    $result['item'][$k]['link'] = $link;
    $result['item'][$k]['title'] = $title;
    $result['item'][$k]['img'] = $img;
    $result['item'][$k]['price'] = $price;
    $result['item'][$k]['location'] = $location;
}
if (strripos($content,'<div class="pagination')) {
    $pagination = multiexplode('<div class="pagination', '</div>', $content);
    $pagination_tmp = multiexplode('<span class="hidden-xs','</div>', $pagination);
    $pagination_item = explode('<li', $pagination);
    if (count($pagination_item) > 6) {
        $result['pagination'] = true;
    }
}Стандартный похокод пыходибила.