- 1
Что бы познать рекурсию надо познать рекурсию.
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+138.7
Что бы познать рекурсию надо познать рекурсию.
−303.1
(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:
\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(
?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[
\t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\0
31]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\
](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+
(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:
(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z
|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)
?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\
r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[
\t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)
?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t]
)*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[
\t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*
)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t]
)+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)
*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+
|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r
\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:
\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t
]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031
]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](
?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?
:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?
:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?
:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?
[ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\]
\000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|
\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>
@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"
(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t]
)*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\
".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?
:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[
\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-
\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(
?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;
И в том же духе еще 43 строки. Регулярное выражение для проверки емейл адреса. Все на полном серьезе и в соответствии со стандартом. Взято отсюда http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html
+50.7
namespace inter {
template<typename X>
struct tplClass {
private:
X _priv;
public:
tplClass(const X _generator) {
this->_priv = _generator;
return;
}
tplClass(const tplClass<int>& _a) {
this->_priv = _a.get();
return;
}
const X get(void) const {
return this->_priv;
}
};
template<typename X>
const tplClass<X> operator+(const tplClass<X>& _lha, const tplClass<X>& _rha) {
return tplClass<X>(_lha.get()+_rha.get());
}
}
int main(int argc, char* args[], char* envs[]) {
tplClass<int> a(5);
tplClass<double> b(3.1);
tplClass<double> c = a + b;
return 0;
}
1. Всё упрощено до невозможности. Описано только то, что необходимо для узрения говнокода.
2. Несмотря на то, что решение существует в очень известной книжке, я напоролся на говнокод лично, пока программу писал. Искал несколько дней проблему... Ну да... Бывает...
3. Говнокод заключается в том, что данный код не компилируется.
P.S. Если видите, что где-то есть дыра, то говорите, возможно я опечатался (злобная администрация исправить не даст), возможно в данном коде плюг опущен, возможно дыра у меня в голове. Конструктивная критика приветствуется.
P.P.S. Если вы решили просто написать, что (C++ == "говно") is true , то, пожалуйста, прошу вас как людей порядочных и воспитанных, имеющих совесть и ум, пройдите мимо. Если у вас нит ни ума, ни совести, ни порядочности, то можете писать про "естественную говнистость" C++, милости прошу.
+92.8
procedure MyLine(X1, Y1, X2, Y2: Integer; Color: TColor; Canvas: TCanvas);
begin
if (Abs(X1 - X2) <= 1) and (Abs(Y1 - Y2) <= 1) then
Canvas.Pixels[X1, Y1] := Color
else
begin
MyLine(X1, Y1, (X1 + X2) shr 1, (Y1 + Y2) shr 1, Color, Canvas);
MyLine((X1 + X2) shr 1, (Y1 + Y2) shr 1, X2, Y2, Color, Canvas);
end;
end;
Когда-то давно очень увлекался рисованием в ДОС-е.
До сих пор помню процедуру быстрого рисования кривой прямой %)
представляю на суд тот же алгоритм.
−115.1
$oblom = 1;
if ($pusto == 0) {#Если пусто, то сред никем не занят
$oblom = 0;
} else {
$oblom = 0;
.....
Смотри на переменную $oblom
В продолжение 2059
+165.1
<?php
...
define ( "CSELECT", "select task.value as tvid, count(*) as cnt from ( " );
define ( "CJOIN", " ) as s1
left join m_dict on s1.id_m_dict = m_dict.id " );
define ( "CWHERE", " where task_attr.id_mf = 116
and task_attr.value <> 'Дело'
group by task_attr.value" );
...
$sqltext = CSELECT . "select id, id_dep, id_m_dict
from task
where task.state = 0 and
task.startdate <= '" . $reportDate . " 23:59:59' and
task.id_dep in (2,42) and
task.id_m_dict = 29
" . CJOIN . CWHERE;
...
?>
Я может чего-то не понимаю и так писать круто, но когда этих $sqltext = ... больше 5, то извините, это капец.
+150.6
{if eq($view_parameters.affichage,'avis')}
<!-- complete comment -->
<script type="text/javascript">
var object_id = {$next_prev.object.id};
var url_alias = {$next_prev.url_alias|ezurl()};
</script>
{include uri="design:inc/esi/esi_complete_comment.tpl" object_id=$node.object.id class_identifier=$next_prev.object.class_identifier}
{else}
<!-- full comment -->
<script type="text/javascript">
var object_id = {$next_prev.object.id};
var url_alias = {$next_prev.url_alias|ezurl()};
</script>
{include uri="design:inc/esi/esi_full_comment.tpl" object_id=$next_prev.object.id class_identifier=$next_prev.object.class_identifier}
{/if}
Комментарии французов в шаблоне eZ Publish понятны как никогда.
+144.6
curEl.change(function (e) {
switch(current_c){
case '1': l = 0.001; break;
case '2': l = 0.001; break;
case '3': l = 1 ; break;
}
switch(curEl.val()){
case '1': l2 = 0.001; break;
case '2': l2 = 0.001; break;
case '3': l2 = 1 ; break;
}
convfrom = parseFloat((curr[current_c]/curr[curEl.val()]) *from.val() * (l/l2));
convto = parseFloat((curr[current_c]/curr[curEl.val()])*to.val()*(l/l2));
if(from.val()!='') from.val(convfrom);
if(to.val()!='') to.val(convto);
from.focus();
});
+105.3
public class ImportService : System.Web.Services.WebService
{
private const string KEY = "*******";
[WebMethod]
public void AddFileInQueue(string aKey, ..., out String error)
{
...
if (KEY == aKey)
...
else
{
error = "Invalid key";
}
}
}
Мне предложили использовать эту же авторизацию для нового веб-сервиса в том же проекте со словами "there is normal login implemented somewhere"
−867.1
PREPARE `@pr_statement` FROM "
SELECT `torrents_full`.`torrent_id`,`torrents_full`.`torrent_tracker`,
`torrents_full`.`torrent_href`,`torrents_full`.`torrent_name`,`torrents_full`.`torrent_author`,`torrents_full`.`torrent_files`,
`torrents_full`.`torrent_img`,`torrents_full`.`torrent_size`,`torrents_full`.`torrent_info`,`torrents_full`.`torrent_date`,
`torrents_full`.`user_name`,`torrents_full`.`user_class`,`torrents_full`.`user_href`,? AS `count` FROM
(SELECT `torrents`.`torrent_id`,`torrents`.`torrent_tracker`,
`torrents`.`torrent_href`,`torrents`.`torrent_name`,`torrents`.`torrent_author`,`torrents`.`torrent_files`,
`torrents`.`torrent_img`,`torrents`.`torrent_size`,`torrents`.`torrent_info`,`torrents`.`torrent_date`,
`users`.`user_name`,`users`.`user_class`,`users`.`user_href`
FROM `torrents` LEFT JOIN `users` ON `users`.`user_id` = `torrents`.`torrent_author`
WHERE `torrents`.`torrent_tracker` IN (?,1,2,3,4,5,6,7) AND (MATCH(`torrents`.`torrent_name`) AGAINST(?)
OR `torrents`.`torrent_name` LIKE ?)) as `torrents_full`
WHERE `torrents_full`.`torrent_name` LIKE ? ORDER BY `torrents_full`.`torrent_date` LIMIT 50";
SET @torr_tracker = `torr_tracker`;
SET @torr_fullsearch = `torr_fullsearch`;
SET @torr_search = `torr_search`;
EXECUTE `@pr_statement` USING @torr_count,@torr_tracker,@torr_fullsearch,@torr_search,@torr_search;
DEALLOCATE PREPARE `@pr_statement`;
это у меня такой эффективный поиск по БД))))