1. Список говнокодов пользователя krypt

    Всего: 30

  2. Objective C / Говнокод #18351

    −387

    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
    - (BOOL)validateLoginData
    {
        self.phone = [Utils phoneFromFormat:[_loginMaskField maskedTextField].text];
        
        if(![Utils validatePhone:self.phone]) {
            [_loginMaskField shakeView]; // <-- Здесь автор анимирует вьюху ввода телефона.
            return NO;
        }
        <...>
    }
    
    #pragma mark - Telephone mask
    + (NSString *)phoneFromFormat:(NSString *)format
    {
        int d = 1;
        if(format.length == kPhonelength + d) //17
        {
            const char *cFormatString = [format UTF8String];
            char *phoneString = malloc(10 * sizeof(char));
            phoneString[0] = cFormatString[5 + d];
            phoneString[1] = cFormatString[6 + d];
            phoneString[2] = cFormatString[7 + d];
            phoneString[3] = cFormatString[9 + d];
            phoneString[4] = cFormatString[10 + d];
            phoneString[5] = cFormatString[12 + d];
            phoneString[6] = cFormatString[13 + d];
    //        phoneString[7] = cFormatString[15];
    //        phoneString[8] = cFormatString[16];
    //        phoneString[9] = '\0';
            phoneString[7] = '\0';
            NSString *phone = [NSString stringWithUTF8String:phoneString];
            free(phoneString);
            return phone;
        }
        else {
            return nil;
        }
    }
    
    + (BOOL)validatePhone:(NSString *)phone
    {
        if(phone.length == kPhoneCountDigits)
        {
            NSString *regexpString = @"^[0-9][0-9]*$";
            NSPredicate *test = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regexpString];
            return [test evaluateWithObject:phone];
        }
        else {
            return NO;
        }
    }

    Валидируем введённый номер телефона. Кажется, я нашёл нового Евгения.

    krypt, 16 Июня 2015

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

    −401

    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
    - (void) doSomething {
        <...>
        if (error.code != NSURLErrorNotConnectedToInternet && error.code != NSURLErrorCancelled && error.code != NSURLErrorTimedOut) {
            @synchronized (self.failedURLs) {
                
                {
                    // javascript-style...
                    char* xcEnv = getenv("XcodeColors");
                    BOOL useColors = (xcEnv && !strcmp(xcEnv, "YES"));
                    NSString *colorWrapper;
                    if (useColors)
                        colorWrapper = @"\033[fg0,153,0;%@\033[;";
                    else
                        colorWrapper = @"%@";
    
                    void (^colorLog)(NSString *format, ...) = ^(NSString *format, ...)
                    {
                        va_list args;
                        va_start(args, format);
                        NSLog(colorWrapper, [[NSString alloc] initWithFormat:format arguments:args]);
                        va_end(args);
                    };
                    
                    colorLog(@"SDWebImageManager download failed");
                    colorLog(@"\turl: %@", url.absoluteString);
                    colorLog(@"\terror: %@", [error description]);
                }
                
                
                [self.failedURLs addObject:url];
            }
        }
        <...>
    }

    Когда очень хочется извратиться

    krypt, 01 Мая 2015

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

    −415

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    #pragma mark - class methods
    + (CGFloat)cellHeightForCategory:(PostCategory *)category subscribed:(BOOL)subscribed
    {
        static CategoryTableViewCell *cell = nil;
        if(!cell) {
            cell = [[[UINib nibWithNibName:NSStringFromClass([self class]) bundle:[NSBundle mainBundle]] instantiateWithOwner:nil options:nil] firstObject];
        }
        [cell setupCellForCategory:category subscribed:subscribed];
        [cell layoutIfNeeded];
        return [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingExpandedSize].height;
    }

    Задаёмся мы тут вопросом, почему это таблица загрузке данных зависает на 5 секунд...

    krypt, 17 Апреля 2015

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

    +94

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    combinations.AddRange(combinations4);
                combinations.AddRange(from combination5 in combinations5
                                      where
                                          (from combination4 in combinations4
                                           where
                                               (from c4class in combination4.Classes
                                                where !combination5.Classes.Contains(c4class)
                                                select c4class).Count() == 0
                                           select combination4).Count() == 0
                                      select combination5);

    Теперь у меня есть ачивка "сделать через LINQ не смотря ни на что".
    Тому, кто поймёт, что же здесь происходит - достанется воображаемый пряник.

    krypt, 24 Января 2015

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

    −169

    1. 1
    2. 2
    3. 3
    4. 4
    + (id) itemWithImage:(UIImage *)image_ // todo: WTF?
    {
        return [[[self alloc] initWithImage:image_] autorelease];
    }

    Концентрация бреда стремится с 100%. Видимо в тот день я особенно сильно не выспался...
    https://github.com/krypt-lynx/KLTileView/commit/468bc14dd0589d1dc9b08c32eb4da490965d5723

    krypt, 05 Февраля 2014

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

    −131

    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
    [self
            performSelectorOnMainThread: @selector(_blockCaller:)
            withObject: ^{
                [self _reportAchievement:achievement listener:listener];
            }
            waitUntilDone: YES
        ];
    
    <...>
    
    - (void) _blockCaller:(void(^)())blockHandler {
        blockHandler();
    }

    GCD не в моде.

    krypt, 23 Января 2014

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

    −110

    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
    struct testStruct
    {
        char test[1024*1024*110];
    };
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        logMemUsage();
        testStruct* test = new testStruct();
        NSLog(@"test mem: %d", sizeof(test));
        logMemUsage();
        delete test;
        logMemUsage();
    
       <...>
    }

    Особенности управления памятью в iOS 6.
    Без этого фрагмента на слабых устройствах может ВНЕЗАПНО понизить объём доступной для приложения памяти со 120 до 90мб.

    Почему-то не порнографических ассоциаций не возникает.

    krypt, 10 Декабря 2013

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

    −115

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    - (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
    
    return (NSUInteger)[application supportedInterfaceOrientationsForWindow:window] | (1<<UIInterfaceOrientationPortrait);
    
    }

    Самый укуренный способ определить флаги UIInterfaceOrientation, который я видел.
    http://stackoverflow.com/questions/14533521/game-center-causing-uiapplicationinvalidinterfaceorientation ?answertab=votes#tab-top

    krypt, 06 Декабря 2013

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

    +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
    void gte::loadProps(const char* fileName){
        
    	propMap.clear();
    	s3eFile* g_FileHandle = s3eFileOpen(fileName, "rb");
    	while (!s3eFileEOF(g_FileHandle)) {
    		char c1=0;
    		char c2=0;
    		s3eFileRead(&c1, 1, 1, g_FileHandle);
    		s3eFileRead(&c2, 1, 1, g_FileHandle);
    		int len = 0;
    		len = (c2 & 0xFF) | ( (c1  & 0xff) << 8);
    		if (len==0) continue;
    		char* textData = new char[len+1];
    		textData[len] = 0;
    		s3eFileRead(textData, sizeof(char), len, g_FileHandle);
    		char* pos = strchr(textData, ':');
    		string key(textData, pos - textData);
    		string value(pos + 2, textData + len - pos - 2);//(textData,
    		propMap[key] = value;
    	}
    
    	s3eFileClose(g_FileHandle);
    }

    Чтение строки, первые 2 байта - длинна.
    Проект использует Marmalade SDK.

    krypt, 27 Сентября 2013

    Комментарии (47)
  11. Lua / Говнокод #13425

    −86

    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
    ['run'] = function(num, skipt)
            if num > 0 and num <= table.maxn(_G.levels_code.list) then
                if tbl_save._.options.tutorial then
                    if ((_G.levels_code.list[num][2] == 1 and _G.levels_code.list[num][1] == 1) or (_G.levels_code.list[num][2] == 1 and _G.levels_code.list[num][1] == 0)) and not skipt then
                        game.Mission.instance():runLevel(fld.levelTutorial, 1)
                        mawidgets._.hud.action.set_lvl(fld.levelTutorial, 1)
                        mawidgets._.tips_widget.action.set('tutorial')
                        _G.widget_type = 'tutorial';
                        mawidgets._.tutorial.texts.tutorial_text:setText("Tutorial1")
                    elseif ((_G.levels_code.list[num][2] == 2 and _G.levels_code.list[num][1] == 1) or (_G.levels_code.list[num][2] == 5 and _G.levels_code.list[num][1] == 0)) and not skipt then
                        game.Mission.instance():runLevel(fld.levelTutorial, 2)
                        mawidgets._.hud.action.set_lvl(fld.levelTutorial, 2)
                        mawidgets._.tips_widget.action.set('tutorial')
                        _G.widget_type = 'tutorial';
                        mawidgets._.tutorial.texts.tutorial_text:setText("Tutorial2")
                    elseif ((_G.levels_code.list[num][2] == 3 and _G.levels_code.list[num][1] == 1) or (_G.levels_code.list[num][2] == 11 and _G.levels_code.list[num][1] == 0)) and not skipt then
                        game.Mission.instance():runLevel(fld.levelTutorial, 3)
                        mawidgets._.hud.action.set_lvl(fld.levelTutorial, 3)
                        mawidgets._.tips_widget.action.set('tutorial')
                        _G.widget_type = 'tutorial';
                        mawidgets._.tutorial.texts.tutorial_text:setText("Tutorial3")
                    elseif ((_G.levels_code.list[num][2] == 5 and _G.levels_code.list[num][1] == 1) or (_G.levels_code.list[num][2] == 15 and _G.levels_code.list[num][1] == 0)) and not skipt then
                        game.Mission.instance():runLevel(fld.levelTutorial, 4)
                        mawidgets._.hud.action.set_lvl(fld.levelTutorial, 4)
                        mawidgets._.tips_widget.action.set('tutorial')
                        _G.widget_type = 'tutorial';
                        mawidgets._.tutorial.texts.tutorial_text:setText("Tutorial4")
                    elseif ((_G.levels_code.list[num][2] == 6 and _G.levels_code.list[num][1] == 1) or (_G.levels_code.list[num][2] == 16 and _G.levels_code.list[num][1] == 0)) and not skipt then
                        game.Mission.instance():runLevel(fld.levelTutorial, 5)
                        mawidgets._.hud.action.set_lvl(fld.levelTutorial, 5)
                        mawidgets._.tips_widget.action.set('tutorial')
                        _G.widget_type = 'tutorial';
                        mawidgets._.tutorial.texts.tutorial_text:setText("Tutorial5")
                    else
                        mawidgets._.tips_widget.action.set('clear')
                        _G.widget_type = 0;
                        mawidgets._.tutorial.action.hide()
                        if _G.levels_code.list[num][1] == 2 and tbl_save._.options.tutorial_bonus then
                            mawidgets._.tutorial.texts.tutorial_text:setText("Tutorial6")
                        end
                        game.Mission.instance():runLevel(_G.levels_code.list[num][1], _G.levels_code.list[num][2])
                        mawidgets._.hud.action.set_lvl(_G.levels_code.list[num][1], _G.levels_code.list[num][2])
                    end
                else
                    mawidgets._.tips_widget.action.set('clear')
                    tbl_save._.options.tutorial_bonus = false
                    data.WriteDataInSlot(tbl_save._)
                    mawidgets._.tutorial.action.hide()
                    game.Mission.instance():runLevel(_G.levels_code.list[num][1], _G.levels_code.list[num][2])
                    mawidgets._.hud.action.set_lvl(_G.levels_code.list[num][1], _G.levels_code.list[num][2])
                end
            else print('_G.levels_code.run -> bad level num: ', num) end
        end;

    Игра - головоломка, язык этого гк - Lua, в проекте - ~ 26 000 файлов.
    Нет в жизни счастья.

    krypt, 15 Июля 2013

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