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

    0

    1. 1
    2. 2
    3. 3
    Илья Перекопский, вице-президент мессенджера «Телеграм», будет на встрече премьера Михаила Мишустина с представителями IT-индустрии в Иннополисе, Казань
    
    Замруководителя фракции "Справедливая Россия" Федот Тумусов планирует организовать в Госдуме круглый стол с онлайн-участием основателя Telegram Павла Дурова

    ДА НЕ ПЕРЕДАВАЛ Я КЛЮЧИ

    https://roem.ru/08-07-2020/282610/tlg-to-russia-with-love/
    https://ria.ru/20200710/1574142863.html

    Fike, 10 Июля 2020

    Комментарии (65)
  2. Perl / Говнокод #26798

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    # The API methods die when an error occurs.
    say $api->getMe->{result}{username};
    # ... but error handling is available as well.
    my $result = eval { $api->getMe }
        or die 'Got error message: ', $api->parse_error->{msg};

    https://metacpan.org/pod/WWW::Telegram::BotAPI

    Продолжаем пиздеть про перл.

    Решил выбрать предметную область "Телеграм-бот" чтобы поднатаскаться в «Perl».

    Вопрос: что за говно в оп-коде? Это говноспособ обработки ошибок предлагают, или такое распространено? Типа eval вместо try?

    vistefan, 09 Июля 2020

    Комментарии (88)
  3. Java / Говнокод #26797

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    List<UserScoreDTO> userScores = users.stream()
                    .map((u) -> ScoreUtils.aggregateUserAndFlagData(u, maxTestScore))
                    .collect(toList());
    
    return userScores.stream();

    Collect to List<UserScoreDTO> then stream the list to Stream<UserScoreDTO>

    johann, 08 Июля 2020

    Комментарии (4)
  4. Java / Говнокод #26796

    0

    1. 1
    2. 2
    IntStream.range(1, userScores.size() + 1)
                    .forEach(position -> userScores.get(position - 1).setPosition(position));

    Converting from 0 based array to 1 based array (for some reason).

    johann, 08 Июля 2020

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    public static bool found13 = false;
    public static bool found11 = false;
    // ...
    public List<int> Children = new List<int>(); //index of children
    public List<int> Children13 = new List<int>(); //index of children

    Код бота-автора подавляющего большинства статей на нескольких языках. В основном Шведский (автор бота — швед) и, наверное, Себуанский, не знаю как правильно по-русски, короче язык океании, где-то на Филиппинах на нем говорят. На последнем, между прочим, бот нахерачил столько, что вывел себуанскую Википедию на второе место по количеству статей вообще.

    Потрясающий пример говнокода, написанного учёным для дела, и приемлемо решающий свою задачу. На основе отрытых баз знаний о таксонах биологических видов и географических объектах (реки, горы, населенные пункты), генерит статьи-заглушки с краткой информационной сводкой.

    https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framewor k/Lsjbot/Makespecies

    Сори, если баян.

    vistefan, 06 Июля 2020

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

    +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
    if (feet_yaw <= 58)
    	{
    		if (-58 > feet_yaw)
    			player->EyeAngles()->y = body_max_rotation + player->EyeAngles()->y;
    	}
    	else
    	{
    		player->EyeAngles()->y = body_max_rotation - player->EyeAngles()->y;
    	}
    	if (player->GetAnimOverlay(6)->m_flPlaybackRate > 0.1)
    	{
    		for (int resolve_delta = 58.f; resolve_delta < -58.f; resolve_delta = resolve_delta - 20.f)
    		{
    			player->EyeAngles()->y = resolve_delta;
    		}
    	}

    ресольвер

    esoterik, 04 Июля 2020

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

    +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
    if (UpdateLBY)
    			{
    				auto m_flDelta = csgo->local->GetPlayerAnimState()->m_flGoalFeetYaw - csgo->local->GetPlayerAnimState()->m_flEyeYaw;
    
    				if (m_flDelta >= 35.0 && m_flDelta <= -35.0) {
    					// the first lby break is left.
    					csgo->cmd->viewangles.y -= 122.f;
    				}
    				else {
    					if (m_flDelta <= -35.0) {
    						// the second lby break is right.
    						csgo->cmd->viewangles.y += 122.f;
    					}
    					if (m_flDelta >= 35.0) {
    						// the loop.
    						csgo->cmd->viewangles.y -= 122.f;
    					}
    				}
    				csgo->send_packet = false;
    				return;
    			}

    esoterik, 03 Июля 2020

    Комментарии (8)
  8. Java / Говнокод #26791

    +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
    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
    package literatePrimes;
    
    import java.util.ArrayList;
    
    public class PrimeGenerator {
      private static int[] primes;
      private static ArrayList<Integer> multiplesOfPrimeFactors;
    
      protected static int[] generate(int n) {
        primes = new int[n];
        multiplesOfPrimeFactors = new ArrayList<Integer>();
        set2AsFirstPrime();
        checkOddNumbersForSubsequentPrimes();
        return primes;
      }
    
      private static void set2AsFirstPrime() {
        primes[0] = 2;
        multiplesOfPrimeFactors.add(2);
      }
    
      private static void checkOddNumbersForSubsequentPrimes() {
        int primeIndex = 1;
        for (int candidate = 3;
             primeIndex < primes.length;
             candidate += 2) {
          if (isPrime(candidate))
            primes[primeIndex++] = candidate;
        }
      }
    
      private static boolean isPrime(int candidate) {
        if (isLeastRelevantMultipleOfNextLargerPrimeFactor(candidate)) {
          multiplesOfPrimeFactors.add(candidate);
          return false;
        }
        return isNotMultipleOfAnyPreviousPrimeFactor(candidate);
      }
    
      private static boolean
      isLeastRelevantMultipleOfNextLargerPrimeFactor(int candidate) {
        int nextLargerPrimeFactor = primes[multiplesOfPrimeFactors.size()];
        int leastRelevantMultiple = nextLargerPrimeFactor * nextLargerPrimeFactor;
        return candidate == leastRelevantMultiple;
      }
    
      private static boolean
      isNotMultipleOfAnyPreviousPrimeFactor(int candidate) {
        for (int n = 1; n < multiplesOfPrimeFactors.size(); n++) {
          if (isMultipleOfNthPrimeFactor(candidate, n))
            return false;
        }
        return true;
      }
    
      private static boolean
      isMultipleOfNthPrimeFactor(int candidate, int n) {
       return
         candidate == smallestOddNthMultipleNotLessThanCandidate(candidate, n);
      }
    
      private static int
      smallestOddNthMultipleNotLessThanCandidate(int candidate, int n) {
        int multiple = multiplesOfPrimeFactors.get(n);
        while (multiple < candidate)
          multiple += 2 * primes[n];
        multiplesOfPrimeFactors.set(n, multiple);
        return multiple;
      }
    }

    https://habr.com/ru/post/508876/
    Вероятно, хватит рекомендовать «Чистый код»
    > Я остановлюсь на ещё одном вопиющем примере кода. Это генератор простых чисел из главы 8:

    gost, 03 Июля 2020

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

    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
    async def register_experiment(self, pool):
        async with pool.acquire() as conn:
            async with conn.cursor() as cur:
                sql = "INSERT INTO " + str(self.auxname) + "." + 
                    str(self.auxtable)
                sql += " VALUES(NULL, '" 
                sql += str(self.dbname) 
                sql += "', '" 
                sql += str(self.encoder) 
                sql += "', 0, '" #goodEncoder
                sql += str(self.lattices) 
                sql += "', 0, '" #goodLattices
                sql += str(self.complex) 
                sql += "', 0, '" #goodComplex 
                sql += str(self.verges_total) 
                sql += "', 0, " #goodVerges
                sql += str(self.verges_total) 
                sql += ", '" 
                sql += str(self.trains) 
                sql += "', 0, '" #goodTrains 
                sql += str(self.tests) 
                sql += "', 0, '" #goodTests 
                sql += str(self.hypotheses) 
                sql += "', 0, '" #goodHypotheses 
                sql += str(self.type)
                sql += "')"
                await cur.execute(sql)
                await conn.commit()

    https://habr.com/ru/post/509338/
    > Web-сервер машинного обучения «ВКФ-решатель»

    gost, 03 Июля 2020

    Комментарии (28)
  10. C++ / Говнокод #26789

    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
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    struct A
    {
        A() { cout << "A::A()" << endl; }
        ~A() { cout << "~A::A()" << endl; }    
    };
    
    struct B
    {
        B() { cout << "B::B()" << endl; }
        ~B() { cout << "~B::B()" << endl; }    
    };
    
    union U
    {
        A a;
        B b;
        int n;
        
        U() { a = A {}; b = B {}; }
        ~U() {}
    };
    
    int main()
    {
        U u;
    }

    Запустить тут: cpp.sh/3ewfw

    Получается информация о том, какой сейчас объект активен в union где-то хранится.

    OlegUP, 03 Июля 2020

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