1. PHP / Говнокод #24685

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    /**
     * Class Iin
     * @package App\Classes\Support
     *
     * Класс проверки иин для казахстана
     *
     * ИИН содержит 12 цифр из которых
     * первые 6 цифр - дата рождения [гг-мм-дд]
     * 7-я цифра - пол и век (нечетные цифры - муж, четные женский)
     *      1,2 - 19 век
     *      3,4 - 20 век
     *      5,6 - 21 век
     *      7,8,9,0 - зарезирвированны на будущее
     * 8 - 11 регистрационный гос номер
     * и 12 - контрольный разряд
     *
     * Иин проверяесться по контрольной сумме через две последовательности
     * Сперва каждая цифра иин, кроме последней умножается на цифру из 1-й последовательности и суммируется
     * Результат делиться на 11 и если он от 0 до 9 и соотвествует 12-й цифре иин то иин верен,
     * если результат 0 - иин не верен, если результат 10 - то проверка продолжается по второй последовательности
     * Если результат проверки по всторой последовательности от 1 до 9 и равен 12-й цифре иин - то иин верен иначе проверка
     * заканчивается и иин не верный.
     *
     * UPD - Хьюстон у нас проблемы - некоторые безответственные работники цонов делают неверные иин с 7,8 и 9 цифрой для 22 и 23 века.
     * В итоге люди для системы как из 23 века а сами из 21 или 20 - так что пока не настал 22 и 23 век их разряды будут для 20 века.
     * Не люблю костыли но работники цонов такие работники - а менеджеры и клиенты недовольны, так что придеться
     *

    https://habr.com/company/ua-hosting/blog/420091/

    guestinxo, 29 Августа 2018

    Комментарии (1)
  2. Куча / Говнокод #24684

    +3

    1. 1
    Почему Application стал так часто падать???

    А ещё csrf eггог-и nocTo9lHHo

    kir_rik, 29 Августа 2018

    Комментарии (38)
  3. Python / Говнокод #24683

    −2

    1. 1
    2. 2
    3. 3
    4. 4
    def spam(low, up):
        for eggs in range(low, up+1):
            if str(eggs) in str(eggs**2):
                print(str(eggs) + " is in " + str(eggs**2) + ".")

    Проверяет, есть ли стринг числа n в стринге числа n**2.

    shite, 29 Августа 2018

    Комментарии (12)
  4. Си / Говнокод #24681

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    Ну и полный пример:
    
    #include "stdafx.h"
    #include "windows.h"
    #include "iostream.h"
    #include "process.h"			// специально для потока
    
    void  fThredFunct1(void* pv);		// декларация функции потока
    __declspec(thread) DWORD dwTlsIndex;		// локальная статическая функция для потока
    
    void main()
    {
    
    	ULONG hThread1 = 0;		// Идентификатор потока 1
    	ULONG hThread2 = 0;		// Идентификатор потока 2
    	//unsigned long _beginthread( void( __cdecl *start_address )( void * ),
    	//			unsigned stack_size, void *arglist );
    	hThread1 = _beginthread(fThredFunct1,0,NULL);	// создали первый поток
    	if (hThread1==-1)
    		cout << "Error create thread" << endl; 
    	hThread2 = _beginthread(fThredFunct1,0,NULL);	// создали второй поток
    	if (hThread1==-2)
    		cout << "Error create thread" << endl; 
    	Sleep(2000);				// ждем 
    }
    
    void fThredFunct1(void* pv)			// реализация функции потока
    {
    	dwTlsIndex=TlsAlloc();		// Запросить индекс
    	if (dwTlsIndex==-1)		// проверить на ошибку
    	{
    		cout << "Error TlsAlloc " << endl;
    		return;
    	}
    	cout << dwTlsIndex << endl;
    	Sleep(1000);
    
    	if ( TlsFree( dwTlsIndex)==0 )	// освободить индекс
    	{
    		cout << "Error TlsFree" << endl;
    		return;
    	}
    }

    Многопоточное говно
    Гуглояндексится.

    kir_rik, 29 Августа 2018

    Комментарии (30)
  5. C++ / Говнокод #24680

    +3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    #include <set>
    #include <algorithm>
    
    bool overlap(const std::set<int>& s1, const std::set<int>& s2)
    {
        for( const auto& i : s1) {
            if(std::binary_search(s2.begin(), s2.end(), i))
                return true;
        }
        return false;
    }

    я зделял

    https://stackoverflow.com/a/29421606/1683138
    -- https://en.cppreference.com/w/cpp/container/set
    iterator Constant BidirectionalIterator

    roman-kashitsyn, 28 Августа 2018

    Комментарии (69)
  6. Java / Говнокод #24679

    −2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    public void pullToDirection(ForgeDirection dir) {
    		if (!canPullToDirection(dir))
    			return;
    		if (parentChunk.world.world.get().getBlockId(pipePosition.x + dir.offsetX, pipePosition.y + dir.offsetY,
    				pipePosition.z + dir.offsetZ) == AquaPipes.pipe.blockID) {
    			TransferPipeItem item = items.iterator().next();
    			if (item.isEmpty()) {
    				items.remove(item);
    				if (items.isEmpty()) {
    					parentChunk.pendingPipeStatesToRemove.add(this);
    					parentChunk.updateDataForAllObservers(this);
    				}
    				return;
    			}
    			items.remove(item);
    			if (items.isEmpty()) {
    				parentChunk.pendingPipeStatesToRemove.add(this);
    				parentChunk.updateDataForAllObservers(this);
    			}
    			parentChunk.world.pushToPipe(pipePosition.x + dir.offsetX, pipePosition.y + dir.offsetY,
    					pipePosition.z + dir.offsetZ, item.getStack());
    			return;
    		} else {
    			TileEntity te = parentChunk.world.world.get().getBlockTileEntity(pipePosition.x + dir.offsetX,
    					pipePosition.y + dir.offsetY, pipePosition.z + dir.offsetZ);
    			if (te != null) {
    				if (te instanceof ISidedInventory) {
    					TransferPipeItem item = items.iterator().next();
    					if (item.isEmpty()) {
    						items.remove(item);
    						if (items.isEmpty()) {
    							parentChunk.pendingPipeStatesToRemove.add(this);
    							parentChunk.updateDataForAllObservers(this);
    						}
    						return;
    					}
    					ISidedInventory inv = (ISidedInventory) te;
    					int[] slots = inv.getAccessibleSlotsFromSide(ForgeDirection.OPPOSITES[dir.ordinal()]);
    					for (int slot : slots) {
    						if (inv.canInsertItem(slot, item.getStack(), ForgeDirection.OPPOSITES[dir.ordinal()])
    								&& inv.isStackValidForSlot(slot, item.getStack())
    								&& (inv.getStackInSlot(slot) == null
    										|| (inv.getStackInSlot(slot).itemID == item.getStack().itemID
    												&& inv.getStackInSlot(slot).getItemDamage() == inv
    														.getStackInSlot(slot)
    														.getItemDamage()
    												&& inv.getStackInSlot(slot).stackSize < inv.getInventoryStackLimit()
    												&& inv.getStackInSlot(slot).stackSize < inv
    														.getStackInSlot(slot)
    														.getMaxStackSize()
    												&& ItemStack.areItemStackTagsEqual(inv.getStackInSlot(slot),
    														item.getStack())))) {
    							item.getStack().stackSize--;
    							inv.getStackInSlot(slot).stackSize++;
    							inv.onInventoryChanged();
    							if (item.isEmpty()) {
    								items.remove(item);
    								if (items.isEmpty()) {
    									parentChunk.pendingPipeStatesToRemove.add(this);
    									parentChunk.updateDataForAllObservers(this);
    								}
    							}
    						}
    					}
    				} else if (te instanceof IInventory) {
    					TransferPipeItem item = items.iterator().next();
    					if (item.isEmpty()) {
    						items.remove(item);
    						if (items.isEmpty()) {
    							parentChunk.pendingPipeStatesToRemove.add(this);
    							parentChunk.updateDataForAllObservers(this);
    						}
    						return;
    					}
    					IInventory inv = (IInventory) te;
    					for(int slot = 0; slot < inv.getSizeInventory(); slot++) {
    						if (inv.isStackValidForSlot(slot, item.getStack())
    								&& (inv.getStackInSlot(slot) == null
    										|| (inv.getStackInSlot(slot).itemID == item.getStack().itemID
    												&& inv.getStackInSlot(slot).getItemDamage() == inv
    														.getStackInSlot(slot)
    														.getItemDamage()
    												&& inv.getStackInSlot(slot).stackSize < inv.getInventoryStackLimit()
    												&& inv.getStackInSlot(slot).stackSize < inv
    														.getStackInSlot(slot)
    														.getMaxStackSize()
    												&& ItemStack.areItemStackTagsEqual(inv.getStackInSlot(slot),
    														item.getStack())))) {
    							item.getStack().stackSize--;
    							inv.getStackInSlot(slot).stackSize++;
    							inv.onInventoryChanged();
    							if (item.isEmpty()) {
    								items.remove(item);
    								if (items.isEmpty()) {
    									parentChunk.pendingPipeStatesToRemove.add(this);
    									parentChunk.updateDataForAllObservers(this);
    								}
    							}
    						}

    на закрывающие скобки не хватило места. код из моего еще не дописанного мода на майнкрафт.

    UsernameAK, 28 Августа 2018

    Комментарии (0)
  7. Python / Говнокод #24676

    −3

    1. 1
    Зачем нужен "z == int(str(z)[::-1])", если есть "int(str(z)[:len(str(z))//2]) == int(str(z)[int((len(str(z))+1)//2):][::-1])"?

    shite, 28 Августа 2018

    Комментарии (7)
  8. Lua / Говнокод #24660

    −2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    return coroutine.create(function(x) 
        while true do
          socket.sleep(1);
          collectgarbage() 
          coroutine.yield() 
        end 
      end)

    Выделил сборщик мусора в отдельный поток, и чтоб он вечно собирал за мной всякую срань, но раз в секунду.
    Ожидание: Поток спит в течении 1 секунды.
    Реальность: Вся программа спит в течении 1 секунды.

    3oJIoTou_xyu, 26 Августа 2018

    Комментарии (41)
  9. Python / Говнокод #24658

    −4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    stack = []
    
    def stdout(x):
        if x == "puts":
            print(stack.pop())
        else:
            raise Exception("иди нахуй")
    
    def stdin(x):
        global stack
        if x == "gets":
            stack.append(input())
        else:
            raise Exception("иди нахуй")
    
    math = {
        "add": lambda: stack.append(float(stack.pop()) + float(stack.pop())),
        "sub": lambda: stack.append((-float(stack.pop())) + float(stack.pop())),
        "mul": lambda: stack.append(float(stack.pop()) * float(stack.pop())),
        "div": lambda: stack.append(1 / float(stack.pop()) * float(stack.pop())),
    }
    
    def stack_commands(x):
        global stack
        if x == "swap":
            stack[-1], stack[-2] = stack[-2:]
        elif x == "drop":
            stack.pop()
        elif x == "dup":
            stack.append(stack[-1])
        else:
            raise Exception("иди нахуй")
    
    string = {
        "concat": lambda: stack.append(str(stack.pop()) + str(stack.pop()))
    }
    
    commands = {
        "comment": lambda x: x,
        "push": lambda x: stack.append(x),
        "stdout": stdout,
        "stdin": stdin,
        "math": lambda x: print(math[x]()),
        "stack": stack_commands,
        "string": lambda x: string[x]()
    }
    
    def do(x):
        if '@' not in x:
            raise Exception(x + " is not email.")
        a, b = x.split('@')
        b = b.split('.')[0]
        commands[b](a)
    
    def eval(s):
        for i in s.lower().split():
            do(i)
    
    eval("""
    [email protected]
    
    [email protected] [email protected]
    [email protected]
    [email protected] [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected] [email protected] [email protected]
    """)

    666_N33D135, 25 Августа 2018

    Комментарии (42)
  10. Си / Говнокод #24655

    −4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    https://docs.microsoft.com/en-us/windows/desktop/api/winsock/nf-winsock-wsaasyncselect
    int WSAAsyncSelect(
      SOCKET s,
      HWND   hWnd,
      u_int  wMsg,
      long   lEvent
    );
    
    /*
    
    hWnd
    
    A handle that identifies the window that will receive a message when a network event occurs.
    */

    Почему виндовые асинхронные (или правильно говорить "небликирующиеся") сокеты так черезжопно сделаны? Нафига им через HWND надо месседжи слать? Что, другого способа нет для оповещений?
    Требовать для работы асинхронных сокетов чтоб какое-то окно было это как требовать зубную щетку для входа в туалет чтоб посрать

    j123123, 24 Августа 2018

    Комментарии (16)