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

    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
    <? foreach ($arResult["ITEMS"] as $i => $arItem):
                $this->AddEditAction($arItem['ID'], $arItem['EDIT_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_EDIT"));
                $this->AddDeleteAction($arItem['ID'], $arItem['DELETE_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_DELETE"), array("CONFIRM" => GetMessage('CT_BNL_ELEMENT_DELETE_CONFIRM')));
                switch ($i) {
                    case(0):
                        $case = 'bgd1';
                        break;
                    case(1):
                        $case = 'bgd2';
                        break;
                    case(2):
                        $case = 'bgd2';
                        break;
                    case(3):
                        $case = 'bgd3';
                        break;
                    default:
                        $case = 'bgd4';
                        break;
    }
     ?>

    Вот что я кукареку

    phpBidlokoder2, 11 Ноября 2019

    Комментарии (0)
  2. PHP / Говнокод #26023

    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
    <?if($arParams["DISPLAY_PICTURE"]!="N" && is_array($arItem["PREVIEW_PICTURE"])):?>
    	<?if(!$arParams["HIDE_LINK_WHEN_NO_DETAIL"] || ($arItem["DETAIL_TEXT"] && $arResult["USER_HAVE_ACCESS"])):?>
    		<span class="article_image"><img class="preview_picture" src="<?=$arItem["PREVIEW_PICTURE"]["SRC"]?>" alt="<?=$arItem["NAME"]?>" title="<?=$arItem["NAME"]?>"></span>
    	<?else:?>
    		<span class="article_image"><img class="preview_picture" src="<?=$arItem["PREVIEW_PICTURE"]["SRC"]?>" alt="<?=$arItem["NAME"]?>" title="<?=$arItem["NAME"]?>"></span>
    	<?endif;?>
    <?endif?>
    
    ....
    
    <?if($arParams["DISPLAY_NAME"]!="N" && $arItem["NAME"]):?>
    	<?if(!$arParams["HIDE_LINK_WHEN_NO_DETAIL"] || ($arItem["DETAIL_TEXT"] && $arResult["USER_HAVE_ACCESS"])):?>
    		<header><?echo $arItem["NAME"]?></header>
    	<?else:?>
    		<header><?echo $arItem["NAME"]?></header>
    	<?endif;?>
    <?endif;?>

    От создателя if (true) return true elseif (false) return false;

    phpBidlokoder2, 11 Ноября 2019

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

    +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
    // https://godbolt.org/z/PPAWM0
    #include <embed>
    #include <cstdint>
    
    constexpr std::uint64_t val_64_const = 0xcbf29ce484222325u;
    constexpr std::uint64_t prime_64_const = 0x100000001b3u;
    
    inline constexpr std::uint64_t
    hash_64_fnv1a_const(const char* const ptr, std::size_t ptr_size, const std::uint64_t value = val_64_const) noexcept {
    	return (ptr_size == 1) 
    		? value : 
    		hash_64_fnv1a_const(&ptr[1],
    			ptr_size - 1, 
    			(value ^ static_cast<std::uint64_t>(static_cast<char>(*ptr))) * prime_64_const);
    }
    
    int main () {
    	constexpr std::span<const char> art_data  = std::embed("/dev/urandom", 32);
    	constexpr std::uint64_t actual = hash_64_fnv1a_const(art_data.data(), art_data.size());
    
    	return static_cast<int>(actual);
    }

    Очередная дрисня http://open-std.org/JTC1/SC22/WG21/docs/papers/2018/p1040r0.html в крестоговне, теперь можно через std::embed прочитать какое-то говно и даже в constexpr с ним что-то делать, например считать хеш-сумму. Можно constexpr-компилятор сделать, который бы читал код через std::embed и через constexpr хуиту его обрабатывал и компилировал. Скажите им еще про миксины из D

    j123123, 10 Ноября 2019

    Комментарии (95)
  4. Haskell / Говнокод #26021

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    module Voretion.Kobenation (
        trySort
      , natalyze
      , toBase64
      , fromBase64
      , dbgKob
      ) where

    https://github.com/k32/zenmaster

    Чей петух, кто знает?

    Konardinho, 10 Ноября 2019

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

    +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
    Дали тестовое задание.
    Написать хеш таблицу с открытой адресацией. Главное качество, а не скорость, сказали.
    Реализовал на C++.
    Самая тягомотина - это тестирование многопоточности.
    Есть операции: 
    find, equalRange, operator [] - тот же equalRange, но возвращает все найденные вхождения, insert, remove, extend, size, capacity.
    
    И вот надо каждую относительно другой проверять.  
    Только это выходит (9 - 1)^2 тестов. Помимо остальных, уже реализованных.
    
    у меня проверка на значения только в операциях поиска относительно вставки, то бишь, нашелся ли в многопоточном исполнении элемент, или нет.
    относительно удаления проверять - это муторно, потому что после удаления на той же позиции встает соседняя пара, и это случайно, проверено 
    экспериментально.
    
    Сойдет ли просто проверять время блокировки (shared_lock, и lock_guard) 
    каждого параллельного текущему потоку относительно времени блокировки\старта\окончания блокировки текущего?
    кроме связки (access - insert)?
    Тем более, что операции записи\чтения проверяются в немногопоточном исполнении?

    OlegUP, 08 Ноября 2019

    Комментарии (31)
  6. bash / Говнокод #26019

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    #!/bin/sh
    IFS=:
    echo "Login\tUID"
    while read LOGIN _ UID _;
    do
      echo "$LOGIN\t$UID"
    done < /etc/passwd

    давайте обсуждать шелл-программирование

    MAKAKA, 07 Ноября 2019

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

    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
    #include "pch.h"
    #include <iostream>
    
    using namespace std;
    
    struct _Point {
    	double x, y, z;
    };
    
    void setPoint(_Point &, double = 0, double = 0, double = 0);
    
    void outPoint(const _Point &, char);
    
    int main()
    {
    	_Point A, B, C, D;
    	setPoint(A, 1, 5, 6.78);
    	setPoint(B);
    	setPoint(C, 8);
    	setPoint(D, 3, 4);
    
    	outPoint(A,'a');
    	outPoint(B,'b');
    	outPoint(C,'c');
    	outPoint(D,'d');
    }
    
    void setPoint(_Point &name, double a, double b, double c) {
    	name.x = a;
    	name.y = b;
    	name.z = c;
    }
    
    void outPoint(const _Point &name,char ch) {
    	
    	cout <<ch<< "(" << name.x << ", " << name.y << ", " << name.z << ")\n";
    }

    maxrbs, 07 Ноября 2019

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

    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
    Building on that example, the new syntax for function definitions would look like:
    
    def name(positional_only_parameters, /, positional_or_keyword_parameters,
             *, keyword_only_parameters):
    
    Therefore the following would be valid function definitions:
    
    def name(p1, p2, /, p_or_kw, *, kw):
    def name(p1, p2=None, /, p_or_kw=None, *, kw):
    def name(p1, p2=None, /, *, kw):
    def name(p1, p2=None, /):
    def name(p1, p2, /, p_or_kw):

    https://www.python.org/dev/peps/pep-0570

    3.14159265, 07 Ноября 2019

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

    +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
    <?php
    /*
    =====================================================
     DataLife Engine - by SoftNews Media Group 
    -----------------------------------------------------
     http://dle-news.ru/
    -----------------------------------------------------
     Copyright (c) 2004-2019 SoftNews Media Group
    =====================================================
     This code is protected by copyright
    =====================================================
     File: mysql.php
    -----------------------------------------------------
     Use: MySQL class
    =====================================================
    */
    
    if( !defined( 'DATALIFEENGINE' ) ) {
    	header( "HTTP/1.1 403 Forbidden" );
    	header ( 'Location: ../../' );
    	die( "Hacking attempt!" );
    }
    
    class db
    {
    	var $db_id = false;
    	var $query_num = 0;
    	var $query_list = array();
    	var $query_errors_list = array();
    	var $mysql_error = '';
    	var $mysql_version = '';
    	var $mysql_error_num = 0;
    	var $mysql_extend = "";
    	var $MySQL_time_taken = 0;
    	var $query_id = false;
    ...

    2019 год, DLE за деньги

    straga_coda, 06 Ноября 2019

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

    +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
    // reflection.h
    template <class T>
    QStringList getPropertyList(T)
    {
      const QMetaObject& metaObject = T::staticMetaObject;
      ...
      return properties;
    }
    
    // Copy-pasted, the parameter now is T*
    template <class T>
    QStringList getPropertyList(T*)
    {
      const QMetaObject& metaObject = T::staticMetaObject;
      ...
      return properties;
    }
    
    // In other headers
    class IMessage
    {
    public:
      virtual ~IMessage();
      ...
    };
    
    class File
      : public IMessage
    {
      ...
    };
    
    class Text
      : public IMessage
    {
      ...
    };
    
    // Usage of all this
    QStringList p;
    p << getPropertyList(File());
    p << getPropertyList(Text());
    p << getPropertyList(static_cast<IMessage*>(new File()));

    Работаю с шаблонами и теку

    salamon_style, 05 Ноября 2019

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