1. Куча / Говнокод #11410

    +127

    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
    $ cat macro.c
    # define M3(x, y, z) x + y + z
    # define M2(x, y) M3(x, y)
    # define P(x, y) {x, y}
    # define M(x, y) M2(x, P(x, y))
    M(a, b)
    
    $ gcc-4.5  -E  macro.c
    # 1 "macro.c"
    # 1 "<built-in>"
    # 1 "<command-line>"
    # 1 "macro.c"
    
    a + {a + b}
    $

    Какой выхлоп по разным версиям cl?
    Отсюда: http://stackoverflow.com/questions/11469462/difference-between-gcc-and-microsoft-preprocessor

    sayidandrtfm, 13 Июля 2012

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

    −101

    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
    -(void)showRetrySuccess:(NSString*)requestUrlString
    {
    	NSString *statusMessage = @"";
    	
    	if([requestUrlString rangeOfString:kFollowFriendsRequest].location != NSNotFound)
    	{
    		statusMessage =@"Your follow friend request completed successfully.";
    	}
    	else
    		if([requestUrlString rangeOfString:kUnfollowFriendsRequest].location != NSNotFound)
    		{
    			statusMessage =@"Your unfollow friend request completed successfully.";
    		}else
    			if([requestUrlString rangeOfString:kDeleteContentService].location != NSNotFound)
    			{
    				statusMessage =@"Your delete request completed successfully.";
    			}else
    				if([requestUrlString rangeOfString:kSavePostService].location != NSNotFound)
    				{
    					statusMessage =@"Your save post request completed successfully";
    				}else
    					if([requestUrlString rangeOfString:kSaveMediaService].location != NSNotFound)
    					{
    						statusMessage =@"Your save request  completed successfully";
    					}else
    						if([requestUrlString rangeOfString:kSaveTwitterDirectMessage].location != NSNotFound)
    						{
    							statusMessage =@"Your request completed successfully.";
    						}else
    							if([requestUrlString rangeOfString:kSaveTwitterResponse].location != NSNotFound)
    							{
    								statusMessage =@"Your request completed successfully.";
    							}
    							else
    								if([requestUrlString rangeOfString:kAddCommentService].location != NSNotFound)
    								{
    									statusMessage =@"Your post comment request completed successfully.";
    								}
    	UIAlertView * alert = [[[UIAlertView alloc] initWithTitle:@"" message:statusMessage delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]autorelease];
    	[alert show];
    	
    	
    }

    GLvRzZZ, 13 Июля 2012

    Комментарии (13)
  3. PHP / Говнокод #11407

    −63

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    <?php
    
    global $KONKURS_ADMIN;
    $KONKURS_ADMIN=array('[email protected]',
                         '[email protected]',
                         '[email protected]');

    распределение привелегий в системе епта.

    brainstorm, 12 Июля 2012

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

    +134

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    for (int i = 0; i < e.Row.Cells.Count; i++)
                        {
                            ....................................................
                            if ((i == 1) || (i == 4) || (i == 5) || (i == 6) || (i == 7) || (i == 8) || (i == 9) || (i == 10) || (i == 11) || (i == 12))//11 12
    .............................................

    Indian style..
    no comments

    Nataly, 12 Июля 2012

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

    −116

    1. 1
    2. 2
    DECLARE @SysDatoFull datetime
    SET @SysDatoFull = CAST(YEAR(getdate()) as varchar) + RIGHT('00'+CAST(MONTH(getdate()) as varchar), 2) + RIGHT('00'+CAST(DAY(getdate()) as varchar), 2)

    SQL, даты... nuff said
    Вспомнился http://govnokod.ru/9211. Может есть где-то специальное учебное заведение, где обучают таким техникам?

    DBdev, 12 Июля 2012

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

    +70

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if (s.startsWith("job."))
    {
        s = s.trim().replaceFirst("job\\.", "");
        String name = s.split("\\.")[0];
        String paramName = s.split("\\.")[1];
        // Ещё немного говнокода, не сильно интересного
    }

    konsoletyper, 12 Июля 2012

    Комментарии (1)
  7. Java / Говнокод #11403

    +68

    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
    public abstract class AbstractJob implements Job
    {
        private static ConcurrentHashMap<String, Boolean> mutexes = new ConcurrentHashMap<String, Boolean>();
    
        public abstract void job(JobExecutionContext jec, Logger logger) throws JobExecutionException;
    
        public void execute(JobExecutionContext jec) throws JobExecutionException
        {
            Logger logger = LoggerLocator.getLogger(this.getClass().getSimpleName());
            if (mutexes.containsKey(this.getClass().getSimpleName()))
            {
                logger.info("Job "+jec.getJobDetail().getName()+" already running");            
            }
            else
            {
                try
                {
                    mutexes.put(this.getClass().getSimpleName(), true);
                    job(jec, logger);
                }
                finally
                {
                    mutexes.remove(this.getClass().getSimpleName());
                }
            }
        }
    }

    Race condition и передача логгера в параметрах очень порадовали. А ведь вместо написания кривого велосипеда можно было просто @DisallowConcurrentExecution

    konsoletyper, 12 Июля 2012

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

    +76

    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
    public static void main(String[] args) {      
    List<String> parameters = new ArrayList<String>();
    
    if (args.length > 1) {
             int count = 0;
             for (String arg : args) {
                if (count == 0) {
                   count++;
                   continue;
                }
                parameters.add(arg);
             }
    }
    ...

    Ах Индия, Индия...
    (все имена переменных изменены, все совпадения - исключительно случайны)

    Taru4, 12 Июля 2012

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

    +117

    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
    public class Foo { 
     public Foo() {
      System.out.println("constructing foo: " + this);
      throw new RuntimeException();
     }
     public void doEvil() {
      System.out.println("Evil!Evil!Evil");
     }
    }
    
    public class MyFoo extends Foo {
     public static Foo x;
     @Override
     protected void finalize() throws Throwable {
      x = this;
     } 
    }
    
    try {
     Foo x = new MyFoo();
    } catch(Exception e) {
     System.out.println(""+e);
    }
    System.gc();
    System.runFinalization();
    System.out.println("MyFoo instance: " + MyFoo.x);
    MyFoo.x.doEvil();

    Вот так бесстрашные хакеры получают доступ к методу экземпляра объекта, конструктор которого выбрасывает исключение, а потом жалуются, что, мол, Java - решето.

    А теперь вопрос на засыпку: как сделать то же самое, не используя finalize и gc?

    someone, 12 Июля 2012

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

    +54

    1. 1
    2. 2
    //Вычисляем предыдущий месяц
    $bdate = q1("SELECT '$cdate' - INTERVAL 1 MONTH");

    wds, 12 Июля 2012

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