-
Список говнокодов пользователя wvxvw
Всего: 202
-
−91
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 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
-
−88
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 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
-
−94
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 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
-
−107
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 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
-
−87
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 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
-
+127
- 1
https://www.marshut.net/knqkut/dijkstra-s-methodology-for-secure-systems-development.html
Учитесь троллить! (Я подписался на рассылку запостить пару багов, а тут...)
wvxvw,
20 Сентября 2014
-
−84
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 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
-
+125
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 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
-
−92
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 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
-
−89
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 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