1. Куча / Говнокод #17782

    +130

    1. 1
    List(1,2,3) + "X" == "List(1, 2, 3)X"

    Скала

    laMer007, 13 Марта 2015

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

    +124

    1. 1
    <script src="/js/js.js" type="text/javascript"></script>

    Я так и не понял. Что же интересно может делать файл js.js в папке js? Ума не могу приложить :\

    volter9, 13 Марта 2015

    Комментарии (7)
  3. Куча / Говнокод #17773

    +120

    1. 1
    http://www.businessinsider.com/the-russian-internet-thinks-putin-is-dead-2015-3

    политота

    LispGovno, 13 Марта 2015

    Комментарии (3)
  4. Куча / Говнокод #17747

    +128

    1. 1
    http://james-iry.blogspot.ru/2009/05/brief-incomplete-and-mostly-wrong.html

    просто оставлю здесь это.

    Vasiliy, 08 Марта 2015

    Комментарии (0)
  5. Куча / Говнокод #17743

    +144

    1. 1
    Zaebali v komenty govno pisat !

    vot tak!

    mikamika83, 06 Марта 2015

    Комментарии (5)
  6. Куча / Говнокод #17726

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    ###
    CoffeeScript
    Give a fuck
    ###
    while fuck isnt given
    	do give_a_fuck until orgasm

    mikamika83, 04 Марта 2015

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

    +131

    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
    elseif selectedObj::mouthOnMenuRect then
      if dir == "left" then
        inv = true
        changeMouth()
      elseif dir == "right" then
        inv = false
        changeMouth()
      end
    elseif selectedObj::eyesOnMenuRect then
      if dir == "left" then
        inv = true
        changeEyes()
      elseif dir == "right" then
        inv = false
        changeEyes()
      end
    elseif

    Вступительная заставка к фильму "Добро пожаловать в рай", промелькнуло с десяток таких вот блоков "elseif selectedObj::чтоТоТамOnMenuRect".
    В начале фильма под сеансом видеосвязи с аналоговыми помехами закольцевали фрагмент телефонного справочника на си с полотнами printf.
    Где-то в середине в консольном окошке с заголовком "DATABASE_QUERY" продемонстрировали код функции groups_alloc из ядра linux, а чуть позже - groups_from_user и groups_sort из того же файла.
    Между делом, хакер отличается от других тем, что у него не терминал, а SECURE_TERMINAL, сам он носит ублюдошные очки в толстой оправе, а код в терминале тот же сишный, но красного цвета вместо зеленого.
    Под конец на "главный сервер" заливали виндовый батничек, над которым явно работали больше, чем над сценарием фильма. Нагуглился исходник батничка: http://www.wikihow.com/Make-a-Prank-Virus-(Windows)

    Xom94ok, 01 Марта 2015

    Комментарии (12)
  8. Куча / Говнокод #17688

    +133

    1. 1
    2. 2
    HTTP referer (originally a misspelling of referrer) is an HTTP header field that identifies the address of the webpage
    (i.e. the URI or IRI) that linked to the resource being requested.

    Originally a misspelling of referrer...

    bormand, 24 Февраля 2015

    Комментарии (12)
  9. Куча / Говнокод #17677

    +132

    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
    @echo off
    setlocal EnableDelayedExpansion
    setlocal EnableExtensions
    
    set /a _2=20
    set /a _1=600
    set /a _0=800
    call :mandelbrot _3 0 _0 _1 _2
    echo | set /p ^=!_3!
    
    goto :EOF
    :mandelbrot
    set width_%~2=!%~3!
    set height_%~2=!%~4!
    set max_%~2=!%~5!
    set /a row_%~2=0
    :WHILE_6
    if !row_%~2! LSS !height_%~2! (
      set /a col=0
      :WHILE_5
      if !col! LSS !width_%~2! (
        set /a c_re=^(^(^(!col! - ^(!width_%~2! / 2^)^) * 4^) / !width_%~2!^)
        set /a c_im=^(^(^(!row_%~2! - ^(!height_%~2! / 2^)^) * 4^) / !width_%~2!^)
        set /a x=0
        set /a y=0
        set /a iteration=0
        set /a _9_%~2=0
        if !iteration! LSS !max_%~2! (
          set /a _8_%~2=1
        ) else (
          set /a _8_%~2=0
        )
        set /a _18_%~2=^(1 + %~2^)
        call :or _19_%~2 !_18_%~2! _8_%~2 _9_%~2
        set _10_%~2=!_19_%~2!
        set /a _4_%~2=2
        set _3_%~2=!y!
        set /a _20_%~2=^(1 + %~2^)
        call :pow _21_%~2 !_20_%~2! _3_%~2 _4_%~2
        set _5_%~2=!_21_%~2!
        set /a _1_%~2=2
        set _0_%~2=!x!
        set /a _22_%~2=^(1 + %~2^)
        call :pow _23_%~2 !_22_%~2! _0_%~2 _1_%~2
        set _2_%~2=!_23_%~2!
        set /a _24_%~2=^(1 + %~2^)
        call :plus _25_%~2 !_24_%~2! _2_%~2 _5_%~2
        set _6_%~2=!_25_%~2!
        if !_6_%~2! LEQ 4 (
          set /a _7_%~2=1
        ) else (
          set /a _7_%~2=0
        )
        set /a _26_%~2=^(1 + %~2^)
        call :and _27_%~2 !_26_%~2! _7_%~2 _10_%~2
        set _11_%~2=!_27_%~2!
        :WHILE_4
        if !_11_%~2! EQU 1 (
          set /a x_new=^(^(^(!x! * !x!^) - ^(!y! * !y!^)^) + !c_re!^)
          set /a y=^(^(^(2 * !x!^) * !y!^) + !c_im!^)
          set x=!x_new!
          set /a iteration=^(!iteration! + 1^)
          goto WHILE_4
        )
        if !iteration! LSS !max_%~2! (
          set _14_%~2=!white!
          set _13_%~2=!row_%~2!
          set _12_%~2=!col!
          set /a _30_%~2=^(1 + %~2^)
          call :putpixel _31_%~2 !_30_%~2! _12_%~2 _13_%~2 _14_%~2
          echo | set /p ^=!_31_%~2!
        ) else (
          set _17_%~2=!black!
          set _16_%~2=!row_%~2!
          set _15_%~2=!col!
          set /a _28_%~2=^(1 + %~2^)
          call :putpixel _29_%~2 !_28_%~2! _15_%~2 _16_%~2 _17_%~2
          echo | set /p ^=!_29_%~2!
        )
        set /a col=^(!col! + 1^)
        goto WHILE_5
      )
      set /a row_%~2=^(!row_%~2! + 1^)
      goto WHILE_6
    )
    
    goto :EOF
    :and
    set a_%~2=!%~3!
    set b_%~2=!%~4!
    rem emulation of &&
    if !a_%~2! EQU 1 (
      if !b_%~2! EQU 1 (
        set %~1=1
        goto :EOF
      )
    )
    set %~1=0
    goto :EOF

    Мандельброт (без записи в картинку) на Batch

    asm0dey, 22 Февраля 2015

    Комментарии (7)
  10. Куча / Говнокод #17668

    +126

    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
    // На самом деле это пока только псевдокод. Real code will be on C/C++
    //Lock-free non blocking and anatomic operation only if IP was changed 
    // IN SHARED MEMORY
    non_atomic_in_shmem bad_IP_flag_non_atomic_in_shmem[64][16]; // in real code it will be uint64_t array[16] and bits operations with it
    some_ip_class IPs_non_atomic_in_shmem[64][16]                   //  
    std::atomic<uint64_t> version_holder_atomic_in_shmem[64][16];   // it is debatable "whether to do it the Atomic" but for reinsurance 
    
    // IN WRITER PROCESS
    void worker_reassign_IP_by_num(new_IP, back_end_server_ID, num)
     if  bad_IP_flag_non_atomic_in_shmem[back_end_server_ID][num]   // in real code this check will be not here but will have same sense
        version_holder_atomic_in_shmem[back_end_server_ID][num] ++ //it is increment of atomic var version and version become NOT even
        __sync_synchronize(); //TODO may be we can use something better here ?
        IPs_non_atomic_in_shmem[back_end_server_ID][num] = new_IP   //it  copy assignment
        __sync_synchronize();  //TODO may be we can use something better here ?
        version_holder_atomic_in_shmem[back_end_server_ID][num] ++ //it is increment of atomic var version and version become even
        __sync_synchronize();  //TODO may be we can use something better here ?
        bad_IP_flag_non_atomic_in_shmem[back_end_server_ID][num] = 0
    
    // IN READER PROCESS
    some_ip_class get_valid_ip_by_num(back_end_server_ID,num){
    //TODO  version_holder is atomic for now, may we do it non atomic? I think YES. Are any arguments in opposites?
    // Instead of atomic can we possible use volatile?
        uint64_t version_before = version_holder_atomic_in_shmem[back_end_server_ID][num] //it is atomic copy assignment
        //if (version_befor & 1)    // is not even  it will work too instead of checking flags
        // but checking flags it is less expensive operation than checking version because the version var is atomic 
         if  bad_IP_flag_non_atomic_in_shmem  //
                return 0;
         
        some_ip_class ip = IPs_non_atomic_in_shmem[back_end_server_ID][num]     
        uint64_t version_after = version_holder_atomic_in_shmem[back_end_server_ID][num] // it is atomic copy assignment
    
        if  version_before != version_after  // versions is not sames
                // we may add extra check of version evenest but it will cost us 1 slow atomic operation and excessively
    //OR  (version_after & 1) //or versions is not even ip is not correct
                return 0    
        return ip
    }
    some_ip_class get_valid_ip(back_end_server_ID)
        while(time_not_expaired) {
            for (n=0; n<16; n++){
                   some_ip_class ip = get_valid_ip_by_num(back_end_server_ID, n)
                   if ip 
                           return ip
            }
         //"it will never happened" "if it happened and time expired do something but it is problems on the back end servers site"
        //”it is similar situation with situation when back end server just down ”     
        }
        return 0 // or some server_down_ip ;)
    
    some_ip_class check_or_get_new_ip( curent_ip, back_end_server_ID,  num)
        if NOT bad_IP_flag_non_atomic_in_shmem
                    if current_ip == shmem_array_of_IP_non_atomic[back_end_server_ID][num] // maybe need copy but I think it's not necessary
                return current_ip

    Задача: есть reader(ы) Это процессы 20 - 30 -64, которые обращаются к web-серверу. У web-сервера может быть несколько ip (не больше 16). Переодически (1 раз в ~30 секунд) пара (1-2) IP может отвалиться и вместо них может появится пара 1-2 новых. reader обнаружив bad IP выставляет флаг bad_IP_flag. Writer (только 1 единственный процесс не reader) Переодически (1 раз в ~1 сек) проверяет флаг, увидев bad_IP_flag запускает DNS-lookup который длиться примерно (30mks - 1s). Обновляет массив ip Readers при попытке соединиться проверяют не стал ли IP плохим если стал пробуют другой из массива Но суть не в этом Суть в том как безопасно работать с shared memory? Где что не так в предложенной задумке?

    apgurman, 20 Февраля 2015

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