- 1
"%s[@%s='%s']"
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+128
"%s[@%s='%s']"
Аццкий смайлик! Сборка запроса XPath для поиска элементов в XML DOM по значениям, переданным из другой функции.
sprintf(str,"%s[@%s='%s']",elemPath,attrName,value);
−94
$class = (preg_match("/^[0-9]+$/", $i/2)) ? "cssBgHex0F0F0F" : "cssBgHexAFAFAF";
ПХП-коллега выдал: подсветка чётных номеров строк :)
+123
var EditParameter = eval($('#droppable1').attr("data"));
var parameter = eval($('#droppable1').attr("data1"));
А Вам слабо ?!
+119
public static Tuple<t1, t2,="" t3,="" t4,="" t5,="" t6,="" t7,="" tuple=""><t8>> Create<t1, t2,="" t3,="" t4,="" t5,="" t6,="" t7,="" t8="">(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8) {
return new Tuple<t1, t2,="" t3,="" t4,="" t5,="" t6,="" t7,="" tuple=""><t8>>(item1, item2, item3, item4, item5, item6, item7, new Tuple<t8>(item8));
Int32 IStructuralEquatable.GetHashCode(IEqualityComparer comparer) {
// We want to have a limited hash in this case. We'll use the last 8 elements of the tuple
ITuple t = (ITuple) m_Rest;
if(t.Size >= 8) { return t.GetHashCode(comparer); }
// In this case, the rest memeber has less than 8 elements so we need to combine some our elements with the elements in rest
int k = 8 - t.Size;
switch(k) {
case 1:
return Tuple.CombineHashCodes(comparer.GetHashCode(m_Item7), t.GetHashCode(comparer));
case 2:
return Tuple.CombineHashCodes(comparer.GetHashCode(m_Item6), comparer.GetHashCode(m_Item7), t.GetHashCode(comparer));
case 3:
return Tuple.CombineHashCodes(comparer.GetHashCode(m_Item5), comparer.GetHashCode(m_Item6), comparer.GetHashCode(m_Item7), t.GetHashCode(comparer));
case 4:
return Tuple.CombineHashCodes(comparer.GetHashCode(m_Item4), comparer.GetHashCode(m_Item5), comparer.GetHashCode(m_Item6), comparer.GetHashCode(m_Item7), t.GetHashCode(comparer));
case 5:
return Tuple.CombineHashCodes(comparer.GetHashCode(m_Item3), comparer.GetHashCode(m_Item4), comparer.GetHashCode(m_Item5), comparer.GetHashCode(m_Item6), comparer.GetHashCode(m_Item7), t.GetHashCode(comparer));
case 6:
return Tuple.CombineHashCodes(comparer.GetHashCode(m_Item2), comparer.GetHashCode(m_Item3), comparer.GetHashCode(m_Item4), comparer.GetHashCode(m_Item5), comparer.GetHashCode(m_Item6), comparer.GetHashCode(m_Item7), t.GetHashCode(comparer));
case 7:
return Tuple.CombineHashCodes(comparer.GetHashCode(m_Item1), comparer.GetHashCode(m_Item2), comparer.GetHashCode(m_Item3), comparer.GetHashCode(m_Item4), comparer.GetHashCode(m_Item5), comparer.GetHashCode(m_Item6), comparer.GetHashCode(m_Item7), t.GetHashCode(comparer));
}
Contract.Assert(false, "Missed all cases for computing Tuple hash code");
return -1;
}
Int32 ITuple.GetHashCode(IEqualityComparer comparer) {
return ((IStructuralEquatable) this).GetHashCode(comparer);
}
public override string ToString() {
StringBuilder sb = new StringBuilder();
sb.Append("(");
return ((ITuple)this).ToString(sb);
}
string ITuple.ToString(StringBuilder sb) {
sb.Append(m_Item1);
sb.Append(", ");
sb.Append(m_Item2);
sb.Append(", ");
sb.Append(m_Item3);
sb.Append(", ");
sb.Append(m_Item4);
sb.Append(", ");
sb.Append(m_Item5);
sb.Append(", ");
sb.Append(m_Item6);
sb.Append(", ");
sb.Append(m_Item7);
sb.Append(", ");
return ((ITuple)m_Rest).ToString(sb);
}
Давно заприметил в C# кортежи. За них отвечаёт чудесный класс System.Tuple
http://msdn.microsoft.com/en-us/library/system.tuple.aspx
Вот стало интересно - как они там это дело реализовали, ведь постоянно вводит новые плюшки в язык.
Посмотрел и ужаснулся - решили "в лоб" и кортежи обошлись в 1000 строк.
http://reflector.webtropy.com/default.aspx/4@0/4@0/untmp/DEVDIV_TFS/Dev10/Releases/RTMRel/ndp/clr/src/BCL/System/Tuple@cs/1305376/Tuple@cs
Хотел запостить в #12129. Но он утонул.
+24
QString("a=%1 b=%2").arg("[%1]").arg("Shit happens")
Вы думаете, что результат будет "a=[%1] b=Shit happens"?
Как бы не так! "a=[Shit happens] b=%2".
Причем эта "фича" вполне документирована. Но документирована она не в самом первом описании arg'а, а только в arg(const QString &a1, const QString &a2), в доку по которому я естественно никогда не заглядывал...
UPD: правильным вариантом будет QString("a=%1 b=%2").arg("[%1]", "Shit happens"), но тогда мы лишаемся поддержки форматирования, да и таким образом можно засунуть максимум 10 аргументов.
−109
#Кусок красивого кода контроллера сайта на Ruby On Rails
class QuestionsController < ApplicationController
#Извлекаем отвеченные вопросы методом говнокода
def answered
@subtitle = "Отвеченные"
#Нам нужны все-все-все вопросы и даже не отвеченные. Скрестим пальцы на случай если их будет много
@questions = Question.all
#Обязательно преобразуем все в массив, сделаем N+1 запрос и успешно отфильтруем вопросы без ответа
@questions.to_a.delete_if { |q| q.answer.nil? }
#Чуть не забыл, нам же нужно извлечь 10 вопросов для 2-й страницы, а не все что есть
paginate(@questions)
#PROFIT
render "index"
end
end
Ну в общем, код хорошо прокоментирован, думаю все и так ясно. =)
−166
for ( my $i = 0 ; $i < $pmcount ; $i ++ ) {
$_ = $array_ref->[$i];
# workin' hard
}
if ( $perl eq 'C' ) { print "govnokod повсеместно" }
+56
<?php
/*
@package Widgetkit
* @author YOOtheme http://www.yootheme.com
*/
$sets = array_chunk($widget->items, $settings['items_per_set']);
foreach(array_keys($sets) as $s) {
$nav[] = '<li><span></span></li>';
}
?>
<?php foreach ($sets as $set => $items) : ?>
<ul class="set">
<?php foreach ($items as $item) : ?>
<li>
<div><?php echo $item['navigation']; ?></div>
</li>
<?php endforeach; ?>
</ul>
<?php endforeach; ?>
<?php
?>
И так в 230 файлах.
Садо-мазо, блин!
+46
function send_attach(
$to, //!< Email получателя
$from, //!< Email отправителя
$task, //!< Тема письма
$text //!< Текст письма
) {
$boundary = "--".md5(uniqid(time())); // генерируем разделитель
$subject= $task." [".stripslashes($_SERVER['HTTP_HOST'])."]";
$subject ='=?windows-1251?B?'.base64_encode($subject).'?=';
$headers = "To: ".$to."\r\n";
$headers="From: =?windows-1251?B?".base64_encode(stripslashes($_SERVER['HTTP_HOST']))."?= <".$from.">\r\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/mixed; boundary=\""
.$boundary."\"\r\n";
$headers .= "--".$boundary."\r\n";
$headers .= "Content-type: text/html; charset=windows-1251 \r\n";
$headers.="Subject: ".$subject."\r\n";
$headers.="X-Mailer: PHP/".phpversion()."\r\n";
$headers .= "Content-Transfer-Encoding: Quot-Printed\r\n\r\n";
$headers .= '<html><head><title>Заявка с сайта</title></head>';
$headers .= '<body>'.$text.'</body></html>';
//.'<img src=\'24.jpg\' alt="img">
$message_part = "";
if(
isset($_FILES['f_file']['tmp_name']) and
is_array($_FILES['f_file']['tmp_name'])
) {
foreach($_FILES['f_file']['name'] as $k => $v) {
if (trim($v) != '') {
$fname = $_FILES['f_file']['tmp_name'][$k];
$fp = fopen($fname,"r");
$file = fread($fp, $_FILES['f_file']['size'][$k]);
fclose($fp);
$message_part .= "--$boundary\r\n";
$message_part .= "Content-Type: application/octet-stream\r\n";
$message_part .= "Content-Transfer-Encoding: base64\r\n";
$message_part .= "Content-Disposition: attachment; filename = \""
.$_FILES['f_file']['name'][$k]."\"\r\n\r\n";
$message_part .= chunk_split(base64_encode($file))."\r\n";
}
}
}
$message_part .= "--".$boundary."--\n";
return mail($to, $subject, $message_part, $headers);
}
Функция отправки письма с сайта. Технически - вроде работает. А так, вполне себе "обфускация" получилась.
−98
today = datetime.datetime.today()
date_paid = profile.date_subscription_paid
months_delta = lambda a, b: a - b + (12 if b > a else 0)
months_count = months_delta(today.month, date_paid.month)
months_count += 0 if date_paid.day > today.day else 1
delta = relativedelta(months=months_count)
profile.date_subscription_paid += delta
profile.save()
Моё лицо, когда увидел это.
http://rghost.ru/40948114/image.png