1. JavaScript / Говнокод #24200

    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
    /**
     * Peetushna
     * Node.js 10
     * node index.js > report.csv
     */
    
    const { get } = require("axios");
    const { load } = require("cheerio");
    
    Promise.resolve().then(async () => {
      const responses = reqGen(1, 25000);
      const peetushna = /питушня/g;
      for await (const resp of responses) {
        if (resp.status != 200) break;
        const wordCount = resp.data.match(peetushna);
        const count = wordCount ? wordCount.length : 0;
        const html = load(resp.data);
        const lang = html('a[rel="chapter"]')
          .text()
          .replace("Си", "C");
        console.log(`"${lang}", ${count}`);
      }
    });
    
    async function* reqGen(first, max) {
      while (first <= max) {
        try {
          const resp = await get("http://govnokod.ru/" + first++);
          yield resp;
        } catch (e) {
          //
        }
      }
    }

    mazhuravlev, 27 Апреля 2018

    Комментарии (6)
  2. C++ / Говнокод #24199

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    struct Bar {};
    
    class Foo {
    public:
        Bar& bar() const { return *bp; }
    
    private:
        Bar b;
        Bar * const bp = &b;
    };

    https://wandbox.org/permlink/7JPzrvslrUwbvREb

    Как называется данный говнопаттерн?

    Elvenfighter, 27 Апреля 2018

    Комментарии (5)
  3. JavaScript / Говнокод #24198

    −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
    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
    function running(html, clear) {
    	var	id, brk = true;
    	if(clear)
    		html.className = "";
    	if(html.className != "Ready") {
    		if(html.children.length > 0) {
    			if(!clear) {
    				for(id = 1; id < html.childNodes.length; ++ id) {
    					var	active = findActive(html.childNodes[id]);
    					if(active == null) {
    						brk = true;
    						break;
    					}
    					brk = active.className != "Ready" ? false : brk;
    				}
    			}
    			if(!brk && html.childNodes[0].value && html.childNodes[0].max) {
    				if(clear)
    					html.childNodes[0].value = 1;
    				else
    				if(html.childNodes[0].value <= html.childNodes[0].max) {
    					++ html.childNodes[0].value;
    					if(brk) {
    						for(id = 1; id < html.childNodes.length; ++ id)
    							findActive(html.childNodes[id], true);
    						html.parentNode.className = "";
    					}
    					return null;
    				} else {
    					html.parentNode.className = "Ready";
    					html.className = "";
    					return html;
    				}
    			}
    			if(!clear)
    				html.className = html.className != "Active" ? "Active" : "Ready";
    			return null;
    		} else {
    			if(!clear)
    				html.className = html.className != "Active" ? "Active" : "Ready";
    			return html;
    		}
    	}
    	return html;
    }

    Должен бегать по вложенным элементам и анимировать их.

    Alikberov, 27 Апреля 2018

    Комментарии (1)
  4. C# / Говнокод #24197

    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
    using (var stream = File.Open(inFile, FileMode.Open))
    using (var reader = new StreamReader(stream))
    using (var csvReader = new CsvReader(reader, new Configuration
    {
    HeaderValidated = HeaderValidated,
    MissingFieldFound = null,
    PrepareHeaderForMatch = header =>
        CultureInfo.CurrentCulture.TextInfo.ToTitleCase(header)
    }))
    using (var outStream = File.Open(outFile, FileMode.CreateNew, FileAccess.Write, FileShare.Read))
    using (var writer = new StreamWriter(outStream))
    using (var csvWriter = new CsvWriter(writer))

    mazhuravlev, 26 Апреля 2018

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

    −6

    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
    /* Q: Can someone recommend a more elegant way to achieve these compile-time constants? */
    template <int> struct Map;
    template <> struct Map<0> {static const int value = 4;};
    template <> struct Map<1> {static const int value = 8;};
    template <> struct Map<2> {static const int value = 15;};
    
    template <int> struct MapInverse;
    template <> struct MapInverse<4> {static const int value = 0;};
    template <> struct MapInverse<8> {static const int value = 1;};
    template <> struct MapInverse<15> {static const int value = 2;};
    
    
    /* A: Another TMP approach for a linear search using C++11: */
    #include <type_traits>
    
    // === Types:
    // Usage:
    //    Function<Map<x1,y1>,Map<x2,y2>,...>
    template<int D, int R> struct Map { enum { domain=D, range=R }; };
    template<typename ...A> struct Function {};
    
    // === Metafunctions:
    // Usage:
    //    ApplyFunction<x,F>::value
    template<int I, typename M> struct ApplyFunction;
    // Usage:
    //    ApplyFunctionInverse<x,F>::value
    template<int I, typename M> struct ApplyFunctionInverse;
    
    // ==== Example:
    // Define function M to the mapping in your original post.
    typedef Function<Map<0,4>,Map<1,8>,Map<2,15>> M;
    
    // ==== Implementation details
    template<typename T> struct Identity { typedef T type; };
    template<int I, typename A, typename ...B> struct ApplyFunction<I, Function<A,B...> > {
       typedef typename
          std::conditional <I==A::domain
                           , Identity<A>
                           , ApplyFunction<I,Function<B...>> >::type meta;
       typedef typename meta::type type;
       enum { value = type::range };
    };
    template<int I, typename A> struct ApplyFunction<I, Function<A>> {
       typedef typename
           std::conditional <I==A::domain
                            , Identity<A>
                            , void>::type meta;
       typedef typename meta::type type;
       enum { value = type::range };
    };
    // Linear search by range
    template<int I, typename A> struct ApplyFunctionInverse<I, Function<A>> {
       typedef typename
           std::conditional <I==A::range
                            , Identity<A>
                            , void>::type meta;
       typedef typename meta::type type;
       enum { value = type::domain };
    };
    template<int I, typename A, typename ...B> struct ApplyFunctionInverse<I, Function<A,B...> > {
       typedef typename
           std::conditional <I==A::range
                            , Identity<A>
                            , ApplyFunctionInverse<I,Function<B...>> >::type meta;
       typedef typename meta::type type;
       enum { value = type::domain };
    };
    
    // ==============================
    // Demonstration
    #include <iostream>
    int main()
    {
       // Applying function M
       std::cout << ApplyFunction<0,M>::value << std::endl;
       std::cout << ApplyFunction<1,M>::value << std::endl;
       std::cout << ApplyFunction<2,M>::value << std::endl;
    
       // Applying function inverse M
       std::cout << ApplyFunctionInverse<4,M>::value << std::endl;
       std::cout << ApplyFunctionInverse<8,M>::value << std::endl;
       std::cout << ApplyFunctionInverse<15,M>::value << std::endl;
    }

    Элегантненько.
    s: https://stackoverflow.com/questions/26075969/compile-time-map-and-inverse-map-values

    gost, 25 Апреля 2018

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

    −6

    1. 1
    https://github.com/syn2cat/pidor

    dm_fomenok, 24 Апреля 2018

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

    −10

    1. 1
    Вопрос

    Кто знает, как динамически выделить память, заполнить её нужными инструкциями, и исполнить этот код, не испытав при этом анальной боли и не получить Segmentation Fault ?

    yet_another_one_shit, 23 Апреля 2018

    Комментарии (19)
  8. Python / Говнокод #24190

    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
    class Task:
    
        def set_activity( activity_method ):
            # проанализировать исходный код activity_method 
            # разделить цепочку команд на N частей
            pass
    
        def _get_parts_number():
            return N
    
        def _run_part( part_num ):
            # выполнить часть part_num
            pass
    
    
    def run(tasks):
    
        execution = True
        part_num = 0
        while execution:
            execution = False
            for task in tasks:
                if part_num < task._get_parts_number():
                    task._run_part( part_num )
                    execution = True
            part_num += 1

    Попросил коллегу реализовать concurrency многозадачность, он на питоне нагавнякал такое.

    ded_mazay, 21 Апреля 2018

    Комментарии (2)
  9. C# / Говнокод #24189

    +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
    public static class MyExtensions {
      private static Random _random = new Random(); 
      
      public static bool IsMnogo(this object value) {
        try {
          var n = double.Parse(value.ToString());
          return n > 9999999999;
        } catch {
          return true;
        }
      }
      
      public static bool IsDavno(this DateTime value) {
        return value < new DateTime(1900 + _random.Next(10, 90), 04, 17);
      }
    }

    mazhuravlev, 21 Апреля 2018

    Комментарии (4)
  10. bash / Говнокод #24183

    −2

    1. 1
    2. 2
    3. 3
    for word in {"Блять", "пишите", "красивые" ,"коды" ,"уёбки", ",", "ради", "энтузиазма", "и", "плодотворного", "труда", ",", "почитайте", "книжку", "сталина", "и", "поймёте", "как", "надо", "делать", "сруны", "говнокодерные!"}; do
        echo "$word"
    done

    хули?

    fuckercoder, 21 Апреля 2018

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