- 1
- 2
- 3
// ...
c=getchar();
if(c==*" ") cout << "space";
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+26
// ...
c=getchar();
if(c==*" ") cout << "space";
+48
function ruslat ($string) # Задаём функцию перекодировки кириллицы в транслит.
{
$string = ereg_replace("ж","zh",$string);
$string = ereg_replace("ё","yo",$string);
$string = ereg_replace("й","i",$string);
$string = ereg_replace("ю","yu",$string);
$string = ereg_replace("ь","",$string);
$string = ereg_replace("ч","ch",$string);
$string = ereg_replace("щ","sh",$string);
$string = ereg_replace("ц","c",$string);
$string = ereg_replace("у","u",$string);
$string = ereg_replace("к","k",$string);
$string = ereg_replace("е","e",$string);
$string = ereg_replace("н","n",$string);
$string = ereg_replace("г","g",$string);
$string = ereg_replace("ш","sh",$string);
$string = ereg_replace("з","z",$string);
$string = ereg_replace("х","h",$string);
$string = ereg_replace("ъ","",$string);
$string = ereg_replace("ф","f",$string);
$string = ereg_replace("ы","y",$string);
$string = ereg_replace("в","v",$string);
$string = ereg_replace("а","a",$string);
$string = ereg_replace("п","p",$string);
$string = ereg_replace("р","r",$string);
$string = ereg_replace("о","o",$string);
$string = ereg_replace("л","l",$string);
$string = ereg_replace("д","d",$string);
$string = ereg_replace("э","ye",$string);
$string = ereg_replace("я","ya",$string);
$string = ereg_replace("с","s",$string);
$string = ereg_replace("м","m",$string);
$string = ereg_replace("и","i",$string);
$string = ereg_replace("т","t",$string);
$string = ereg_replace("б","b",$string);
$string = ereg_replace("Ё","yo",$string);
$string = ereg_replace("Й","I",$string);
$string = ereg_replace("Ю","YU",$string);
$string = ereg_replace("Ч","CH",$string);
$string = ereg_replace("Ь","",$string);
$string = ereg_replace("Щ","SH'",$string);
$string = ereg_replace("Ц","C",$string);
$string = ereg_replace("У","U",$string);
$string = ereg_replace("К","K",$string);
$string = ereg_replace("Е","E",$string);
$string = ereg_replace("Н","N",$string);
$string = ereg_replace("Г","G",$string);
$string = ereg_replace("Ш","SH",$string);
$string = ereg_replace("З","Z",$string);
$string = ereg_replace("Х","H",$string);
$string = ereg_replace("Ъ","",$string);
$string = ereg_replace("Ф","F",$string);
$string = ereg_replace("Ы","Y",$string);
$string = ereg_replace("В","V",$string);
$string = ereg_replace("А","A",$string);
$string = ereg_replace("П","P",$string);
$string = ereg_replace("Р","R",$string);
$string = ereg_replace("О","O",$string);
$string = ereg_replace("Л","L",$string);
$string = ereg_replace("Д","D",$string);
$string = ereg_replace("Ж","Zh",$string);
$string = ereg_replace("Э","Ye",$string);
$string = ereg_replace("Я","Ya",$string);
$string = ereg_replace("С","S",$string);
$string = ereg_replace("М","M",$string);
$string = ereg_replace("И","I",$string);
$string = ereg_replace("Т","T",$string);
$string = ereg_replace("Б","B",$string);
return $string;
}
function latrus ($string) # Теперь задаём функцию перекодировки транслита в кириллицу.
{
$string = ereg_replace("zh","ж",$string);
$string = ereg_replace("Zh","Ж",$string);
$string = ereg_replace("yo","ё",$string);
$string = ereg_replace("Yu","Ю",$string);
$string = ereg_replace("Ju","Ю",$string);
$string = ereg_replace("ju","ю",$string);
$string = ereg_replace("yu","ю",$string);
$string = ereg_replace("sh","ш",$string);
$string = ereg_replace("yе","э",$string);
$string = ereg_replace("jа","я",$string);
$string = ereg_replace("yа","я",$string);
$string = ereg_replace("Sh","Ш",$string);
$string = ereg_replace("Ch","Ч",$string);
$string = ereg_replace("ch","ч",$string);
$string = ereg_replace("Yo","Ё",$string);
$string = ereg_replace("Ya","Я",$string);
$string = ereg_replace("Ja","Я",$string);
$string = ereg_replace("Ye","Э",$string);
$string = ereg_replace("i","и",$string);
$string = ereg_replace("'","ь",$string);
$string = ereg_replace("c","ц",$string);
$string = ereg_replace("u","у",$string);
$string = ereg_replace("k","к",$string);
$string = ereg_replace("e","е",$string);
$string = ereg_replace("n","н",$string);
$string = ereg_replace("g","г",$string);
...... OVER9000
Кто писал - не знаю. Это финал, господа. Задача на три строчки:
function translit($string, $back = 0) {
$converter = array('а'=>'a','б'=>'b','в'=>'v','г'=>'g ','д'=>'d','е'=>'e','ё'=>'e','ж'=>'zh',' з'=>'z','и'=>'i','й'=>'y','к'=>'k','л'=> 'l','м'=>'m','н'=>'n','о'=>'o','п'=>'p', 'р'=>'r','с'=>'s','т'=>'t','у'=>'u','ф'= >'f','х'=>'h','ц'=>'c','ч'=>'ch','ш'=>'s h','щ'=>'sch','ь'=>'\'','ы'=>'y','ъ'=>'\ '','э'=>'e','ю'=>'yu','я'=>'ya','А'=>'A' ,'Б'=>'B','В'=>'V','Г'=>'G','Д'=>'D','Е' =>'E','Ё'=>'E','Ж'=>'Zh','З'=>'Z','И'=>' I','Й'=>'Y','К'=>'K','Л'=>'L','М'=>'M',' Н'=>'N','О'=>'O','П'=>'P','Р'=>'R','С'=> 'S','Т'=>'T','У'=>'U','Ф'=>'F','Х'=>'H', 'Ц'=>'C','Ч'=>'Ch','Ш'=>'Sh','Щ'=>'Sch', 'Ь'=>'\'','Ы'=>'Y','Ъ'=>'\'','Э'=>'E','Ю '=>'Yu','Я'=>'Ya',);
if ($back == 1) $converter = array_flip($converter);
return strtr($string, $converter);
}
+160
jQuery('#text div.catalog_light div.num input[type="text"]').spinner({max: 999, min: 1});
jQuery('#text div.catalog_light div.num .ui-spinner-up').html('').css({'width' : '22px'}).css({'height' : '22px'});
jQuery('#text div.catalog_light div.num .ui-spinner-down').html('').css({'width' : '22px'}).css({'height' : '22px'});
jQuery('#text div.catalog_item_right div.line div.spinner input[type="text"]').spinner({max: 999, min: 1});
jQuery('#text div.catalog_item_right div.line div.spinner .ui-spinner-up').html('').css({'width' : '22px'}).css({'height' : '22px'});
jQuery('#text div.catalog_item_right div.line div.spinner .ui-spinner-down').html('').css({'width' : '22px'}).css({'height' : '22px'});
jQuery('#text div.catalog_item_additional div.double table div.spinner input[type="text"]').spinner({max: 999, min: 1});
jQuery('#text div.catalog_item_additional div.double table div.spinner .ui-spinner-up').html('').css({'width' : '22px'}).css({'height' : '22px'});
jQuery('#text div.catalog_item_additional div.double table div.spinner .ui-spinner-down').html('').css({'width' : '22px'}).css({'height' : '22px'});
jQuery('#text div.catalog div.content div.text div.spinner input[type="text"]').spinner({max: 999, min: 1});
jQuery('#text div.catalog div.content div.text div.spinner .ui-spinner-up').html('').css({'width' : '22px'}).css({'height' : '22px'});
jQuery('#text div.catalog div.content div.text div.spinner .ui-spinner-down').html('').css({'width' : '22px'}).css({'height' : '22px'});
−117
Чудеса от Oracle.
--------- работает:
select to_number(null) from dual union all
select to_char(null) from dual
------------- меняем строчки местами - не работает
select to_char(null) from dual union all
select to_number(null) from dual
Null - это чудо расчудесное, что на дереве растет. Кто его увидит, тот от ужаса замрёт.
+100
<form action="/cgi-bin/repare.mpl" method="post" enctype="multipart/form-data" class="frm">
<input type="hidden" name="sql" value="UPDATE parcels p, parcels_doc d SET p.state = 'transporter_store' WHERE d.doctype = 'confirm.L' AND d.docid IN ($SORD) AND p.good IN ($ter) AND d.docitem = p.good AND p.state <> 'transporter_store' AND d.parcel = p.id">
<input type="submit" class="butt" name="main_ok" value="Исправить">
</form>
Нашли тут в боевом проекте шедевральную SQL Injection "by design".
+129
public Match(source:SourceLexemes, namedLinkDictionary:NamedLinkDictionary, settings:MatchSettings):MatchResult
def endMatchingBlockLexemesByType = settings._endMatchingBlockLexemesByType;
def endMatchingBlockLexemesByValue = settings._endMatchingBlockLexemesByValue;
assert([_beginOfMatchBlock, _endOfMatchBlock].ForAll(excludedItem => !endMatchingBlockLexemesByValue.Contains(excludedItem)));
def matchLexeme(amountOfEntryBlock=0, matchedLexemes=[], sourceTail=source)
|(0, _::_, _) => Some(matchedLexemes, sourceTail)
|(_, _, lexeme_::_) when endMatchingBlockLexemesByType.Contains(lexeme_._type) => None()
|(_, _, lexeme_::lexemes_) =>
match(lexeme_._value, amountOfEntryBlock)
|(value_, _) when endMatchingBlockLexemesByValue.Contains(value_) => None()
|(_beginOfMatchBlock, _) => matchLexeme(amountOfEntryBlock+1, lexeme_::matchedLexemes, lexemes_)
|(_endOfMatchBlock, 0) => None()
|(_endOfMatchBlock, _) => matchLexeme(amountOfEntryBlock-1, lexeme_::matchedLexemes, lexemes_)
|(_, 0) => None()
|(_, _) => matchLexeme(amountOfEntryBlock, lexeme_::matchedLexemes, lexemes_)
|_ => None()
|_ => None()
match(matchLexeme())
|None => MatchResult.Failure(source, namedLinkDictionary)
|Some((matchedLexemes_, unmatchedLexemesTail_)) => MatchResult.Success(unmatchedLexemesTail_, updateNamedLinkDictionary(matchedLexemes_, namedLinkDictionary))
Вчера заглянул в свой код.
Есть один язык, так вот в нем паттерн-матчинг задается на уровне сигнатур функций.
В связи с тем, что я каждую ночь читал книгу по кулХацкелу, то то что там было написано - вьелось мне в подкоррку и я этого даже не заметил.
По ночам когда читаешь что-то, оно проникает в незащищенное подсознание. Я даже не ожидал, что напишу такой код. Но я его написал и только опосля понял, что с кодом что-то не так.
Беда пришла оттуда, откуда её не ждали.
Ещё я больше не могу без таких функций, как id или ($) или (.) или стрелочка\рыбка. Меня все это конечно раздражает... Мне кажется, что меня держут в клетке и не дают пользоваться правильными функциями.
Я всегда считал, что зашквар и профессиональная деформация может быть только от крестов.
Похоже я очень сильно ошибался и поплатился за это.
Что посоветуете?
−115
// =================================================================================================
//
// Starling Framework
// Copyright 2011 Gamua OG. All Rights Reserved.
//
// This program is free software. You can redistribute and/or modify it
// in accordance with the terms of the accompanying license agreement.
//
// =================================================================================================
package starling.utils
{
/** Returns the next power of two that is equal to or bigger than the specified number. */
public function getNextPowerOfTwo(number:int):int
{
if (number > 0 && (number & (number - 1)) == 0) // see: http://goo.gl/D9kPj
return number;
else
{
var result:int = 1;
while (result < number) result <<= 1;
return result;
}
}
}
Для кого-то и логарифм - высшая математика... :(
+23
#include <iostream>
#include <stdlib.h>
#include <typeinfo>
using namespace std;
#define ololo for(volatile register int i=0;i<10;++i);
struct VB
{
virtual void f() const =0;
};
class V1: public VB
{
void f() const {ololo}
};
class V2: public VB
{
void f() const {ololo}
};
struct TU1
{
inline void f() const {ololo}
};
struct TU2
{
inline void f() const {ololo}
};
struct TUB
{
const type_info* type;
union
{
TU1 tu1;
TU2 tu2;
};
template<class T>
void ctor()
{
this->type=&typeid(T);
}
template<class T>
inline void call(const T& f)
{
if(this->type==&typeid(TU1))
f(this->tu1);
else
f(this->tu2);
}
};
enum {N=1000, N2=N*50};
int main() {
cout<<"ok"<<endl;
{
VB*v[N];
for(int i=0;i<N;++i)
if(rand()%2)
v[i]=new V1;
else
v[i]=new V2;
volatile clock_t a=clock();
for(int j=0;j<N2;++j)
for(int i=0;i<N;++i)
v[i]->f();
volatile clock_t b=clock();
cout<< (double)(b - a) / CLOCKS_PER_SEC<<endl;
}
cout<<"ok"<<endl;
{
TUB v[N];
for(int i=0;i<N;++i)
if(rand()%2)
v[i].ctor<TU1>();
else
v[i].ctor<TU2>();
struct Continuation
{
inline void operator()(const TU1& a) const {a.f();}
inline void operator()(const TU2& a) const {a.f();}
} cps;
volatile clock_t a=clock();
for(int j=0;j<N2;++j)
for(int i=0;i<N;++i)
v[i].call(cps);
volatile clock_t b=clock();
cout<< (double)(b - a) / CLOCKS_PER_SEC<<endl;
}
cout<<"ok"<<endl;
return 0;
}
http://ideone.com/plFaLM
Тут в соседней теме разгорелся спор, что быстрее - полиморфизм виртуальных функций или полиморфизм tagget union. По сути последнее - выбор по if нужной виртуальной функции. Говорят в Java быстрее второе.
Тема родилась из http://govnokod.ru/12025#comment158188
Получилось по результатам измерений:
Виртуальные функции: 1.8 секунд.
tagget union: 1.94 секунд.
Притом это всего 2 полиморфных типа в tagget union, а если рост числа полиморфных классов будет расти, то разрыв между виртуальными функциями и tagget union только увеличится. Притом производительность tagget union будет только падать.
Тема поднята ещё со взглядом на функциональные языки. Это ведь там так модны ADT с постоянным внутри ifподобным паттернматчингом по ним.
Жду указания на косяки или способы поднять производительность tagget union.
+124
Сайт ЦИК Украины, нынешние выборы народных депутатов.
http://cvk.gov.ua/vnd2012/wp300pt001f01=900.html
Говно везде - html, css, дизайн, юзабилити.
Для начала цитаты из html-кода страницы. В шапке мы видим
заголовок "XHTML 1.0 Transitional", а в коде - конструкции
в стиле 90-х годов, например:
<IMG src="img2012/bar-blue1.jpg" WIDTH=" 1" HEIGHT=20>
<table class=t1 cellspacing=0><tr>
<td width="50%" class="td2"><font class="f3"> © WWW ІАС "Вибори
народних депутатів України"
<td align="right" class="td2">
</table>
<td class=td10 align=center><font color="maroon">2</font>
<td class=td2><A class=a1 href="wp302pt001f01=900pf7171=52.html">
політична партія Всеукраїнське об’єднання "Батьківщина"</A></td>
В стилях тоже все в порядке, товарищи проявили
отличное знание спецификаций:
... height=14px; ...
... background-color: 666699; ...
... text-decoration: non ...
... background-color : none; ...
... valign: center; ...
Про отсутствие смысла я даже не говорю.
Вот, например, такой перл:
FONT.F1 {color: black; font-family:Arial;font-size: 14pt}
Сайт ЦИК Украины. Не сомневаюсь, что ООО "НПП "Медирент"" и ООО "НПП "Проком" получили за свою работу сотни нефти.
P.S. Плохо, что в самом говнокоде нельзя применять форматирование bb-тегами, для кучи было бы полезно.
+60
function GetEndUTCTime($stime) {
$ddd = split('-', $stime);
if ($ddd[1] == '01')
$ddd[1] = '02'; else if ($ddd[1] == '02')
$ddd[1] = '03'; else if ($ddd[1] == '03')
$ddd[1] = '04'; else if ($ddd[1] == '04')
$ddd[1] = '05'; else if ($ddd[1] == '05')
$ddd[1] = '06'; else if ($ddd[1] == '06')
$ddd[1] = '07'; else if ($ddd[1] == '07')
$ddd[1] = '08'; else if ($ddd[1] == '08')
$ddd[1] = '09'; else if ($ddd[1] == '09')
$ddd[1] = '10'; else if ($ddd[1] == '10')
$ddd[1] = '11'; else if ($ddd[1] == '11')
$ddd[1] = '12'; else if ($ddd[1] == '12') {
$ddd[1] = '01';
$ddd[0]++;
} $result = $ddd[0] . '-' . $ddd[1] . '-' . $ddd[2];
return $result;
}
// Returns submitted time in appropriate format (e.g. 2009-04-01T09:43:25.5244704Z)
Документацыя по API SmartMove.