- 1
return (true == is_break) ? resource : NULL;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+135
return (true == is_break) ? resource : NULL;
Вонъ изъ профессiи!
+49
#include <stdio.h>
#include <math.h>
#include "determinant.h"
double det(double **matrix, int size)
{
if(size==2)
{
return matrix[0][0]*matrix[1][1]-matrix[0][1]*matrix[1][0];
}
else if(size==1)
{
return matrix[0][0];
}
int result = 0;
for(int j=0; j<size; j++)
{
if(matrix[0][j]!=0)
{
result+=matrix[0][j]*(unsigned)pow(-1.f,(unsigned)j)*det(minor(matrix, size, 0, j), size-1);
}
}
return result;
}
double **minor(double **matrix, int size, int str, int col)
{
double **minor=new double *[size-1];
int m_str = 0;
int m_col;
for(int i=0; i<size; i++)
{
if(i!=str)
{
m_col = 0;
minor[m_str]=new double[size-1];
for(int j=0; j<size; j++)
{
if(j!=col)
{
minor[m_str][m_col]=matrix[i][j];
m_col++;
}
}
m_col++;
}
}
return minor;
}
Считаю определитель рекурсией, во время теста в этом сорце вылетает ошибка EXC_BAD_ACCESS(code=1, access=0x8),
после одного прохода рекурсии, с чем это связано? Помогите разобраться :)
+53
class ParseError : public std::exception{
string s;
explicit ParseError(const std::string& s) : s(s) {}
const char* what() const throw() { return s.c_str(); }
};
Это мне нужно в своём исключении-потомке обязательно перегрузить what и добавить свою строку для хранения, чтобы данные, переданные в конструктор s по указателю обязательно выжили после размотки стека.
+162
public static function QFV($query_input, $row, $field_name, $linkname)
{
$qres = self::Q($query_input, $linkname);
$ret = self::FV($qres, $row, $field_name);
self::FreeRes($qres);
return $ret;
}
public static function QFA($query_input, $linkname) {
$qres = self::Q($query_input, $linkname);
$ret = self::FA($qres);
self::FreeRes($qres);
return $ret;
}
public static function QFO($query_input, $linkname) {
$ret = NULL;
$qres = self::Q($query_input, $linkname);
if ($qres->result) {
$ret = self::FO($qres);
self::FreeRes($qres);
}
return $ret;
}
public static function QFOL($query_input, $num, $linkname)
{
$ret = NULL;
$qres = self::Q($query_input, $linkname);
if ($qres) {
$ret = self::FOL($qres, $num);
self::FreeRes($qres);
}
return $ret;
}
public static function QFFF($query_input, $linkname)
{
$qres = self::Q($query_input, $linkname);
$res = self::FFF($qres);
self::FreeRes($qres);
return $res;
}
// И ещё несколько десятков безымянных функций без каких-либо комментариев
Абстрактный слой работы с базой.
+169
this.value = this.value.replace(/./g, '');
//гениальное обнуление строки
+157
function report1(req, res, next, type) {
if (!req.query || !req.query.name) {
var ct = "Income statement";
if (type == 'pieflow')
ct = 'Pie flow chart';
else if (type == 'barflow')
ct = 'Bar flow chart';
res.redirect(req.url + "?name=" + ctx.i18n(req.session.apiToken, 'cash', ct));
return;
}
var pid = "reports-" + type + "-" + req.query.name;
var vtabs,data,reportSettings;
async.waterfall([
function (cb1) {
async.series([
function(cb2) {
webapp.guessTab(req, {pid: pid, name:req.query.name, url:req.url}, cb2);
},
function(cb2) {
webapp.getTabSettings(req.session.apiToken, pid, cb2);
}
],
function (err, results) {
cb1(null, results[0], results[1]);
});
},
function (vtabs_, reportSettings_, cb1) {
vtabs = vtabs_;
reportSettings = reportSettings_;
if (_.isEmpty(reportSettings) || !reportSettings.version || (reportSettings.version != reportSettingsVersion)){
reportSettings = getDefaultSettings(req.query.name);
webapp.saveTabSettings(req.session.apiToken, pid, reportSettings, function(err){
if (err) console.log(err);
});
}
calculateGraphData(req.session.apiToken,type,reportSettings,cb1);
},
function(data_,cb1){
data = data_;
cb1()
},
function(){
data.tabs = vtabs;
data.pmenu = {name:req.query.name,
items:[{name:webapp.ctx.i18n(req.session.apiToken, 'cash','Page settings'),id:"settings",href:"#"}]}
data.reportSettings = reportSettings;
res.render(__dirname+"/../res/views/report", data);
}],
next
);
};
Прислали мне, значит, вступительное задание на должность разработчика node.js, а там гигантский проект, в который нужно дописать модуль, который выглядит весь так же ужасно, как эта функция. Долго порывался написать, что это самый ужасный код, который я когда-либо видел. http://pastebin.com/4NYccg3Y вот ссылка на весь файл, кому интересно, весь проект палить не буду, но скажу, что он большой и ужасный.
−117
class DictOfLists(defaultdict): # it's possible to use dict instead
def __init__(self, *args, **kwds):
__args=self.__check_args(*args)
self.__check_kwds(**kwds)
defaultdict.__init__(self,(lambda:[]), *__args, **kwds)
# dict.__init__(self, *__args, **kwds)
def __is_valid_item(self,item):
if len(item)==2 and not hasattr(item[0],"__iter__") and hasattr(item[1],"__iter__"):
return True
return False
def __check_args(self,*args):
if len(args)>1:
if type(args) == tuple and self.__is_valid_item(args):
return [args,] # tuple of key and list of values
else:
raise TypeError("Item of %s must be a tuple of (key,IterableValue) but %s=%s is not"%\
(self.__class__.__name__,
args.__class__.__name__,
repr(args)))
if len(args) != 1: return args
if isinstance(args[0], DictOfLists): return args
if hasattr(args[0],"__iter__"):
if len(args[0]) == 0: return args # empty iterator
items = args[0].items() if type(args[0]) == dict else args[0]
if self.__is_valid_item(items):
return [args,] # tuple of key and list of values
for v in items:
if not (type(v) == tuple and len(v)==2):
raise TypeError("Item of %s must be a tuple of (key, IterableValue) but %s=%s is not"%\
(self.__class__.__name__,
v.__class__.__name__,
v))
if not hasattr(v[1],"__iter__"):
raise TypeError("Value of %s must be iterable but %s(%s) is not"%\
(self.__class__.__name__,
v[1].__class__.__name__,
repr(v[1])))
else: raise TypeError(" %s must be initialized by {},[],() or %s but %s is not"%\
(self.__class__.__name__,
self.__class__.__name__,
args[0].__class__.__name__))
return args
def __check_kwds(self, **kwds):
for v in kwds.itervalues():
if not hasattr(v,"__iter__"):
raise TypeError("Value of %s must be iterable but %s(%s) is not"%\
(self.__class__.__name__,
v.__class__.__name__,
repr(v)))
def walk(self):
for k, v in self.iteritems():
for x in v:
yield k, v, x
raise StopIteration
def __setitem__(self, *args, **kwargs):
self.__check_args(*args)
self.__check_kwds(**kwargs)
return dict.__setitem__(self, *args, **kwargs)
def update(self, *args, **kwds):
_args=self.__check_args(*args)
self.__check_kwds(**kwds)
dict.update(self,*_args, **kwds)
correct = [ {}, [], (), # empty iterable
{'k2':[], 'k22':[]}, # multipe items dict
[('k3',[]),('k32',[])], # array tuples key list val
(('k4',[]),('k42',[])), # tuple of tuples key list val
('k5',[]) # tuple of key list val
]
strange = [('e0','12'), ('e1','123')]
import inspect
def init_tester(dict_class,t_array,cs):
print "\n%s %s %s"%( inspect.currentframe().f_code.co_name, dict_class().__class__.__name__, cs )
for i in t_array:
try:
print repr(i).ljust(26), repr(dict_class(i)).ljust(74),
print ' work '.ljust(8)
except Exception,e:
print "dosn't work ",
print e
continue
print "------------------------------"
if __name__ == '__main__':
init_tester( DictOfLists, correct, "correct")
init_tester( dict, correct, "correct")
init_tester( DictOfLists, strange, "strange")
init_tester( dict, strange, "strange")
Вот такой вот словарь, значениями элементов которого могут быть только списки. В принципе легко его доделать, чтобы знаечениями были все iterable, но не строки. Кроме этого, он внимательнее проверяет агрументы. Например если ему послать ('k5',[]), он воспримет это как: k5 - key, [] - value. Build-in dict например воспринимает ('12','34') как 1 - key, 2 - value, 3 - key, 4 - value. Соответственно если ему послать ('12','345'), он ругнется. Мне показалось, что это немного странное поведение, трактовать 2-х символьные строки, как key-value. Покритикуйте please. В том числе "стиль" и "красоту".
+163
$('.vse-zaeblo').click(function() {
$.fancybox($(this));
return false;
});
Получил задачу пофиксить сайт созданный другой компанией, заглянул в код и увидел самую первую функцию
+159
jQuery(document).ready(function(){
jQuery("a.m1_show").click(function(){
jQuery('div#emul_1').addClass('mshow').show();
jQuery('div#emul_2').addClass('minvis').hide();
jQuery('div#emul_3').addClass('minvis').hide();
jQuery('div#emul_4').addClass('minvis').hide();
jQuery('div#emul_5').addClass('minvis').hide();
//jQuery('li#emul_6').addClass('minvis').hide();
});
});
jQuery(document).ready(function(){
jQuery("a.m2_show").click(function(){
jQuery('div#emul_2').addClass('mshow').show();
jQuery('div#emul_1').addClass('minvis').hide();
jQuery('div#emul_3').addClass('minvis').hide();
jQuery('div#emul_4').addClass('minvis').hide();
jQuery('div#emul_5').addClass('minvis').hide();
//jQuery('li#emul_6').addClass('minvis').hide();
});
});
jQuery(document).ready(function(){
jQuery("a.m3_show").click(function(){
jQuery('div#emul_3').addClass('mshow').show();
jQuery('div#emul_1').addClass('minvis').hide();
jQuery('div#emul_2').addClass('minvis').hide();
jQuery('div#emul_4').addClass('minvis').hide();
jQuery('div#emul_5').addClass('minvis').hide();
//jQuery('li#emul_6').addClass('minvis').hide();
});
});
jQuery(document).ready(function(){
jQuery("a.m4_show").click(function(){
jQuery('div#emul_4').addClass('mshow').show();
jQuery('div#emul_1').addClass('minvis').hide();
jQuery('div#emul_3').addClass('minvis').hide();
jQuery('div#emul_2').addClass('minvis').hide();
jQuery('div#emul_5').addClass('minvis').hide();
//jQuery('li#emul_6').addClass('minvis').hide();
});
});
jQuery(document).ready(function(){
jQuery("a.m5_show").click(function(){
jQuery('div#emul_5').addClass('mshow').show();
jQuery('div#emul_1').addClass('minvis').hide();
jQuery('div#emul_3').addClass('minvis').hide();
jQuery('div#emul_2').addClass('minvis').hide();
jQuery('div#emul_4').addClass('minvis').hide();
//jQuery('li#emul_6').addClass('minvis').hide();
});
});
function but_1 () {
jQuery('span#emul_img_1').addClass('img_none').hide();
jQuery('span#emul_img_2').addClass('img_inline').show();
jQuery('span#emul_img_3').addClass('img_inline').show();
jQuery('span#emul_img_4').addClass('img_inline').show();
jQuery('span#emul_img_5').addClass('img_inline').show();
jQuery('span#emul_img_none_1').addClass('img_inline').show();
jQuery('span#emul_img_none_1').addClass('current_tab').show();
jQuery('span#emul_img_none_2').addClass('img_none').hide();
jQuery('span#emul_img_none_3').addClass('img_none').hide();
jQuery('span#emul_img_none_4').addClass('img_none').hide();
jQuery('span#emul_img_none_5').addClass('img_none').hide();
}
function but_2 () {
jQuery('span#emul_img_2').addClass('img_none').hide();
jQuery('span#emul_img_1').addClass('img_inline').show();
jQuery('span#emul_img_3').addClass('img_inline').show();
jQuery('span#emul_img_4').addClass('img_inline').show();
jQuery('span#emul_img_5').addClass('img_inline').show();
jQuery('span#emul_img_none_2').addClass('img_inline').show();
jQuery('span#emul_img_none_2').addClass('current_tab').show();
jQuery('span#emul_img_none_1').addClass('img_none').hide();
jQuery('span#emul_img_none_3').addClass('img_none').hide();
jQuery('span#emul_img_none_4').addClass('img_none').hide();
jQuery('span#emul_img_none_5').addClass('img_none').hide();
}
...
На работе сказали поправить табы, зашел увидел это =)
Вот такая реализация, Там еще html очень "забавный" =)
+76
/**
* all object cocomponents must be not the same objects in dump - to eliminate strange situations:
*
* @param copySet
*/
private void createAllNewComplexObjects(HashMap copySet) {
if (copySet != null) {
for (Iterator i = copySet.keySet().iterator(); i.hasNext();) {
Object key = i.next();
Object o = copySet.get(key);
Object newObject = madeNewObect(o);
copySet.put(key, newObject);
}
}
}
/**
* create new instance of the object - if it is of known type. Hashes will bethe same
*
* @param oldObject
* @return
*/
private Object madeNewObect(Object oldObject) {
if (oldObject instanceof String) {
return new String((String) oldObject);
}
if (oldObject instanceof Point) {
return new Point((Point) oldObject);
}
if (oldObject instanceof Vector2D) {
return new Vector2D((Vector2D) oldObject);
}
if (oldObject instanceof RGBA) {
RGBA c = (RGBA) oldObject;
return new RGBA(c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha());
}
if (oldObject instanceof Integer) {
return new Integer(((Integer) oldObject).intValue());
}
if (oldObject instanceof Double) {
return new Double(((Double) oldObject).doubleValue());
}
if (oldObject instanceof Boolean) {
return new Boolean(((Boolean) oldObject).booleanValue());
}
if (oldObject instanceof Float) {
return new Float(((Float) oldObject).floatValue());
}
if (oldObject instanceof HashMap) {
createAllNewComplexObjects((HashMap) oldObject);
return oldObject;
}
return oldObject;
}
В продолжение темы конструктора String(String).