-
Список говнокодов пользователя wvxvw
Всего: 202
-
+161
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
ISQ.Tools.RGBtoHex=function(c,b,a){
return ISQ.Tools.toHex(c)+ISQ.Tools.toHex(b)+ISQ.Tools.toHex(a)
};
ISQ.Tools.RGBtoHex2=function(a){
a=a.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
return "#"+ISQ.Tools.toHex(a[1])+ISQ.Tools.toHex(a[2])+ISQ.Tools.toHex(a[3])
};
ISQ.Tools.toHex=function(a){
if(typeof(a)==="string"){
a=parseInt(a)
}
if(typeof(a)!=="number"||a===0){
return "00"
}
a=Math.max(0,a);
a=Math.min(a,255);
a=Math.round(a);
return "0123456789ABCDEF".charAt((a-a%16)/16)+"0123456789ABCDEF".charAt(a%16)
};
ОК, это последний на сегодня, просто сил нет...
wvxvw,
31 Мая 2012
-
+157
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
ISQ.Tools.getNumber=function(c,a){
var d=typeof(c);
if(typeof(c)==="number"){
return c
}
if(typeof(c)!=="string"){
c=c.toString()
}
var b;
if(c.contains(".")){
b=parseFloat(c)
}
else
{
b=parseInt(c)
}
if(isNaN(b)){
return typeof(a)==="number"?a:NaN
}
return b
};
Того же автора, что и предыдущий пост:
Борьба идиота и динамической типизации, где в итоге динамическая типизация все же побеждает, но какой ценой...
wvxvw,
31 Мая 2012
-
+152
- 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
String.prototype.startsWith=function(b){
if(this.length<b.length){
return false
}
for(var a=0;a<b.length;++a){
if(this.charAt(a)!==b.charAt(a)){
return false
}
}
return true
};
String.prototype.endsWith=function(b){
if(this.length<b.length){
return false
}
var c=b.length-1;
for(var a=this.length-1;a>this.length-1-b.length;--a){
if(b.charAt(c--)!==this.charAt(a)){
return false
}
}
return true
};
String.prototype.contains=function(a){
return this.indexOf(a)!==-1
};
String.prototype.LastIndexOf=function(d,c){
if(this.length===0||d===null){
return -1
}
if(d.length>this.length){
return -1
}
if(isNaN(c)){
c=this.length-d.length
}
var a=false;
for(var b=c;b>=0;--b){
a=true;
for(var e=0;e<d.length;++e){
if(this.charAt(b+e)!==d.charAt(e)){
a=false;
break
}
}
if(a){
return b
}
}
return -1
};
String.prototype.LastIndexOf_char=function(a){
for(var b=this.length-1;b>=0;--b){
if(this.charAt(b)===a){
return b
}
}
return -1
};
String.prototype.setCharAt=function(b,a){
if(b>this.length-1){
return str
}
return this.substr(0,b)+a+this.substr(b+1)
};
String.prototype.countCharAppearances=function(a){
var b=0;
for(var c=0;c<this.length;++c){
if(this.charAt(c)==a){
++b
}
}
return b
};
Сорри, что много буков, но тут каждую функцию можно воспринимать как отдельное произведение.
Разбираю бред какого-то безымянного идиота :(
wvxvw,
31 Мая 2012
-
+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
(defun question-2 ()
(let ((b '(1 2 3))
(a '(1 2 3 4))
(com (make-hash-table :test #'equal)))
(labels ((put-sorted (x)
(let ((key
(sort
(flatten
(copy-tree x)) #'<)))
(if (gethash key com)
(incf (gethash key com))
(setf (gethash key com) 1)))))
(values (remove-if
#'(lambda (x)
(prog ((results
(do ((x x (cdr x)) (r))
(nil)
(setf r (append (cadar x) r))
(when (null (cdr x))
(return r)))))
(dolist (y a)
(when (not (member y results))
(go remove-it)))
(put-sorted results)
(go keep-it)
remove-it (return t)
keep-it nil))
(all-functions b (cartesian-product a))) com))))
Ну, чем бы еще порадовать. Вот, родилось во время проверки домашних заданий :)
wvxvw,
29 Мая 2012
-
−172
- 1
- 2
- 3
- 4
- 5
// Generates a mask.
var mask:ByteArray = new ByteArray();
for (var i:int = 0; i < 4; i++) {
mask.writeByte(randomInt(0, 255));
}
https://github.com/gimite/web-socket-js/blob/master/flash-src/src/net/gimite/websocket/WebSocket.as
Мелочь, конечно, но все равно приятно.
wvxvw,
11 Мая 2012
-
+117
- 1
http://www.haskell.org/hoogle/?hoogle=%60
:P
wvxvw,
05 Мая 2012
-
−204
- 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
// avm+ specific utility method
public static function throwError(type:Class, index:uint, ... rest)
{
// This implements the same error string formatting as the native
// method PrintWriter::formatP(...) any changes to this method should
// also be made there to keep the two in sync.
var i=0;
var f=function(match, pos, string)
{
var arg_num = -1;
switch(match.charAt(1))
{
case '1':
arg_num = 0;
break;
case '2':
arg_num = 1;
break;
case '3':
arg_num = 2;
break;
case '4':
arg_num = 3;
break;
case '5':
arg_num = 4;
break;
case '6':
arg_num = 5;
break;
}
if( arg_num > -1 && rest.length > arg_num )
return rest[arg_num];
else
return "";
}
throw new type(Error.getErrorMessage(index).replace(/%[0-9]/g, f), index);
}
http://hg.mozilla.org/tamarin-redux/file/fdf1416a3536/core/Error.as
Проблемы с устным счетом, да и не только...
wvxvw,
02 Мая 2012
-
−122
- 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
// If the new value for styleProp is different from the one returned
// from the defaultFactory function, then store the new value on the
// overrides object. That way, future clones will get the new value.
if (defaultFactory != null)
{
o = new defaultFactory();
if (o[styleProp] !== value) // must use !==
{
if (!overrides)
overrides = {};
overrides[styleProp] = value;
}
else if (overrides)
{
delete overrides[styleProp];
}
}
// If the new value for styleProp is different from the one returned
// from the factory function, then store the new value on the
// overrides object. That way, future clones will get the new value.
if (factory != null)
{
o = new factory();
if (o[styleProp] !== value) // must use !==
{
if (!overrides)
overrides = {};
overrides[styleProp] = value;
}
else if (overrides)
{
delete overrides[styleProp];
}
}
Опять Adobe.
wvxvw,
11 Апреля 2012
-
−121
- 1
- 2
- 3
- 4
- 5
public function isTopLevelWindow(object:DisplayObject):Boolean
{
return object is IUIComponent &&
IUIComponent(object) == topLevelWindow;
}
Адоб, еще один не справился с приведением типов... код в SystemManager.
wvxvw,
11 Апреля 2012
-
−124
- 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
/**
* @private
* Causes to re-measure the natural width/height
* if size changes, parent size is invalidated as well.
*/
protected function invalidateSize():void
{
var curWidth:Number = naturalWidth;
var curHeight:Number = naturalHeight;
measure();
if (curWidth != naturalWidth || curHeight != naturalHeight)
{
var parent:DisplayObjectContainer = this.parent;
// Search for an ancestor SpriteVisualElement to inform them that
// they need to re-measure as their size has been invalidated.
while (nestedSpriteVisualElement)
{
if (parent is SpriteVisualElement || parent == null || parent.parent == null)
{
break;
}
else
{
parent = parent.parent;
}
}
if (parent is SpriteVisualElement)
SpriteVisualElement(parent).invalidateSize();
else
invalidateParentSizeAndDisplayList();
}
}
Тут нужно немного объяснить. Дело в том, что это один из очень важных классов в серии компонентов "Спарк". Эта функция, фактически, отвечает за перерисовку компонента. Но вот вместо того, чтобы сделать так, чтобы контейнер сообщал содержанию когда перерисовываться или, по крайней мере сам решал, когда перерисовываться получается наоборот - и, фактически, любое мало мельски значимое изменение в ребенке полезет перерисовывать родителей. Просто уже са саму идею invalidateParentSizeAndDisplayList хочется пальцы в двери...
wvxvw,
25 Марта 2012