- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
var pz = 1/Infinity;
var mz = -1/Infinity;
// неотличимы
pz == mz; // true
pz === mz; // true
mz < pz; // false
pz < mz; // false
// но
Math.min(pz, mz); // -0
Math.max(pz, mz); // 0
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+159
var pz = 1/Infinity;
var mz = -1/Infinity;
// неотличимы
pz == mz; // true
pz === mz; // true
mz < pz; // false
pz < mz; // false
// но
Math.min(pz, mz); // -0
Math.max(pz, mz); // 0
Так как же отличить -0 от +0?
(-1.0 / mz) == Infinity?
+71
List<String> list = ...;
for (String s : someStringList)
list.add(s);
list.set(SOME_CONST, someString);
list.add(0, secondSomeString);
Поначалу никак не мог понять, почему list.get(SOME_CONST) != someString. Ну и копирование через цикл тоже норм
−106
case EffectVO.ENTER_FROM_LEFT:
xFrom = - (sprite.boundingRect.width + Math.abs(sprite.boundingRect.x));
xFrom *= extraSafetyScaleFactor;
objectTween = TweenLite.from(spriteView, 0.5,
{
x: String(xFrom),
immediateRender: true,
ease: Cubic.easeOut
});
Культовый код. Вот, недавно набрел на ссылку:
http://en.wikipedia.org/wiki/Cargo_cult_programming
Почему-то во всем проекте анимированые свойства либо конвертируются в строки, либо изначально задаются строками. Писец давно уволился, и выяснить первопричину сейчас не представляется возможным, но существует предположение, что таким образом писец боролся с NaN... вряд ли это конечно могло помочь, но на то он и культ.
−99
def dict_to_tuple(d):
"""Converts an ordered dict into a tuple."""
return tuple(dict_to_list(d))
+159
<?
function flevel($exp)
{
include_once "config/mysql.php";
$querylevel = "SELECT maxexp FROM level";
$levelquery = mysql_query($querylevel);
while($rowslvl = mysql_fetch_row($levelquery))
{
$levelarr[] = $rowslvl[0];
}
switch(TRUE)
{
case ($exp <= $levelarr[0]):
return $level = "1";
break;
case ($exp <= $levelarr[1]):
return $level = "2";
break;
case ($exp <= $levelarr[2]):
return $level = "3";
break;
case ($exp <= $levelarr[3]):
return $level = "4";
break;
case ($exp <= $levelarr[4]):
return $level = "5";
break;
case ($exp <= $levelarr[5]):
return $level = "6";
break;
case ($exp <= $levelarr[6]):
return $level = "7";
break;
case ($exp <= $levelarr[7]):
return $level = "8";
break;
case ($exp <= $levelarr[8]):
return $level = "9";
break;
case ($exp <= $levelarr[9]):
return $level = "10";
break;
case ($exp <= $levelarr[10]):
return $level = "11";
break;
case ($exp <= $levelarr[11]):
return $level = "12";
break;
/* ... */
case ($exp <= $levelarr[42]):
return $level = "43";
break;
case ($exp <= $levelarr[43]):
return $level = "44";
break;
case ($exp <= $levelarr[44]):
return $level = "45";
break;
case ($exp <= $levelarr[45]):
return $level = "46";
break;
case ($exp <= $levelarr[46]):
return $level = "47";
break;
case ($exp <= $levelarr[47]):
return $level = "48";
break;
case ($exp <= $levelarr[48]):
return $level = "49";
break;
case ($exp > $levelarr[49]):
return $level = "50";
break;
}
}
?>
Пришел в проект по созданию веб игры, смотрю организацию проекта... Жопа там, что папки, что код, что база одно и тоже, каша. Вот нашел одну забавную функцию. Она возвращает уровень персонажа судя по кол-во XP. Вместо того что бы писать 'SELECT `level` FROM `level` WHERE `minexp` <= ' . $exp . ' AND `maxexp` > ' . $exp надо было switch .. case писать. Нету слов.
−97
jstemplate = ''
jstemplate += '$(document).ready(function () {'
jstemplate += ' $(document).on("click", ".im", function () {'
jstemplate += ' if ($(this).attr("src") != "") {'
jstemplate += ' $("#im").attr("src", $(this).attr("src"));'
jstemplate += ' $("#FixedBlack").show().fadeTo(200, 1);'
jstemplate += ' $("#im").show().fadeTo(0.5, 1);'
jstemplate += ' }'
jstemplate += ' });'
jstemplate += ' $(document).on("click", "#FixedBlack", function () {'
jstemplate += ' $("#im").hide();'
jstemplate += ' $("#FixedBlack").stop(true).fadeTo(200, 0, function () {'
jstemplate += ' $("#FixedBlack").hide();'
jstemplate += ' });'
jstemplate += ' });'
jstemplate += '});'
Это вместо того, чтобы положить шаблон в файл и спокойно прочитать его в переменную. nuff said.
+156
(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()?
+5
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 алгоритмы.
+8
# ifndef BOOST_NO_PARTIAL_SPECIALIZATION
, check<Model>
# else
, check<failed ************ Model::************>
# endif
+98
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;
Выравнивание всплывающего окошка точно по правому краю.
Даже не знаю, гк ли это, ибо глаз не видит себя. Но смотрится очень странно, почти как хак.