1. Си / Говнокод #15732

    +133

    1. 1
    2. 2
    3. 3
    if (access(path, aflag) && mkfifo(path, mode) {
            exit(-1);
    }

    Весьма интуитивная запись условия

    evg_ever, 11 Апреля 2014

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

    +14

    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
    string modify( const string & str )
    {
    	if( str.size() == 0 ) return "00";
    	if( str.size() == 1 ) return "0" + str;
    	return string( str.end() - 2, str.end() );
    }
    
    string modify4( const string & str )
    {
    	if( str.size() == 0 ) return "0000";
    	if( str.size() == 1 ) return "000" + str;
    	if( str.size() == 2 ) return "00" + str;
    	if( str.size() == 3 ) return "0" + str;
    	return string( str.end() - 4, str.end() );
    }
    
    string TimeISOFormat( time_t cur )
    {
    	char buf[32];
    	struct tm * timeinfo;
    	timeinfo = localtime ( &cur );
    	strftime(buf, 32, "%y", timeinfo);
    	string year(buf);
    	strftime(buf, 32, "%m", timeinfo);
    	string month(buf);
    	strftime(buf, 32, "%d", timeinfo);
    	string day(buf);
    	strftime(buf, 32, "%H", timeinfo);
    	string hour(buf);
    	strftime(buf, 32, "%M", timeinfo);
    	string minute(buf);
    	strftime(buf, 32, "%S", timeinfo);
    	string second(buf);
    	return modify4( year ) + "-" + modify( month ) + "-" + modify( day ) + "T" + modify( hour )+ ":" + modify( minute )+ ":" + modify( second );
    }
    
    string CurrentTimeISOFormat()
    {
    	time_t cur = CurrentTime();
    	char buf[32];
    	struct tm * timeinfo;
    	timeinfo = localtime ( &cur );
    	strftime(buf, 32, "%y", timeinfo);
    	string year(buf);
    	strftime(buf, 32, "%m", timeinfo);
    	string month(buf);
    	strftime(buf, 32, "%d", timeinfo);
    	string day(buf);
    	strftime(buf, 32, "%H", timeinfo);
    	string hour(buf);
    	strftime(buf, 32, "%M", timeinfo);
    	string minute(buf);
    	strftime(buf, 32, "%S", timeinfo);
    	string second(buf);
    	return modify4( year ) + "-" + modify( month ) + "-" + modify( day ) + "T" + modify( hour )+ ":" + modify( minute )+ ":" + modify( second );
    }
    
    time_t CurrentTime()
    {
    	time_t rawtime = 0;
    	time(&rawtime);
    	return rawtime;
    }

    brainiac, 11 Апреля 2014

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

    −404

    1. 1
    [UIColor colorWithRed:0.3046875f green:0.72265625f blue:0.7421875f alpha:YES];

    Долго подбирал цвета, наверно. Да, и alpha - это float, а не bool.

    mr.The, 11 Апреля 2014

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

    +83

    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
    initialization
      //done this way so we can have a separate stack just for FPC under Unix systems
      GStackClass :=
        {$IFDEF USE_VCL_POSIX}
        TIdStackVCLPosix
        {$ELSE}
          {$IFDEF UNIX}
            {$IFDEF KYLIXCOMPAT}
            TIdStackLibc
            {$ENDIF}
            {$IFDEF USE_BASEUNIX}
            TIdStackUnix
            {$ENDIF}
          {$ENDIF}
          {$IFDEF WINDOWS}
          TIdStackWindows
          {$ENDIF}
          {$IFDEF DOTNET}
          TIdStackDotNet
          {$ENDIF}
        {$ENDIF}
      ;
      GStackCriticalSection := TIdCriticalSection.Create;
      {$IFNDEF DOTNET}
        {$IFDEF REGISTER_EXPECTED_MEMORY_LEAK}
      IndyRegisterExpectedMemoryLeak(GStackCriticalSection);
        {$ENDIF}
      {$ENDIF}
    finalization
      // Dont Free. If shutdown is from another Init section, it can cause GPF when stack
      // tries to access it. App will kill it off anyways, so just let it leak
      {$IFDEF FREE_ON_FINAL}
      FreeAndNil(GStackCriticalSection);
      {$ENDIF}
    end.

    Выдержка из IdStack.pas. Без комментариев.

    Предыcтория.
    fastmm постоянно сообщал об утечках памяти в моих программах, использующих Indy: решил разобраться.
    Оказалось, что ошибки возникали при использовании IdStack, по умолчанию этот модуль используют почти все компоненты из палитры.

    brutushafens, 11 Апреля 2014

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

    +137

    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
    model.PID = row["PID"].ToString();
    model.Rect = row["RECt"].ToString();
    model.Pubt = row["PUBt"].ToString();
    model.Ex = row["Ex"].ToString();
    model.Prev_Vol = row["Prev_Vol"].ToString() != "" ? Tools.ParseDecimalValue(row["Prev_Vol"].ToString()).FormatAmountWithoutDecimal() : "";
    model.Curr_Vol = row["Curr_Vol"].ToString() != "" ? Tools.ParseDecimalValue(row["Curr_Vol"].ToString()).FormatAmountWithoutDecimal() : "";
    model.Mov_Vol = row["Mov_Vol"].ToString() != "" ? Tools.ParseDecimalValue(row["Mov_Vol"].ToString()).FormatAmountWithoutDecimal() : "";
    decimal tonavgvol = Tools.ParseDecimalValue(row["Mov_Vol"].ToString());
    decimal currentvol = Tools.ParseDecimalValue(row["Curr_Vol"].ToString());
    if (row["Mov_Vol"].ToString() != "" && row["Curr_Vol"].ToString() != "" && tonavgvol != 0)
    	model.VolRat = (currentvol / tonavgvol).FormatAmount();
    model.Open_Vol = row["Open_Vol"].ToString() != "" ? Tools.ParseDecimalValue(row["Open_Vol"].ToString()).FormatAmountWithoutDecimal() : "";
    model.Close_Vol = row["Close_Vol"].ToString() != "" ? Tools.ParseDecimalValue(row["Close_Vol"].ToString()).FormatAmountWithoutDecimal() : "";
    model.AllTicks = row["AllTicks"].ToString() != "" ? Tools.ParseDecimalValue(row["AllTicks"].ToString()).FormatAmountWithoutDecimal() : "";
    model.ATR = row["ATR14"].ToString() != "" ? Tools.ParseDecimalValue(row["ATR14"].ToString()).FormatAmountFourDecimals() : "";
    decimal open = Tools.ParseDecimalValue(row["Open"].ToString());
    decimal close = Tools.ParseDecimalValue(row["Close"].ToString());
    if (row["Open"].ToString() != "" && row["Close"].ToString() != "" && open != 0)
    	model.PrevDay = (((close - open) / open) * 100).FormatPercent();
    model.PrevClose = row["PrevClose"].ToString() != "" ? Tools.ParseDecimalValue(row["PrevClose"].ToString()).FormatAmount() : "";
    model.DayOpen = row["DayOpen"].ToString() != "" ? Tools.ParseDecimalValue(row["DayOpen"].ToString()).FormatAmount() : "";
    decimal prevclose = Tools.ParseDecimalValue(row["PrevClose"].ToString());
    decimal dayopen = Tools.ParseDecimalValue(row["DayOpen"].ToString());
    if (row["DayOpen"].ToString() != "" && row["PrevClose"].ToString() != "" && prevclose != 0)
    	model.OpenGap = (((dayopen - prevclose) / prevclose) * 100).FormatPercent();
    model.SPYLast = row["TONSPLast"].ToString() != "" ? Tools.ParseDecimalValue(row["TONSPLast"].ToString()).FormatAmount() : "";
    model.TONOpen = row["TONOpen"].ToString() != "" ? Tools.ParseDecimalValue(row["TONOpen"].ToString()).FormatAmount() : "";
    model.TONHigh = row["TONHigh"].ToString() != "" ? Tools.ParseDecimalValue(row["TONHigh"].ToString()).FormatAmount() : "";
    model.TONLow = row["TONLow"].ToString() != "" ? Tools.ParseDecimalValue(row["TONLow"].ToString()).FormatAmount() : "";
    model.TONLast = row["TONLast"].ToString() != "" ? Tools.ParseDecimalValue(row["TONLast"].ToString()).FormatAmount() : "";
    model.EODHigh = row["EODHigh"].ToString() != "" ? Tools.ParseDecimalValue(row["EODHigh"].ToString()).FormatAmount() : "";
    model.EODLow = row["EODLow"].ToString() != "" ? Tools.ParseDecimalValue(row["EODLow"].ToString()).FormatAmount() : "";
    model.EODClose = row["EODClose"].ToString() != "" ? Tools.ParseDecimalValue(row["EODClose"].ToString()).FormatAmount() : "";
    model.SPYClose = row["EODSPClose"].ToString() != "" ? Tools.ParseDecimalValue(row["EODSPClose"].ToString()).FormatAmount() : "";
    model.PostVWAP = row["PostVWAP"].ToString() != "" ? Tools.ParseDecimalValue(row["PostVWAP"].ToString()).FormatAmount() : "";
    model.PreVWAP = row["PreVWAP"].ToString() != "" ? Tools.ParseDecimalValue(row["PreVWAP"].ToString()).FormatAmount() : "";
    model.MainVWAP = row["MainVWAP"].ToString() != "" ? Tools.ParseDecimalValue(row["MainVWAP"].ToString()).FormatAmount() : "";
    model.AllVWAP = row["AllVWAP"].ToString() != "" ? Tools.ParseDecimalValue(row["AllVWAP"].ToString()).FormatAmount() : "";
    model.EODVWAP = row["EODVWAP"].ToString() != "" ? Tools.ParseDecimalValue(row["EODVWAP"].ToString()).FormatAmount() : "";
    
    decimal tonlast = Tools.ParseDecimalValue(row["TONLast"].ToString());
    decimal eodhigh = Tools.ParseDecimalValue(row["EODHigh"].ToString());
    decimal eodlow = Tools.ParseDecimalValue(row["EODLow"].ToString());
    decimal tonhigh = Tools.ParseDecimalValue(row["TONHigh"].ToString());
    decimal tonlow = Tools.ParseDecimalValue(row["TONLow"].ToString());
    decimal eodclose = Tools.ParseDecimalValue(row["EODClose"].ToString());
    decimal oedspclose = Tools.ParseDecimalValue(row["EODSPClose"].ToString());
    decimal tonsplast = Tools.ParseDecimalValue(row["TONSPLast"].ToString());
    
    // еще где-то 100-150 строчек в таком же духе

    ADO.NET во все поля.
    Бизнес-логика? Что это такое?

    P.S. У класса model все свойства типа string, у всех decimal переменных потом тоже вызывается ToString().

    vertu, 11 Апреля 2014

    Комментарии (15)
  6. Java / Говнокод #15727

    +73

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    private static class Errors extends ArrayList<String> {
    	private static final long serialVersionUID = 1L;
    }
    
    private static class Notices extends ArrayList<String> {
    	private static final long serialVersionUID = 1L;
    }

    две большие разницы

    Lure Of Chaos, 11 Апреля 2014

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

    +153

    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
    public function filters($collection)
    	{
    		$className = $collection->modelName();
    		$filters = null;
    		$config = $this->getConfig($className)->admin_panel;
    		if (!empty($config['filters'])) {
    			$filters = $config['filters'];
    		}
            if (!$filters) {
                return $collection->raw();
            }
            foreach ($filters as $field => $value) {
                if (strpos($value, '||')) {
                    $or = explode('||', $value);
                    $where = "";
                    foreach ($or as $value) {
                        if (strpos($value, '::') !== false) {
                            $value = call_user_func(trim($value));
                        }
                        $where .= $field . '="' . $value . '" OR ';
                    }
                    $collection->where('(' . substr($where, 0, -4) . ')');
                } else {
                    if (strpos($value, '::') !== false) {
                        $value = call_user_func(trim($value));
                    }
                    $collection->where($field, trim($value));
                }
            }
    		return $collectio->raw();
    	}

    фильтруем коллекцию блять!

    greshnik, 11 Апреля 2014

    Комментарии (0)
  8. JavaScript / Говнокод #15725

    +154

    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
    var setIdToGridElements = function (gridId, gridConfig, idPrefix) {
    			var gridEl = Ext.get(gridId);
    			if (!gridEl) {
    				return;
    			}
    			var nodes = gridEl.dom.childNodes; // это массив всех элементов грида
    			var el;
    			for (var i = 0; i < nodes.length; i++) {
    				el = Ext.get(nodes[i].id);
    				if (el) {
    					var elements = el.dom.childNodes[i];
    					if (elements) {
    						var rowParameters = elements.children;				// это массив всех елементов строки
    						for (var j = 0; j < rowParameters.length; j++) {
    							var parameterEl = rowParameters[j].childNodes;
    							var newId = gridEl.id + '-' + gridConfig[0][j].key[1].name.bindTo + '-' + i;
    							parameterEl[1].className = "gridValue";
    							for (var k = 0; k < parameterEl.length; k++) {
    								parameterEl[k].id = newId + '-' + parameterEl[k].className;
    							}
    						}
    					}
    				}
    				// Выбираем все строки - элементы грида с ненулевым Id
    
    			}
    		};

    Авторские комментарии сохранены. Понимаю, что надо править и боюсь

    alex123098, 11 Апреля 2014

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

    +135

    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
    internal enum IsScanned
        {
            Create = 0,
            Scan = 1,
            Complete = 2,
            Error = 3,
            NoAccess = 4,
        }
    
    ...
    
    public int IsScanned { get; set; }
    
    ...
    
    if (details.IsScanned != (int)IsScanned.Create)

    paulem, 11 Апреля 2014

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

    +134

    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
    foreach (Admin _admin in _admins.Where(a => a.Login == _login))
                    {
                        if (_admin.Password == _password)
                        {
                            SessionObj = new Al2AllAuth
                            {
                                AccessId = _admin.Type,
                                Ename = _admin.Name,
                                Whoid = _admin.Id
                            };
                            var _type = (AdminTypes) _admin.Type;
                            switch (_type)
                            {
                                case AdminTypes.FirstType:
                                    return RedirectToAction(c_adminActionName, c_userControllerName);
                                case AdminTypes.SecondType:
                                    if (string.IsNullOrEmpty(model.Page) || string.IsNullOrEmpty(model.Uid))
                                        throw new ArgumentException(InternalResources.EmptyPageOrUid, "model");
                                    return RedirectToAction(model.Page, new { uid = model.Uid });
                                default: 
                                    break;
                            }
                        }
                        else
                        {
                            return RedirectToAction(_errorActionName);
                        }
                    }

    Лямбда в foreach очен смутила... Зачем?

    KonstantinK, 11 Апреля 2014

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