1. Ruby / Говнокод #7784

    −99

    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
    begin
        # etc
      rescue Exception => e
        case e
          when LinkedIn::Unauthorized
            account.invalidate_token if !account.invalid_token?
            raise InvalidTokenException.new(account.primary, provider_name)
          when LinkedIn::InformLinkedIn, LinkedIn::Unavailable  #LinkedIn::Unavailable represents 502..503 error codes & LinkedIn::InformLinkedIn represent 500
            raise UnexpectedApiException.new(provider_name)
          else
            handle_api_exception(e, e.message)
        end
      end

    элегантный отлов ексепшнов

    sumskyi, 06 Сентября 2011

    Комментарии (5)
  2. Pascal / Говнокод #7783

    +101

    1. 1
    2. 2
    3. 3
    i := -7; // если после этой строчки загнать в отладчик i shr 1, то отладчик покажет -4
    i := i shr 1; // после этой строчки i становится равно 2147483644
    i := (-7) shr 1; // после этой строчки i становится равно 4

    Delphi7 такой Delphi7...

    http://www.gamedev.ru/code/forum/?id=138759&page=25#m367
    Тарас любит дельфи.

    CPPGovno, 06 Сентября 2011

    Комментарии (150)
  3. JavaScript / Говнокод #7782

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    $("html > body a#order_check").click(function(){
    	if($("html > body a#order_check").is(".active") && !$("html > body div#order_check_b").is(":hidden")){
    		$("#order_check").removeClass("active")
    		$("#order_check_b").hide()
    	}
    	if(!$("html > body a#order_check").is(".active") && $("html > body div#order_check_b").is(":hidden")){
    		$("html > body #order_check").addClass("active")
    		$("html > body #order_check_b").show()
    	}
    })

    Connor, 06 Сентября 2011

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

    +164

    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
    >>>http://www.viva64.com/ru/a/0023/
    #ifdef DEBUG_MODE
      #define WriteLog printf
    #else
      inline int StubElepsisFunctionForLog(...) { return 0; }
      static class StubClassForLog {
      public:
        inline void operator =(size_t) {}
      private:
        inline StubClassForLog &operator =(const StubClassForLog &)
          { return *this; }
      } StubForLogObject;
      
      #define WriteLog \
        StubForLogObject = sizeof StubElepsisFunctionForLog
    #endif
      WriteLog("Coordinate = (%d, %d)\n", x, y);
    &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    ССЗБ?
    P.S #define WriteLog(...) 
                or 
        #define WriteLog __noop

    dc9e6c73ef5541f1, 05 Сентября 2011

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

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    case '16':
                dm("sixteenth");
                *b_=FULL_NOTE_DURATION_TCK/16 & 0x0F;
                *c_=(FULL_NOTE_DURATION_TCK/16 & 0xF0) >> 8;
            break;

    Человек парсил хексы из строки и задумался немного при копировании блоков в свитче.

    m08pvv, 05 Сентября 2011

    Комментарии (40)
  6. Python / Говнокод #7779

    −182

    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
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    HOME_DIR = "/home/user"
    
    LAST_DIR = HOME_DIR + "/.habralast"
    HTML_DIR = HOME_DIR + "/.habr.html"
    SHOW_FIRST_TIME = 5
    n = 1
    new_addr = 0
    count = 0
    
    if os.path.isfile(LAST_DIR):
    	fp = open(LAST_DIR, "r")
    	topic1 = fp.readline()
    	fp.close()
    	last_existed = 1
    else:
    	fp = open(LAST_DIR, "w")
    	topic1 = ""
    	fp.close()
    	last_existed = 0
    
    while(1):
    	if n == 1:
    		url = "habrahabr.ru"
    	else: url = "habrahabr.ru/page" + str(n) + "/"
    	wget = "wget " + url + " -O " + HTML_DIR
    	try:
    		os.system(wget)
    	except:
    		print "Cannot connect to server"
    		sys.exit()
    
    	index = open(HTML_DIR, "r")
    	s = '				  <a href="http://habrahabr.ru/'
    	ss = '						<a'
    	sss = '			<div class="published"><!-- Дата в формате ISO пихается в title -->'
    
    	for i in range(2000):
    		line = index.readline()
    		if s in line:
    			blog_s = line.find('">')
    			blog_e = line.find("</a>")
    			blog = line[blog_s+2:blog_e]
    
    			for j in range(50):
    				line = index.readline()
    				if ss in line:
    					topic_s = line.find('">')
    					topic_e = line.find("</a>")
    					topic = line[topic_s+2:topic_e]
    					if topic.find("</span>") != -1:
    						topic = topic[topic.find("</span>")+7:]
    					if topic != topic1:
    						if new_addr == 0:
    							fp = open(LAST_DIR, "w")
    							fp.write(topic)
    							fp.close()
    							new_addr = 1
    						print "Blog:\t" + blog
    						print "Topic:\t" + topic
    
    						for k in range(100):
    							line = index.readline()
    							if sss in line:
    								line = index.readline()
    								time_s = line.find("<span>")
    								time_e = line.find("</span>")
    								date = line[time_s+6:time_e]
    								print "Date:\t" + date + "\n"
    								notify = "notify-send 'Habrahabr.ru: " + blog + "' '" + topic + "\n<i>" + date + "</i>'"
    								os.system(notify)
    								count += 1
    								if count == SHOW_FIRST_TIME and last_existed == 0:
    									os.system("rm -f " + HTML_DIR)
    									sys.exit()
    								break
    						break
    					else:
    						os.system("rm -f " + HTML_DIR)
    						sys.exit()
    	n += 1
    	index.close()

    http://habrahabr.ru/blogs/python/127806/
    Мне нравится, когда программа/код полностью своя… понимаешь назначение каждой буквы и почему решение именно такое. В данном топике хочу предложить свой парсер топиков Хабрахабра на Python без сторонних библиотек.
    При появлении нового топика — всплывающее окошко сообщает об этом.

    alexoy, 05 Сентября 2011

    Комментарии (14)
  7. Куча / Говнокод #7777

    +126

    good luck, suckers!

    Lure Of Chaos, 05 Сентября 2011

    Комментарии (16)
  8. PHP / Говнокод #7776

    +146

    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
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    function define_week_start_and_end($what)
    {
            $time_stamp = time();
            $cur_day = getdate($time_stamp); 
            $month_day = $cur_day['mday'];        
            $month_num = $cur_day['mon'];        
            $year_num = $cur_day['year'];        
            $day_num = $cur_day['wday'];
            if ($day_num!=0)
            {
                    $week_start = $month_day-$day_num+1;
            }
            else
            {
                    $week_start = $month_day-6;
            }
            $week_end = $week_start+6;
            $week_start_month_num = $month_num;
            $week_end_month_num = $month_num;
            $week_start_year_num = $year_num;
            $week_end_year_num = $year_num;
            
            if ($week_start < 1)
            {
                    if ($month_num == 1)
                    {
                            $week_start_year_num--;
                            $week_start_month_num = 12;
                    }
                    else
                    {
                            $week_start_month_num--;
                    }
                    $last_day_in_previous_month = 31;
                    while (!checkdate ($week_start_month_num, $last_day_in_previous_month, $week_start_year_num))
                    {
                            $last_day_in_previous_month--;
                    }
                    $week_start += $last_day_in_previous_month;
            }
    
            $last_day_in_month = 31;
            while (!checkdate ($week_start_month_num, $last_day_in_month, $week_start_year_num))
            {
                    $last_day_in_month--;
            }
    
            if ($week_end > $last_day_in_month)
            {
                    if ($month_num == 12)
                    {
                            $week_end_year_num++;
                            $week_end_month_num = 1;
                    }
                    else
                    {
                            $week_end_month_num++;
                    }
                    $week_end = $week_end-$last_day_in_month;
            }
    
            $week_start_time_stamp = gmmktime (0, 0, 0, $week_start_month_num, $week_start, $week_start_year_num);
            $week_end_time_stamp = gmmktime (23, 59, 59,  $week_end_month_num, $week_end, $week_end_year_num);
    
            if ($what == "start")
            {
                    return $week_start_time_stamp;
            }
            else if ($what == "end")
            {
                    return $week_end_time_stamp;
            }
            return NULL;
    }

    определение конца недели

    Lure Of Chaos, 05 Сентября 2011

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

    +147

    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
    function ckos() {
            $so = $_SERVER['HTTP_USER_AGENT'];
            $windowsxp = preg_match("/windows nt 5.1/i", $so);
            $windowsxp2 = preg_match("/windows xp/i", $so);
            $linux = preg_match("/linux/i", $so);
            $windowsme = preg_match("/win 9x 4.90/i", $so);
            $windowsme2 = preg_match("/windows me/i", $so);
            $windows2k = preg_match("/windows nt 5.0/i", $so);
            $windows2kb = preg_match("/windows 2000/i", $so);
            $windowsnt = preg_match("/windows nt 3.1/i", $so);
            $windowsnt2 = preg_match("/windows nt 3.5.0/i", $so);
            $windowsnt3 = preg_match("/windows nt 3.5.1/i", $so);
            $windowsnt4 = preg_match("/windows nt 4.0/i", $so);
            $windows98 = preg_match("/windows 98/i", $so);
            $windows95 = preg_match("/windows 95/i", $so);
            if ($windowsxp == 1 or $windowsxp2 == 1) {
            $sys = "Windows XP";
            } else if ($linux == 1) {
            $sys = "Linux";
            } else if ($windowsme == 1 or $windowsme2 == 1) {
            $sys = "Windows ME";
            } else if ($windows2k == 1 or $windows2kb == 1) {
            $sys = "Windows 2000";
            } else if ($windowsnt == 1 or $windowsnt2 == 1 or $windowsnt3 == 1 or $windowsnt4 == 1) {
            $sys = "Windows NT";
            } else if ($windows98 == 1 and $windowsme != 1) {
            $sys = "Windows 98";
            } else if ($windows95 == 1) {
            $sys = "Windows 95";
            } else {
            $sys = "Not identified";
            }
            return($sys);
    }

    вариация на тему броузеросниффера

    Lure Of Chaos, 05 Сентября 2011

    Комментарии (0)
  10. Си / Говнокод #7774

    +107

    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
    char *getcwd(char *buf, size_t size)
    {
    	if (!buf)
    	{
    		errno = EFAULT;
    		return NULL;
    	}
    	if (size < 2)
    	{
    		errno = ERANGE;
    		return NULL;
    	}
    	buf[0] = '.';
    	buf[1] = '\0';
    	return buf;
    }

    -- Где мы находимся, Сэр?
    -- В корзине воздушного шара.

    P.S. Ссылка на коммит - http://git.altlinux.org/people/ldv/packages/?p=girar.git;a=commit;h=3ff0ce7b00907ba1 dce6406f6

    raorn, 05 Сентября 2011

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