1. JavaScript / Говнокод #16141

    +156

    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
    (function(G, D) {
        "use strict";
        var $ = G.jQuery,
            listener;
    
        function addListener(elem, fn) {
            function handler(event) {
                event = event || G.event;
                var dx = event.DeltaX || event.wheelDeltaX || event.detail || 0,
                    dy = event.DeltaY || event.wheelDeltaY || event.detail || 0;
                event.dx = dx === 0 ? 0 : dx / Math.abs(dx);
                event.dy = dy === 0 ? 0 : dy / Math.abs(dy);
                fn(event);
            }
    
            if (elem.addEventListener) {
                if (D.hasOwnProperty('onwheel')) { //Modern browsers
                    listener = "wheel";
                } else if (D.hasOwnProperty('onmousewheel')) { //Old browsers
                    listener = "mousewheel";
                } else { //FF<17
                    listener = "MozMousePixelScroll";
                }
                elem.addEventListener(listener, handler, false);
            } else { //IE<9
                elem.attachEvent("onmousewheel", handler);
                listener = "onmousewheel";
            }
        }
    
        function removeListener(elem) {
            if (elem.removeEventListener) {
                elem.removeEventListener(listener);
            } else {
                elem.detachEvent(listener);
            }
        }
    
        $.fn.mousewheel = function(fn) {
            return this.each(function() {
                addListener(this, fn);
            });
        };
        $.fn.unmousewheel = function(fn) {
            return this.each(function() {
                removeListener(this, fn, false);
            });
        };
    }(this, document));

    Написал плагин для jQuery, который цепляет на элементы обработчик события вращения колесика мыши. Что скажете? Как бы вы написали функцию unmousewheel()?

    dunmaksim, 10 Июня 2014

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

    +5

    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
    template <class ResultBinaryFunc, class BinaryFunc1, class BinaryFunc2>
    class complex_binary_compose: public std::binary_function<BinaryFunc1::first_argument_type,
    														  BinaryFunc1::second_argument_type,
    														  ResultBinaryFunc::result_type>
    {
    public:
    	complex_binary_compose(const ResultBinaryFunc & BF, const BinaryFunc1 & UF1, const BinaryFunc2 & UF2) :
    	  _bf(BF), _f1(UF1), _f2(UF2) {}
    	result_type operator()(first_argument_type arg1, second_argument_type arg2)
    	{
    		return _bf(_f1(arg1, arg2), _f2(arg1, arg2));
    	}
    private:
    	ResultBinaryFunc _bf;
    	BinaryFunc1 _f1;
    	BinaryFunc2 _f2;
    };
    
    template <class ResultBinaryFunc, class BinaryFunc1, class BinaryFunc2>
    complex_binary_compose<ResultBinaryFunc, BinaryFunc1, BinaryFunc2>
    	complex_compose2(const ResultBinaryFunc & BF, const BinaryFunc1 & UF1, const BinaryFunc2 & UF2)
    {
    	return complex_binary_compose<ResultBinaryFunc, BinaryFunc1, BinaryFunc2>(BF, UF1, UF2);
    }

    Чтобы было удобно применять stl алгоритмы.

    laMer007, 10 Июня 2014

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

    +8

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    # ifndef BOOST_NO_PARTIAL_SPECIALIZATION
          , check<Model>
    # else
          , check<failed ************ Model::************>
    # endif

    LispGovno, 10 Июня 2014

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

    +98

    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
    procedure TForm1.FormCreate(Sender: TObject);
    var
      H: THandle;
      R: TRect;
      appbardata: tappbardata;
    
    begin
    
      sx := 0;
      sy := 0;
      ax := 0;
      ay := 0;
      sh := GetSystemMetrics(SM_CYSCREEN);
    
      ZeroMemory(@appbardata, SizeOf(tappbardata));
      SHAppbarmessage(5, appbardata);
    
      If appbardata.rc.TopLeft.X > 1 then
      begin
        ax := appbardata.rc.BottomRight.X - appbardata.rc.TopLeft.X;
        ax:=ax+4;
      end
      else
      ax:=6;
    
      If appbardata.rc.TopLeft.y > 1 then
      begin
        ay := appbardata.rc.BottomRight.y - appbardata.rc.TopLeft.y;
      ay:=ay+4;
      end
      else
      ay:=6;
    
      sx := (GetSystemMetrics(SM_CXSCREEN)-form1.ClientWidth-ax);
      sy := (GetSystemMetrics(SM_CYSCREEN)-form1.ClientHeight-ay);
    
      Form1.left := sx;
      Form1.Top :=sy;
    
    end;

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

    brutushafens, 10 Июня 2014

    Комментарии (11)
  5. PHP / Говнокод #16137

    +157

    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
    function add() {	
    	global $MovRow, $Array_html, $Array_desc, $Array_mov, $Opera;
    	if ($MovRow==4) return;
    	if ($Opera) {
    		for ($i=0; $i<5; $i++) {
    			$Array_html[$i]=str_replace("padding-bottom: 3px;", "", $Array_html[$i]);
    		}
    	}
    
    	for ($i=0; $i<5; $i++) {	
    		if ($Array_mov[$i]<=5) {    	
    			if ($MovRow==5&&$Array_mov[$i]==4)
    				$Array_html[$i]=str_replace($Array_desc[$i], $Array_desc[$i]."<br><br>", $Array_html[$i]);
    			else if ($MovRow==5&&$Array_mov[$i]==3)
    				$Array_html[$i]=str_replace($Array_desc[$i], $Array_desc[$i]."<br><br><br>", $Array_html[$i]);
    			
    			else if ($MovRow==6&&$Array_mov[$i]==4) {	
    			 	$Array_html[$i]=str_replace($Array_desc[$i], $Array_desc[$i]."<br><br><br>", $Array_html[$i]);
    			}
    			else if($MovRow==6&&$Array_mov[$i]==5) {
    				if ($Array_desc[$i][strlen($Array_desc[$i])-1]=='>'&&$Array_desc[$i][strlen($Array_desc[$i])-2]=='r') 
    					$Array_html[$i]=str_replace($Array_desc[$i], $Array_desc[$i]."<br>", $Array_html[$i]);		
    				else $Array_html[$i]=str_replace($Array_desc[$i], $Array_desc[$i]."<br><br>", $Array_html[$i]);				
    			}
    			else if($MovRow==7&&$Array_mov[$i]==4)
    				$Array_html[$i]=str_replace($Array_desc[$i], $Array_desc[$i]."<br><br><br><br>", $Array_html[$i]);
    			else if($MovRow==7&&$Array_mov[$i]==5)
    				$Array_html[$i]=str_replace($Array_desc[$i], $Array_desc[$i]."<br><br><br>", $Array_html[$i]);	
    			else if($MovRow==7&&$Array_mov[$i]==6)
    				$Array_html[$i]=str_replace($Array_desc[$i], $Array_desc[$i]."<br><br>", $Array_html[$i]);
    		}
    	}
    }

    наткнулся на этот код, и что-то нехватает мозгов, чтобы понять, что это, для чего это, и где это чудо применяется =((

    govnokoder2, 10 Июня 2014

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

    −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
    Function Розница()
    	If Покупатель.Выбран() = 1 Then
    		If Покупатель.Вид() = "ПунктДоставки" Then
    			If Покупатель.Владелец.ТипЦенОтгрузки = Enum.ТипыОтпускныхЦен.Розничные Then
    				Return 1;
    			Else
    				Return 0;
    			EndIf;
    		Else
    			Return 0;
    		EndIf;
    	Else
    		Return 0;
    	EndIf;
    EndFunction

    Сегодня наткнулся на такой вот кусок кода

    TekhnoLife, 10 Июня 2014

    Комментарии (17)
  7. Python / Говнокод #16135

    −92

    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
    # @models.permalink
        def get_absolute_url(self):
            def urls_r(urlresolver, prefix = ''):
                urllist = []
                urlname = []
                for i in urlresolver:
                    if str(type(i)) == "<class 'django.core.urlresolvers.RegexURLResolver'>":
                        url_return = urls_r(i.url_patterns, i.regex.pattern)
                        urllist += url_return[0]
                        urlname += url_return[1]
                    else:
                        urllist.append(prefix + i.regex.pattern[1:])
                        urlname.append(i.name)
                return urllist, urlname
    
            from bizon.urls import urlpatterns
            from code.core.urls import code
    
            urllist, urlname = urls_r(urlpatterns)
    
            url = ''
            try:
                url = urllist[urlname.index('news_show')]
            except:
                print sys.exc_info()
    
            absolute_url = url.replace('^', '/').replace('(%s)' %code, '%s').replace('(\\d+)', '%d').replace('$', '') %(self.language, self.pk)
            return absolute_url

    сюрпризы в коде проектов от бывших коллег, феерией было видеть рядом с этим кодом маленькую функцию:
    def get_link(self):
    return '/ru/news/information/new/%d/' % (self.id)

    oxymoron42, 09 Июня 2014

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

    +79

    1. 1
    2. 2
    3. 3
    4. 4
    List<SomeType> list = ...;
    ...
    if (list.size() < 0)
        return true;

    а вдруг?

    evg_ever, 09 Июня 2014

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    if ($params['sendNow'] !== true)
    	return $this->addToSendingEmailList($params);
    else
    	return $this->send($params);

    Творческая муза сумеречного украинского гения не может проверить условие как нормальный, белый человек.

    solbianca, 09 Июня 2014

    Комментарии (6)
  10. JavaScript / Говнокод #16131

    +149

    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
    (function (G) {
        "use strict";
        var $ = G.jQuery;
    
        if ($ === undefined) {
            G.console.log("jQuery not found.");
            return;
        }
    
        function resizeContainer() {
            $("div.container").outerHeight($(G).innerHeight());
        }
    
        $(G).resize(resizeContainer);
    
        resizeContainer();
    }(this));

    Вот тут: http://jsfiddle.net/dunmaksim/NWN5f/3/ написал небольшой код, который позволяет сделать разметку на странице в стиле ModernUI. Высота контейнера автоматом подгоняется под высоту окна. Код прогнал через JSLint. Решение ориентировано на новые браузеры. Какие будут замечания? Замыкание использую для ограничения пространства имён.

    dunmaksim, 09 Июня 2014

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