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

    Всего: 202

  2. ActionScript / Говнокод #17062

    −91

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    [Embed(source = "/assets/video_preview/VideoSlideThumb.png")]
    public static const VIDEO_PREVIEW: Class;
    
    public static function get videoPreviewBD(): BitmapData
    {
    	var image : Bitmap = new VIDEO_PREVIEW ();
    	return image.bitmapData.clone();		
    }

    Когда-то давно бытовала такая пословица: What Intel giveth Microsoft taketh away. Но похоже что переходное красное знамя подхватили и в других организациях по-меньше.

    wvxvw, 04 Ноября 2014

    Комментарии (6)
  3. ActionScript / Говнокод #16803

    −88

    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
    private function onBuletSort(value:Boolean):void
    {
    	var value:Boolean=value;
    
    	var result:String='';
    	var clearText:String=workingText;
    	var pattern:RegExp = /\r\n/g;
    	clearText=clearText.replace(pattern,'\n');
    
    	
    	var dividedString:Array = clearText.split('\n');
    
    	
    	for(var i:int = 0; i < dividedString.length; i++) {
    
    		if ( dividedString[i].substring(0,3)==(i+1)+". "){
    			dividedString[i]= dividedString[i].substring(3,dividedString[i].length);
    			dividedString[i]="• "+ dividedString[i];
    
    		}else if(!value &&  dividedString[i].substring(0,2)=="• "){
    			dividedString[i]= dividedString[i].substring(2,dividedString[i].length);
    		}else if(value &&  dividedString[i].substring(0,2)!="• "){
    			dividedString[i]="• "+ dividedString[i];
    		}
    		
    		
    		if(i!=dividedString.length-1){
    			result +=  dividedString[i] + '\r\n';
    			
    		}else{
    			result +=  dividedString[i];
    			
    		}
    	}
    
    	workingText=result;
    
    }

    Собственно, меня порадовало var value:Boolean=value; Остальное тоже плохо, но не на столько, чтобы быть очень смешным.

    wvxvw, 06 Октября 2014

    Комментарии (15)
  4. ActionScript / Говнокод #16784

    −94

    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
    private function getYouTubeVideoIdFromURL (url:String):String {
    	if (URLUtil.isHttpsURL(url)||URLUtil.isHttpURL(url)) {
    		var startIndex:int = url.indexOf("v=")+2;
    		var endIndex:int = url.indexOf("&");
    		if (endIndex>startIndex) {
    			url = url.slice(startIndex, endIndex); 
    		}
    		else {
    			url = url.slice(startIndex);
    		}
    	}
    	return url;
    }

    Целый отдел над этой функцией работал.

    wvxvw, 01 Октября 2014

    Комментарии (7)
  5. bash / Говнокод #16780

    −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
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    ...
    %install
    %{__rm} -rf %{buildroot}
    mkdir -m 755 -p %{buildroot}%{_datadir}/common-lisp/source/%{name}
    for s in $(find -regex '.+\.\(lisp\|asd\|org\)$'); do
      install -D -m 644 $s %{buildroot}%{_datadir}/common-lisp/source/%{name}
    done;
    mkdir -m 755 -p %{buildroot}/etc/common-lisp/source-registry.conf.d
    for las_conf in $(ls %{buildroot}/etc/common-lisp/source-registry.conf.d | tail -n 1); do
        for last in $(echo "${last_conf}" | grep -oP '^[0-9]+'); do
            for cl_prefix in $(echo "${last}+1" | bc); do
                echo '(:include "/usr/share/common-lisp/source/%{name}/")' > \
    	            "%{buildroot}/etc/common-lisp/source-registry.conf.d/${cl_prefix}-%{name}.conf"
                install -m 644 ${cl_prefix}-%{name}.conf %{buildroot}/etc/common-lisp/source-registry.conf.d
            done;
        done;
    done;
    
    %files
    %defattr(-,root,root,-)
    %{_datadir}/common-lisp/source/%{name}/*
    ...

    И ведь что показательно, работает!

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

    wvxvw, 30 Сентября 2014

    Комментарии (26)
  6. ActionScript / Говнокод #16753

    −87

    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
    /src/com/<секрет>/client/view/components/movicons/ImageHolderView.mxml
     			protected function onFlipRollOver(event:MouseEvent):void
     			{
    -				if ( (track && track.slide &&(track.slide.selectedTrack==null || (holderData && track.slide.selectedTrack.sprite!=holderData)))
    -					|| (  holderData && holderData.sourceUrl && holderData.getName()==ImageSpriteVO.EMPTY_IMAGE_NAME) 
    +				if (((track && track.slide && (track.slide.selectedTrack==null || (holderData && track.slide.selectedTrack.sprite!=holderData)))
    +					|| (  holderData && holderData.sourceUrl && holderData.getName()==ImageSpriteVO.EMPTY_IMAGE_NAME)) 
     					&& <секрет>.slidesMode 
     					&& !<секрет>.fullScreenMode)
     				{
    
    /src/com/<секрет>/client/view/components/movicons/ImageView.mxml
     			protected function onFlipRollOver(event:MouseEvent):void
     			{
    -				if ( (track && track.slide &&(track.slide.selectedTrack==null || (holderData && track.slide.selectedTrack.sprite!=holderData)))
    -					|| (  holderData && holderData.sourceUrl && holderData.getName()==ImageSpriteVO.EMPTY_IMAGE_NAME)
    +				if ( ((track && track.slide &&(track.slide.selectedTrack==null || (holderData && track.slide.selectedTrack.sprite!=holderData)))
    +					|| (  holderData && holderData.sourceUrl && holderData.getName()==ImageSpriteVO.EMPTY_IMAGE_NAME))
     					&& <секрет>.slidesMode 
     					&& !<секрет>.fullScreenMode)
     				{

    Тяжело было прочитать, попросили поправить, поправил.

    wvxvw, 23 Сентября 2014

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

    +127

    1. 1
    https://www.marshut.net/knqkut/dijkstra-s-methodology-for-secure-systems-development.html

    Учитесь троллить! (Я подписался на рассылку запостить пару багов, а тут...)

    wvxvw, 20 Сентября 2014

    Комментарии (15)
  8. ActionScript / Говнокод #16727

    −84

    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
    public function isContainsHiddenId(hiddenId: String): Boolean
     		{
    -			for (var index: int = 0; index < hiddenIds.length; index++)
    +			/*for (var index: int = 0; index < hiddenIds.length; index++)
     			{
     				if (hiddenIds[index] == hiddenId)
     				{
     					return true;
     				}
     			}
    -			return false;
    +			return false;*/
    +			return hiddenIds.indexOf(hiddenId) == -1 ? false : true;

    От автора MathAndGeometryUtils, после того, как ему посоветовали использовать indexOf.

    wvxvw, 19 Сентября 2014

    Комментарии (22)
  9. Куча / Говнокод #16690

    +125

    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
    82. 82
    (closer-mop:defclass virtual-metaclass (closer-mop:standard-class) ())
    
    (closer-mop:defclass virtual-slot-definition
        (closer-mop:standard-slot-definition)
      ((function :initarg :function 
                 :accessor virtual-slot-definition-function)))
    
    (defmethod slot-definition-allocation ((slotd virtual-slot-definition))
      :virtual)
    
    (defmethod (setf slot-definition-allocation) 
        (allocation (slotd virtual-slot-definition))
      (unless (eq allocation :virtual)
        (error "Cannot change the allocation of a ~S"
               'virtual-direct-slot-definition)) allocation)
    
    (closer-mop:defclass virtual-direct-slot-definition 
        (closer-mop:standard-direct-slot-definition
         virtual-slot-definition) ())
    
    (defmethod closer-mop:direct-slot-definition-class
        ((class virtual-metaclass) &rest initargs)
      ;; Use virtual-direct-slot-definition if appropriate.
      (if (eq (getf initargs :allocation) :virtual)
          (find-class 'virtual-direct-slot-definition)
          (call-next-method)))
    
    (closer-mop:defclass virtual-effective-slot-definition 
        (closer-mop:standard-effective-slot-definition
         virtual-slot-definition) ())
    
    (defmethod closer-mop:effective-slot-definition-class 
        ((class virtual-metaclass) &rest initargs)
      ;; Use virtual-effective-slot-definition if appropriate.
      (let ((slot-initargs (getf initargs :initargs)))
        (if (member :virtual-slot slot-initargs)
            (find-class 'virtual-effective-slot-definition)
            (call-next-method))))
    
    (defmethod closer-mop:compute-effective-slot-definition 
        ((class virtual-metaclass) name direct-slot-definitions)
      ;; Copy the function into the effective slot definition
      ;; if appropriate.
      (let ((effective-slotd (call-next-method)))
        (dolist (slotd direct-slot-definitions)
          (when (typep slotd 'virtual-slot-definition)
            (setf (virtual-slot-definition-function effective-slotd) 
                  (virtual-slot-definition-function slotd))
            (return)))
        effective-slotd))
    
    (defmethod closer-mop:slot-value-using-class 
        ((class virtual-metaclass) object slot-name)
      (let ((slotd (find slot-name (closer-mop:class-slots class) 
                         :key 'closer-mop:slot-definition-name)))
        (if (typep slotd 'virtual-slot-definition)
            (funcall (cadr (virtual-slot-definition-function slotd)) :get object)
            (call-next-method))))
    
    (defmethod (setf closer-mop:slot-value-using-class) 
        (value (class virtual-metaclass) object slotd)
      (if (typep slotd 'virtual-slot-definition)
          ;; This is ugly and probably not portable, but what if?
          (funcall (cadr (virtual-slot-definition-function slotd))
                   :set object value)
          (call-next-method)))
    
    (defmethod closer-mop:slot-boundp-using-class 
        ((class virtual-metaclass) object slot-name)
      (let ((slotd (find slot-name (closer-mop:class-slots class) 
                         :key 'closer-mop:slot-definition-name)))
        (if (typep slotd 'virtual-slot-definition)
            (funcall (cadr (virtual-slot-definition-function slotd)) :is-set object)
            (call-next-method))))
    
    (defmethod closer-mop:slot-makunbound-using-class 
        ((class virtual-metaclass) object slot-name)
      (let ((slotd (find slot-name (closer-mop:class-slots class) 
                         :key 'closer-mop:slot-definition-name)))
        (if (typep slotd 'virtual-slot-definition)
            (funcall (virtual-slot-definition-function slotd) :unset object)
            (call-next-method))))

    О простоте объектно-ориентированого программирования, или страшная правда, которую от вас так долго скрывали.
    Написано по мотивам: http://www.lispworks.com/documentation/lw50/LWUG/html/lwuser-173.htm В попытке сделать это, по возможности, портабельным (на SBCL вроде даже завелось).

    Я понимаю, что читать это никто не будет, поэтому, краткий пересказ событий:
    Захотелось мне виртуальных свойств, ну тоесть так, чтобы при обращении к Сипипишной библиотеке, для которой я ваяю оберкту не было различий между обычными Лисповыми объектами и Сипипишными.
    Простой вариант - скопировать значения, но перформанс же!
    И вот родился этот вариант. (Использование не показано, т.как не влезло).

    wvxvw, 12 Сентября 2014

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

    −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
    public class MathAndGeometryUtils
    {
    	public static function roundToHalf(value:Number):Number 
    	{
    		var multiplied:int = Math.round(value * 10);
    		if (multiplied / 5 == Math.round(multiplied / 5))
    		{
    			return multiplied / 10;
    		}
    		else
    		{
    			var noComma:Number = Math.floor(multiplied / 10) * 10;
    			var divaider:int = multiplied - noComma;
    			if (divaider >= 3 && divaider <= 7)
    				return (noComma + 5) / 10;
    			else
    				return Math.round(value);
    		}
    	}
    }

    На сколько я смог понять задумку, человеку хотелось чтобы функция возвращала значения типа 0, 0.5, 1, 1.5 и т.д. и вот он придумал такое самобытное решение.

    wvxvw, 04 Сентября 2014

    Комментарии (37)
  11. ActionScript / Говнокод #16629

    −89

    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 function getName():String
    {
    	if (sourceUrl && sourceUrl != "")
    	{
    		var urlArray:Array = sourceUrl.split("/");
    		if (urlArray.length > 0)
    		{
    			var fileName:String;
    			fileName= urlArray[urlArray.length - 1] as String;
    			return fileName.substr(0,13);
    		}
    	}
    	return "";
    }

    Удача сопутствует смелым!
    (Никакого очевидного повода к тому, чтобы в имени файла было какое-то определенное количество символов нет, я не знаю почему 13).

    wvxvw, 01 Сентября 2014

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