- 1
- 2
- 3
- 4
while(sizeof($data)>sizeof($head)) {
$data[sizeof($data)-2].=$data[sizeof($data)-1];
unset($data[sizeof($data)-1]);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+144
while(sizeof($data)>sizeof($head)) {
$data[sizeof($data)-2].=$data[sizeof($data)-1];
unset($data[sizeof($data)-1]);
}
кусочек моего скрипта разовой работы, накиданного на скорую руку(неудивительно, что он выполнялся 2 минуты).
думаю, всем понятен смысл этого кусочка = )
+156
index.php:
<?php
define("TEMPLATE_FOLDER", "./templates/");
class Template
{
public function view($template, $data)
{
foreach($data as $key => $variable)
$$key = $variable;
require(TEMPLATE_FOLDER . $template . '.php');
foreach($data as $key => $variable)
unset($$key);
}
}
$template = new Template();
$data['test'] = array(1, 2, 3);
$template->view('index', $data);
?>
templates/index.php:
<html>
<body>
<?php foreach($test as $row): ?>
<?php echo $row ?><br/><br/>
<?php endforeach; ?>
</body>
</html>
Говно ли?
−122
sub generate_code {
my ($arrey_pos,$code);
my @arrey = ('a'..'q', 'C'..'O', '1'..'9', 'g'..'u', 'l'..'z', '9'..'1', 'H'..'W');
for (my $i = 0; $i < $_[0]; $i++) {
$arrey_pos = int(rand($#arrey));
$code .= $arrey[$arrey_pos];
}
$code;
}
Генерация кода.
+168
/*++
прямое ли?
--*/
bool ModelCurve3D::IsStraight() const {
return m_mathCurve ? m_mathCurve->IsStraight() : false;
}
/*++
замкнутость
--*/
bool ModelCurve3D::IsClosed() const
{
return m_mathCurve ? m_mathCurve->IsStraight() : false;
}
Замкнутый... ну знаешь, это типа как прямолинейный. И такое лежит годами. А как поправишь, еще может и регрессия случится. Ну как так можно?
+77
;
Scanner reader = new Scanner(System.in);
int razm = 0;
boolean flag = false;
int[] rez = new int[100];
for (int i = 0; i < 100; i++)
rez[i] = i;
do {
System.out.println("введите размерность матрицы");
razm = reader.nextInt();
for (int i = 0; i < 100; i++) {
if (rez[i] == razm)
flag = true;
}
System.out.println("размерность не является целочисленным типом,повторите ввод");
} while (flag == false);
double[][] matrix = new double[razm][razm];
;
Студенческое изделие, блинННН.
Я даже не знаю, как это прокомментировать....
я не могу себе представить, КАК надо мыслить, чтоб такое учудить.
Ну а , то, что сообщение про неправильный ввод выводится
безотносительно к правильности введённого - это уже так, мелочи жизни.
−165
def getrows(c):
return \
sum( # суммируем по категориям
map(
lambda category:
sum( # суммируем по itemid
map(
lambda itemidset:
sum( # суммируем по itemstring
map(
lambda itemstring:
map(
lambda info:
transaction(category, itemstring, info),
itemidset[itemstring].values()
),
itemidset.keys()
),
[]),
c[category].values()
),
[]
),
("completedAuctions", "failedAuctions", "completedBidsBuyouts")
),
[]
)
Залез в свой старый скрипт, генерирующий отчеты, думал кое-что подправить...
Увидел одну из функций (эту) и решил лучше забить тут что-то править хД
Причины такого ужаса - наверно отсутствие явной типизации в питоне и средств рефакторинга (rename variable, extract method, ...) в "IDE"
+151
function msglist_scroll_change() {
var mailbox = Mailbox.Get();
if (!mailbox.mList.length && (mailbox.state == 2)) { if (splash) splash_off(); return; }
var scroll_height = document.getElementById("msglist_container_id").style.height;
var scroll_top = document.getElementById("msglist_container_id").scrollTop;
var delta = parseInt((parseInt(scroll_height) / mailbox.mListItemHeight) + 2);
var first = parseInt((scroll_top / mailbox.mListItemHeight) - 1);
var last = parseInt(((parseInt(scroll_top) + parseInt(scroll_height)) / mailbox.mListItemHeight) + 1);
if (first < 0) first = 0;
if (last >= mailbox.mList.length) last = mailbox.mList.length - 1;
// проверка на то, что в область видимости попало неподгруженное письмо
var needToLoad = 0;
for (var i = first; i <= last; i++) if (mailbox.mList[i].STATE == 0) needToLoad++;
if (!needToLoad) return; // если не надо
var first = parseInt((scroll_top / mailbox.mListItemHeight) - 1 - delta);
var last = parseInt(((parseInt(scroll_top) + parseInt(scroll_height)) / mailbox.mListItemHeight) + 1 + delta);
if (first < 0) first = 0;
if (last >= mailbox.mList.length) last = mailbox.mList.length - 1;
var messages_part = new Array();
var k = 0;
targetDiv = gebi("msglist_container_id");
inn = "";
for (var i = first; i <= last; i++) {
if (mailbox.mList[i].STATE == 0) {
messages_part[k] = mailbox.mList[i].ID;
k++;
}
tmpl_msg_loading(mailbox.mList[i].ID);
}
if (messages_part.length) ajax_get_folder_msg_list_info_part(mailbox.fId, messages_part, mailbox.recvMListInfoData, mailbox);
else heatFolders();
}
Зачем-то два раза определяют first и last...
Может кто-нибудь объяснит?..
+155
// Юзер просит завернуть в функцию и оптимизировать следующий кусок кода.
// Статус
echo "<u>Статус<u>: ";
if ($ank['status']==0){echo 'Нет статуса!<br>';}
else if ($ank['status']==1){echo '<img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />Думаю: '.$ank['status_text'].'<br>';}
else if ($ank['status']==2){echo '<img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />Дела: '.$ank['status_text'].'<br>';}
else if ($ank['status']==3){echo '<img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />Магазины: '.$ank['status_text'].'<br>';}
else if ($ank['status']==4){echo '<img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />Печатаю: '.$ank['status_text'].'<br>';}
else if ($ank['status']==5){echo '<img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />Вопрос: '.$ank['status_text'].'<br>';}
else if ($ank['status']==6){echo '<img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />Сердитый: '.$ank['status_text'].'<br>';}
........................
else if ($ank['status']==30){echo '<img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />Пью пиво: '.$ank['status_text'].'<br>';}
else if ($ank['status']==31){echo '<img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />Слушаю музыка: '.$ank['status_text'].'<br>';}
else if ($ank['status']==32){echo '<img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />Учеба: '.$ank['status_text'].'<br>';}
else if ($ank['status']==33){echo '<img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />Работа: '.$ank['status_text'].'<br>';}
else if ($ank['status']==34){echo '<img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />В туалете: '.$ank['status_text'].'<br>';}
// Статус
// Сразу же постит "программист", который зарабатываем на своем деле
function a($st,$t,$H){
$s=range(0,34);
unset($s[0]);
$r=array('радость','дела','печаль и т.д.');
if(!$s){
echo 'нету статуса';
}else{
echo '<img src=""'. $H . '/icons/status/'.$st.'.gif">'.$r[$st].' '.$t.'<br/>';
}
}
##########################
a($ank['status'],$ank['text_status'],$H);
// ну и мой варинат (для сравнения)
function get_user_status($status_id)
{
$statuses = array
(
0 => 'Нет',
1 => 'Думаю',
...
33 => 'Работа',
34 => 'В туалете'
);
return $statuses[$status_id];
}
// использовать
echo 'Статус : <img src="'. $H . '/icons/status/'.$ank['status'].'.gif" />'.get_user_status($ank['status']).': '.$ank['status_text'].'<br>';
Без комментариев
+62
public int doEndTag() throws JspException {
HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
try {
String fieldValue = fdata;
String boolVal="false";
StringBuffer field_Value = new StringBuffer();
String indexString="";
int spaceIndex;
int slen = fieldValue.length();
int starti=0;
int endi= fsize;
if (fdata==null) {
boolVal="true";
field_Value.append("");
}
if (fsize > slen || truncateDataSize > fdata.length() ) {
boolVal="true";
field_Value.append(fdata);
}
if (truncateDataSize!=0 && fdata.length() > truncateDataSize ) {
fieldValue="";
fieldValue = fdata.substring(starti,truncateDataSize);
slen = fieldValue.length();
}
while(boolVal=="false") {
indexString= fieldValue.substring(starti,endi);
spaceIndex = indexString.lastIndexOf(" ");
if (spaceIndex == -1) {
int initialLength = field_Value.length();
field_Value.append(fieldValue.substring(starti,endi));
// field_Value.append("<br>");
// MT-2238 start
int firstIndex = indexString.indexOf("<");
int lastIndex = indexString.indexOf(">");
if(lastIndex<firstIndex) {
lastIndex = indexString.indexOf(">",(lastIndex+1));
}
if(firstIndex >= 0 && lastIndex <= indexString.length() && lastIndex>firstIndex) {
if(!(indexString.substring(firstIndex+1,lastIndex).equalsIgnoreCase("br"))) {
if(lastIndex<=initialLength && indexString.endsWith(">")) {
field_Value.append("<br>");
}else {
field_Value.insert((initialLength+(lastIndex+1)),"<br>");
}
}
}
//in case no HTML tags
if(!checkInTag(false, field_Value.toString())
&& firstIndex==-1 && lastIndex==-1
) {
// add BR tag
field_Value.append("<br>");
}
// MT-2238 end
} else {
field_Value.append(fieldValue.substring(starti,starti + spaceIndex));
endi = starti + spaceIndex + 1;
if(forceWrap == 1){
field_Value.append("<br>");
} else{
field_Value.append(" ");
}
}
starti = endi;
if((endi + fsize) > slen) {
endi = slen - endi;
field_Value.append(fieldValue.substring(starti,starti + endi));
boolVal="true";
} else {
endi = endi + fsize;
}
}
if (truncateDataSize!=0 && fdata.length() > truncateDataSize && singleLine==false) {
field_Value.append("...");
}
if (singleLine== true ) {
if (fsize<fdata.length())
{
field_Value.delete(0,field_Value.length());
field_Value.append(fieldValue.substring(0,fsize));
field_Value.append("...");
}
}
pageContext.getOut().write(field_Value.toString());
} catch (Exception e) {
log.error(" Exception in image tag ",e);
}
return EVAL_PAGE;
}
Найдено в кастомном теге нашева прилаженийа. Писано паходу интусами %) ы
Вся соль в строке (#29):
while(boolVal=="false")
И что самое интересное.. Оно работает!! :DDD ы
А работает как я выяснил изза 'smart' части java %)) так как boolVal инитиализируется в этом же методе, то boolVal = "false" и "false" это 1 и тот же объект %) паэтаму и проходит сравнение. Т.е. java подменяет "false" во всех местах на адин и тот же объект %) но если бы "false" пришёл снаружи, то всё.. это другой объект %)
ппц, я когда увидел долго бился головой ап стенку %)) в папытках понять, почему оно работает %))
ксати я точно не уверен, но помойму если в настройках компилятора покапаться, то думаю можно сделать так чтобы каждой объявление "false" было новым объектом (или нельзя? О_о хотя ясно, что это бесмыслено), тогда работать не будит %) ы
+144
http://forums.sun.com/thread.jspa?threadID=5213426
по ссылке длииииииииинный сплошь китайский код. Особенно красиво гипнотизироваться, крутя колесиком мышки вверх-вниз.
каменный век в виртуальности, сколько ж можно?