1. Лучший говнокод

    В номинации:
    За время:
  2. Куча / Говнокод #2413

    +126.6

    1. 1
    <meta млн="" $42="" за="" рынке,="" масличном="" на="" оператора="" украинского="" крупнейшего="" group,="" allseeds="" доли="" контрольной="" приобретении="" о="" соглашение="" подписала="" Украины,="" групп="" агропромышленных="" крупнейших="" из="" одна="" ,="" Групп="" Кернел="" content="" name="description"/>

    Говнодвижок слепил описание странички.

    condemetrius, 14 Января 2010

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

    +126.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
    private OperatingSystem(SerializationInfo info, StreamingContext context)
    {
        SerializationInfoEnumerator enumerator = info.GetEnumerator();
        while (enumerator.MoveNext())
        {
            string name = enumerator.Name;
            if (name != null)
            {
                if (!(name == "_version"))
                {
                    if (name == "_platform")
                    {
                        goto Label_0067;
                    }
                    if (name == "_servicePack")
                    {
                        goto Label_0089;
                    }
                }
                else
                {
                    this._version = (Version) info.GetValue("_version", typeof(Version));
                }
            }
            continue;
        Label_0067:
            this._platform = (PlatformID) info.GetValue("_platform", typeof(PlatformID));
            continue;
        Label_0089:
            this._servicePack = info.GetString("_servicePack");
        }
        if (this._version == null)
        {
            throw new SerializationException(Environment.GetResourceString("Serialization_MissField", new object[] { "_version" }));
        }
    }

    Это добыто из недр .NET Framework с помощью рефлектора..)

    eee_qqq, 07 Декабря 2009

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

    +126.6

    1. 1
    2. 2
    3. 3
    4. 4
    if (websites.Any() && websites.Count() > 1)
    {
    ....
    }

    Без комментариев

    AndrewK, 20 Октября 2009

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

    +126.6

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    #include<stdio.h>
    int main(void)
    {
    	int a=10000,b=0,c=2800,d,e=0,f[2801],g;FILE *fo;
    	if (!(fo=fopen("C:\\out","w"))) return 1;
    	for (;b-c;) f[b++]=a/5;
    	for(;d=0,g=c*2;c-=14,fprintf(fo,"%.4d",e+d/a),e=d%a)
    		for(b=c;d+=f[b]*a, f[b]=d%--g,d/=g--,--b;d*=b);
    }

    число пи

    guest, 23 Февраля 2009

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

    +126.4

    1. 1
    2. 2
    3. 3
    4. 4
    foreach (object item in this.cbFind.Properties.Items)
                    {
                        int a = -1;
                    }

    Behemoth, 06 Ноября 2009

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

    +126.2

    1. 1
    2. 2
    3. 3
    if (myBool.ToString() == "true")
    {
    }

    62316e, 10 Августа 2009

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

    +126.1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    switch (dType) { 
             case "2":
                        return Title + "(" + dTitle + ")";
                        break;
             case "3":
                        return Title + " за " + dDate.ToString("d");
                        break;
             default: return Title;
                        break;
    }

    Чтобы уж наверняка :)

    pe4enov, 08 Декабря 2009

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

    +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
    -- Алгебраический тип-сумма Масть («перечисление»).
    -- Значением типа Масть может быть одно из указанных справа
    -- (или Пики, или Трефы, или Бубны, или Червы).
    -- «Масть» здесь выступает конструктором _типа_,
    -- а «Пики», «Трефы» и т.д. — конструкторами _данных_.
    data Масть = Пики | Трефы | Бубны | Червы
      -- необязательное автоматическое выведение экземпляров классов,
      -- позволяющее преобразовывать значения в строки (функцией show из Show)
      -- и обратно (функцией read из Read), а также сравнивать их между собой
      -- (функциями классов Eq и Ord).
      deriving (Show, Read, Eq, Ord)
     
    -- Алгебраический тип-сумма Достоинство
    data Достоинство = Семёрка | Восьмёрка | Девятка | Десятка
                     | Валет | Дама | Король | Туз
      deriving (Show, Read, Eq, Ord)
     
    -- Алгебраический тип-произведение Карта («тип-кортеж»).
    -- Значения типа Карта — комбинации значений типов Достоинство и Масть,
    -- объединённые конструктором данных К.
    -- Часто имена конструктора данных и конструктора типа совпадают.
    data Карта = К Достоинство Масть
      deriving (Show, Read, Eq, Ord)
     
    -- Синоним списка значений типа Карта.
    type Рука = [Карта]
     
    -- Функция, определяющая, есть ли в руке марьяж (король и дама одной масти).
    естьМарьяж :: Рука -> Bool
    естьМарьяж карты =
       -- достаточно найти марьяж хотя бы одной масти
       any (естьМарьяжМасти) [Пики, Трефы, Бубны, Червы]
       where
         -- проверить, есть ли и дама, и король заданной масти м в руке
         естьМарьяжМасти м = (К Дама м) `elem` карты && (К Король м) `elem` карты
     
    -- примеры раздач
    рука = [ К Дама Трефы, К Семёрка Червы, К Король Трефы, К Туз Бубны ]
    рука_без_марьяжа = [ К Десятка Пики, К Король Пики, К Дама Червы ]
     
    main = do
      проверить рука
      проверить рука_без_марьяжа
      проверить [] -- пустая раздача
      where
        проверить кк = putStrLn ( (show кк) ++ " -> " ++ (show (естьМарьяж кк)) )
     
    -- Вывод:
    -- [К Дама Трефы,К Семёрка Червы,К Король Трефы,К Туз Бубны] -> True
    -- [К Десятка Пики,К Король Пики,К Дама Червы] -> False
    -- [] -> False

    Рука без макияжа

    DesmondHume, 02 Апреля 2015

    Комментарии (383)
  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)
  11. C# / Говнокод #17465

    +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
    class Program
        {
            static void Main(string[] args)
            {
                User admin = new User() { Name = "Admin", Dick = new User.UserDick(18) };
                User guest = new User() { Name = "guest", Dick = new User.UserDick(12) };
                Console.WriteLine(guest.Suck(admin.Dick));
                Console.ReadLine();
            }
        }
    
        public class User
        {
            public User() { }
            public class UserDick
            {
                public UserDick(int _length) { Length = _length; }
                public long Length { get; set; }
            }
            public string Name { get; set; }
            public UserDick Dick { get; set; }
    
            public string Suck(UserDick _dick)
            {
                return String.Format("{0}: OH YEAH FUCK ME BY YOUR {1} CM YEEEEEAH I WANNA SUCK YOUR {2} DICK!", Name, _dick.Length, _dick.Length >= 17 ? "BIG" : "SMALL");
            }
        }

    DesmondHume, 17 Января 2015

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