-
Индусы и STL
Date: 11/10/07
Keywords: asp, microsoft
Недавно я наткнулся в MSDN на такой прекрасный образец индуского кода:
один. http://msdn2.microsoft.com/en-us/library/bke28kf2(VS.80).aspx
два. http://msdn2.microsoft.com/en-us/library/0ee18a2x(VS.71).aspx
посмотрите только как эти быдленыши с расжиженными от .нет мозгами пользуются stl. в индии видимо не знаюn, что такое back_inserter... и не только про это!
Source: http://community.livejournal.com/code_wtf/112327.html
-
похапе
Date: 11/08/07
Keywords: no keywords
Разбираю сейчас код, который таки успел написать один товарищ за наше недолгое сотрудничество. Подсчет количества элементов массива (функция get_new_commentsList возвращает массив).
$s3 = get_new_commentsList($s1['id_boutique']);
$ik = 0;
foreach ($s3 as $s4)
{
$ik += 1;
}
+ бонус, его объяснения из аськи:
1. обычно по неглобальным вопросам я принимаю решения первые приходящие в голову
2. просто в универе учили нас в основном не юзать готовые фичи а самим их делать
3. ты вот смотрел на то как выписана в стандарте функция count? я не думаю что она намного быстрее
UPDATE, из его "сопроводительной документации": Переменные и функции имеют названия позволяющие понять их смысл и с пониманием кода в целом проблем не должно возникнуть.
Source: http://community.livejournal.com/code_wtf/111999.html
-
Наглядная уверенность
Date: 11/07/07
Keywords: no keywords
Бывашие (слава богу) коллеги написали:
public bool ExistsTransaction(int fundID, int contactID)
{
int transactionID = GetProspectTransactionID(fundID, contactID);
if (transactionID == 0)
return false;
else
return true;
}
Source: http://community.livejournal.com/code_wtf/111769.html
-
Читал код, много думал
Date: 11/07/07
Keywords: no keywords
public String getAddress(){
return this.getAddress();
}
Source: http://community.livejournal.com/code_wtf/111431.html
-
JSP жжотЪ
Date: 11/07/07
Keywords: no keywords
<%
if (true) {
%>
Source: http://community.livejournal.com/code_wtf/111141.html
-
PEAR::Tar
Date: 11/02/07
Keywords: html
С момента моего знакомства с установщиками PEAR-пакетов в конструкторе класса Archive::Tar имеется конструкция, выглядящая абсурдом для любого программиста, знакомого с ООП. Итак, обратите внимание на места, где встречается return
в коде!
// {{{ constructor
/**
* Archive_Tar Class constructor. This flavour of the constructor only
* declare a new Archive_Tar object, identifying it by the name of the
* tar file.
* If the compress argument is set the tar will be read or created as a
* gzip or bz2 compressed TAR file.
*
* @param string $p_tarname The name of the tar archive to create
* @param string $p_compress can be null, 'gz' or 'bz2'. This
* parameter indicates if gzip or bz2 compression
* is required. For compatibility reason the
* boolean value 'true' means 'gz'.
* @access public
*/
function Archive_Tar($p_tarname, $p_compress = null)
{
$this->PEAR();
$this->_compress = false;
$this->_compress_type = 'none';
if (($p_compress === null) || ($p_compress == '')) {
if (@file_exists($p_tarname)) {
if ($fp = @fopen($p_tarname, "rb")) {
// look for gzip magic cookie
$data = fread($fp, 2);
fclose($fp);
if ($data == "\37\213") {
$this->_compress = true;
$this->_compress_type = 'gz';
// No sure it's enought for a magic code ....
} elseif ($data == "BZ") {
$this->_compress = true;
$this->_compress_type = 'bz2';
}
}
} else {
// probably a remote file or some file accessible
// through a stream interface
if (substr($p_tarname, -2) == 'gz') {
$this->_compress = true;
$this->_compress_type = 'gz';
} elseif ((substr($p_tarname, -3) == 'bz2') ||
(substr($p_tarname, -2) == 'bz')) {
$this->_compress = true;
$this->_compress_type = 'bz2';
}
}
} else {
if (($p_compress === true) || ($p_compress == 'gz')) {
$this->_compress = true;
$this->_compress_type = 'gz';
} else if ($p_compress == 'bz2') {
$this->_compress = true;
$this->_compress_type = 'bz2';
} else {
die("Unsupported compression type '$p_compress'\n".
"Supported types are 'gz' and 'bz2'.\n");
return false;
}
}
$this->_tarname = $p_tarname;
if ($this->_compress) { // assert zlib or bz2 extension support
if ($this->_compress_type == 'gz')
$extname = 'zlib';
else if ($this->_compress_type == 'bz2')
$extname = 'bz2';
if (!extension_loaded($extname)) {
PEAR::loadExtension($extname);
}
if (!extension_loaded($extname)) {
die("The extension '$extname' couldn't be found.\n".
"Please make sure your version of PHP was built ".
"with '$extname' support.\n");
return false;
}
}
}
// }}}
?>
Это кросспост. Оригинал тут: http://digital-dog.livejournal.com/240035.html?mode=reply
Source: http://community.livejournal.com/code_wtf/111012.html
-
Рекурсивный WTF
Date: 10/31/07
Keywords: no keywords
Процесс запускается и через каждый промежуток времени равный SLEEP_TIMEOUT вызывает метод для чистки базы.
"Элегантный" код не правда ли?
public void run()
{
try
{
eraseUnnecessaryResults();
}
catch (Exception e)
{
logger.error("Results monitor start failed!", e);
}
}
protected void eraseUnnecessaryResults()
{
try
{
... some code ...
sleep(SLEEP_TIMEOUT);
eraseUnnecessaryResults();
}
catch (InterruptedException e)
{
logger.warn("Results monitor interrupted!", e);
}
}
Source: http://community.livejournal.com/code_wtf/110769.html
-
Сила регекспов
Date: 10/29/07
Keywords: no keywords
Вам когда-нибудь надо было вырезать конкретно тег начиная с
до соответствующего ему
?
Вот proof-of-concept код:
$str = "1+2+32-1-";
preg_match("# ( ".
" ( (?>[^<]*) ( < ( ([^/d]|d([^i]|i[^v])) | /([^d]|d([^i]|i[^v])) ) )? )* ".
" | (?R) )* #xi", $str, $m);
var_dump($m[0]);
?>
вырезает аккурат от до . Если заменить dqiv1 на div1, вырежет ..
Крррысота! Жаль, очень сложный матчи тега =( для однобуквенных много проще будет.
Source: http://community.livejournal.com/code_wtf/110366.html
-
Event::1024
Date: 10/29/07
Keywords: no keywords
CODE_WTF - 1024 читателей!
Знаковое событие произошло сегодня, дамы и господа!
Всех поздраляем от имени администрации!
Ура!
Хотите сообщить вашим читателям о нашем сообществе? Скопируйте к себе в журнал следующее сообщение:
Всем спасибо!
Source: http://community.livejournal.com/code_wtf/110139.html
-
Сегодня в меню только лапша.
Date: 10/29/07
Keywords: no keywords
Из js-файла построения меню одного популярного буржуйского сайта:
if(whoIsDefault == 0) {
document.getElementById('headerPipe2').style.visibility="visible";
document.getElementById('headerPipe3').style.visibility="visible";
document.getElementById('headerPipe4').style.visibility="visible";
document.getElementById('headerPipe5').style.visibility="visible";
document.getElementById('headerPipe6').style.visibility="visible";
document.getElementById('headerPipe7').style.visibility="visible";
document.getElementById('headerPipe8').style.visibility="visible";
}else if(whoIsDefault == 1) {
document.getElementById('headerPipe2').style.visibility="hidden";
document.getElementById('headerPipe3').style.visibility="visible";
document.getElementById('headerPipe4').style.visibility="visible";
document.getElementById('headerPipe5').style.visibility="visible";
document.getElementById('headerPipe6').style.visibility="visible";
document.getElementById('headerPipe7').style.visibility="visible";
document.getElementById('headerPipe8').style.visibility="visible";
...
}else if(whoIsDefault == 8) {
document.getElementById('headerPipe2').style.visibility="visible";
document.getElementById('headerPipe3').style.visibility="visible";
document.getElementById('headerPipe4').style.visibility="visible";
document.getElementById('headerPipe5').style.visibility="visible";
document.getElementById('headerPipe6').style.visibility="visible";
document.getElementById('headerPipe7').style.visibility="visible";
document.getElementById('headerPipe8').style.visibility="hidden";
}
В таком духе еще мест шесть.
Вероятность, что юзали генератор - мала.
Source: http://community.livejournal.com/code_wtf/109970.html
-
Creole is inspired by Java's JDBC API...
Date: 10/29/07
Keywords: no keywords
// prepared statement
$stmt = $conn->prepareStatement("SELECT * FROM user WHERE id = ?");
$stmt->setInt(1, $id);
$stmt->setLimit(10);
$stmt->setOffset(5);
?>
Ни в жисть не поверю, что они реально JDBC вдохновляются.
Upd. Кстати, это отсюда.
Source: http://community.livejournal.com/code_wtf/109742.html
-
Неудобный IF
Date: 10/25/07
Keywords: no keywords
public static function getPublicCommonCriteria($criteria=null) {
if ( $criteria != null ) {
} else {
$criteria = new Criteria();
}
Если в IF неудобный предикат, то пихаем логику в ELSE. Грамотно.
Source: http://community.livejournal.com/code_wtf/109190.html
-
похапе
Date: 10/23/07
Keywords: php, mysql, sql
Прелюдия: есть товарищ, который имеет программистское образование, умеет C++, любит порассуждать о том, что php не язык, mysql не субд и т.д. И ему дана простая задача: есть переменная, которая может содержать значения от 1 до 10 - рейтинг определенного объекта. Есть картинки с названиями 1.gif, 2.gif, 3.gif и т.д. Как это сделал бы я? (в конечном итоге и сделал): А как поступит хардкорный сишник, для которого php - говноязык?
switch ($rres['karma']) {
case '':?>
break;
case '1':?>
break;
case '2':?>
break;
case '3':?>
break;
case '4':?>
break;
case '5':?>
break;
case '6':?>
break;
case '7':?>
break;
case '8':?>
break;
case '9':?>
break;
case '10':?>
break;
}
сохранено форматирование оригинала.
Source: http://community.livejournal.com/code_wtf/108965.html
-
implicit bool-to-float and float-to-bool conversion.
Date: 10/22/07
Keywords: no keywords
Сегодня обнаружил в нашем заголовочном файле про конвертацию строк<->числа следующее:
///кидает исключение, если преобразование невозможно.
int ToInt(const char *str);
bool IsInt(const char *str);
///кидает исключение, если преобразование невозможно.
float ToFloat(const char *str);
float IsFloat(const char *str);
Внутри IsFloat где-то
if (всякие парсинг, sscanf)
return true ... return false
Продукт зашиплен, работает и хорошо продаётся. float прожил в SVN почти год, в течение 8 ревизий этого файла.
Source: http://community.livejournal.com/code_wtf/108672.html
-
русский след в массачусетсском технологическом институте
Date: 10/22/07
Keywords: technology
krb5-1.6.2/src/kdc/kerberos_v4.c
* Copyright 1985, 1986, 1987, 1988,1991 by the Massachusetts Institute of Technology.
static void
hang(void)
{
...
char buf[256];
sprintf(buf,
"Kerberos will wait %d seconds before dying so as not to loop init",
(int) pause_int);
klog(L_KRB_PERR, buf);
sleep((unsigned) pause_int);
klog(L_KRB_PERR, "Do svedania....\n");
...
}
Source: http://community.livejournal.com/code_wtf/108532.html
-
Event::1000!
Date: 10/22/07
Keywords: no keywords
CODE_WTF - 1000 читателей!
Хотите сообщить вашим читателям о нашем сообществе? Скопируйте к себе в журнал следующее сообщение:
Всем спасибо!
Source: http://community.livejournal.com/code_wtf/108183.html
-
JS задержка, предположительно на 1000 миллисекунд
Date: 10/18/07
Keywords: no keywords
var ss = "qq";
for (ii = 0; ii < 1000; ii++) {
ss += "ffff";
}
Источник
Source: http://community.livejournal.com/code_wtf/107684.html
-
C# (.NET 2.0) WTF
Date: 10/17/07
Keywords: no keywords
public bool isDone(string doneDate)
{
try
{
DateTime.Parse(doneDate);
}
catch
{
return false;
}
return true;
}
В принципе, я понимаю, что этот код мог сохраниться с времен первого .NETа, где у класса DateTime не было метода TryParse(), но все равно больно. Да и вообще, здесь все грустно.
Source: http://community.livejournal.com/code_wtf/107088.html
-
C++ WTF
Date: 10/12/07
Keywords: no keywords
for (int iIndex = iMinIndex; iIndex <= iMaxIndex; ++iIndex)
{
if (config.type == HTML) { DoSomethingWithHTML(.....); }
else if (config.type == Text) { DoSomethingWithText(.....); }
............................
else if (config.type == WordDoc) { DoSomethingWithWordDoc(.....); }
}
Ноу комментс.
Source: http://community.livejournal.com/code_wtf/106871.html
-
XML node.
Date: 10/12/07
Keywords: xml
class XMLDOM_NODE
{
public:
XMLDOM_NODE (IXMLDOMNode2Ptr& spNode);
~XMLDOM_NODE ();
public:
IXMLDOMNode2Ptr m_spNode;
};
Без комментариев.
Source: http://community.livejournal.com/code_wtf/106564.html