1. Python / Говнокод #23456

    +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
    while (1):
        for iterator in range(len(posts)):
            # Для прозрачности вычислений
            time_post_a = datetime.now()
            time_post_a = int(time.mktime(time_post_a.timetuple()))
    
            time_post_b = posts[iterator]['time']
            time_post_b = int(time.mktime(time_post_b.timetuple()))
    
            # Выполнить действие, в случае, если "время пришло" по массиву posts
            if ((time_post_a - time_post_b) == 0):
                print ('Итератор: ' + str(iterator) + ', Новая публикация: ' + str(posts[iterator]['time']))
                time.sleep(1) # Если его убрать, то начинаются дикие пляски
                break

    Планировщик постов

    meridium, 26 Октября 2017

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    #if ( clang_major==7 && clang_minor==3 )
             public std::enable_shared_from_this<CryptoContainer>
    #else
             public std::enable_shared_from_this<CryptoContainerInterface>
    #endif

    Во первых непонятно зачем, а во вторых clang > 6 на момент написания даже в проекте не было.

    s0nicyouth, 25 Октября 2017

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

    0

    1. 1
    2. 2
    echo -ne '10\n11\n12\n' | POST 'http://localhost:8123/?query=INSERT INTO t FORMAT TabSeparated'
    cat file.csv | clickhouse-client --database=test --query="INSERT INTO test FORMAT CSV";

    https://clickhouse.yandex/docs/en/single/index.html#format-clause

    FORMAT

    Вот нахрена было вставлять FORMAT в ЯЗЫК ЗАПРОСОВ? Почему нельзя это сделать опциями клиента и HTTP-хедерами?

    Допустим, хочу я написать клиент на языке X, который использует HTTP-протокол. Работа клиента — взять запрос и превратить его в структуры данных языка X. Из-за этого FORMAT клиенту теперь нужно лезть в пользовательский запрос, чтобы понять, в каком формате будут приходить данные, и уметь конвертировать все форматы, которые взбрело в голову добавить авторам БД.

    roman-kashitsyn, 25 Октября 2017

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

    +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
    private SharedPreferences longCache;
    private String email;
    
    public void updateEmail(String newLogin) {
        if(newLogin != null) {
            email = newLogin;
            if(longCache.contains("email")) {
                longCache.edit().remove("email").apply();
            }
            longCache.edit().putString("email", email).apply();
        }
    }

    Проект под Android.
    Стаж разработчика - 5 лет.

    ausichenko, 25 Октября 2017

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

    −3

    1. 1
    2. 2
    3. 3
    4. 4
    //Если Ответ = КодВозвратаДиалога.Нет Штирлиц решил не писать, чтобы запутать врага
    	    Если НЕ Ответ = КодВозвратаДиалога.Да Тогда		
    			Возврат;		
    		КонецЕсли;

    Если Ответ = КодВозвратаДиалога.Нет Штирлиц решил не писать, чтобы запутать врага

    M1CE, 25 Октября 2017

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

    +1

    1. 1
    https://roem.ru/23-10-2017/261914/seva-zhidkov-rocks/

    > В январе 2016 года 14-летний Сева Жидков создал телеграм-бота для рекламных путеводителей «Медузы». После этого он стал стажироваться в издании и создал еще одного бота — уже для редакции. Теперь Жидков самый молодой сотрудник «ВКонтакте».
    > Как давно ты работаешь во «ВКонтакте»?
    > после девятого класса
    > занимаюсь, в частности, применением машинного обучения в рекламе «ВКонтакте»

    Все что требовалось знать про эту "интеллектуальную" профессию. Даже школьник с 9 классами может применять машинное обучение в контакте и писать ботов для телеграма.

    g0cTb, 25 Октября 2017

    Комментарии (27)
  7. JavaScript / Говнокод #23450

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    const screenCssPixelRatio = (window.outerWidth - 8) / window.innerWidth;
    const screenZoomed = screenCssPixelRatio !== 2.639089968976215;
    
    if (screenZoomed) {
       return scrollWidth + 4;
    }
    
    return scrollWidth;

    Когда важна точность

    prostohz, 24 Октября 2017

    Комментарии (14)
  8. C++ / Говнокод #23449

    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
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    https://github.com/TartanLlama/optional/blob/master/optional.hpp#L853
    
      /// Constructs the stored value with `u`.
      /// \synopsis template <class U=T> constexpr optional(U &&u);
      template <
          class U = T,
          detail::enable_if_t<std::is_convertible<U &&, T>::value> * = nullptr,
          detail::enable_forward_value<T, U> * = nullptr>
      constexpr optional(U &&u) : base(in_place, std::forward<U>(u)) {}
    
      /// \exclude
      template <
          class U = T,
          detail::enable_if_t<!std::is_convertible<U &&, T>::value> * = nullptr,
          detail::enable_forward_value<T, U> * = nullptr>
      constexpr explicit optional(U &&u) : base(in_place, std::forward<U>(u)) {}
    
      /// Converting copy constructor.
      /// \synopsis template <class U> optional(const optional<U> &rhs);
      template <
          class U, detail::enable_from_other<T, U, const U &> * = nullptr,
          detail::enable_if_t<std::is_convertible<const U &, T>::value> * = nullptr>
      optional(const optional<U> &rhs) {
        this->m_has_value = true;
        new (std::addressof(this->m_value)) T(*rhs);
      }
    
      /// \exclude
      template <class U, detail::enable_from_other<T, U, const U &> * = nullptr,
                detail::enable_if_t<!std::is_convertible<const U &, T>::value> * =
                    nullptr>
      explicit optional(const optional<U> &rhs) {
        this->m_has_value = true;
        new (std::addressof(this->m_value)) T(*rhs);
      }
    
      /// Converting move constructor.
      /// \synopsis template <class U> optional(optional<U> &&rhs);
      template <
          class U, detail::enable_from_other<T, U, U &&> * = nullptr,
          detail::enable_if_t<std::is_convertible<U &&, T>::value> * = nullptr>
      optional(optional<U> &&rhs) {
        this->m_has_value = true;
        new (std::addressof(this->m_value)) T(std::move(*rhs));
      }
    
      /// \exclude
      template <
          class U, detail::enable_from_other<T, U, U &&> * = nullptr,
          detail::enable_if_t<!std::is_convertible<U &&, T>::value> * = nullptr>
      explicit optional(optional<U> &&rhs) {
        this->m_has_value = true;
        new (std::addressof(this->m_value)) T(std::move(*rhs));
      }

    Я даже не знаю, какой конкретно фрагмент этого творчества сюда выкладывать.

    https://github.com/TartanLlama/optional C++11/14/17 std::optional with functional-style extensions https://optional.tartanllama.xyz

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

    Понятно что из плюсов никакого гомоиконного лиспа сделать не выйдет, ведь тогда надо выкинуть очень красивый и элегантный плюсосинтаксис вида std::kukarek(std:kudah<std:kokoko{kokoko ko[hui<govno>]}>:()[*huita]{}) и заменить его на бездуховные скобочки

    j123123, 24 Октября 2017

    Комментарии (74)
  9. PHP / Говнокод #23448

    +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
    <?php
    class SmsController extends Controller
    {
        protected static $currentYear;
    
        public static function currentYear()
        {
            if (is_null(self::$currentYear)) {
                self::$currentYear = date('Y');
            }
    
            return self::$currentYear;
        }
    ?>

    :-D

    FireDemonru, 24 Октября 2017

    Комментарии (46)
  10. PHP / Говнокод #23447

    0

    1. 1
    $this->currencyIntToFloat($this->contract->getCredit()->getParams()['installments'][key($this->contract->getCredit()->getParams()['installments'])]['interestAmount']);

    dmitrij, 23 Октября 2017

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