- 1
- 2
- 3
- 4
...
chmod($file, 0777);
unlink($file);
...
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+167
...
chmod($file, 0777);
unlink($file);
...
На просторах интернета можно найти функцию для рекурсивного удаления папки со всем содержимым вот с таким фрагментом.
+129
Author: decker <decker@personal-army> 2010-06-19 05:39:42
Committer: decker <decker@personal-army> 2010-06-19 05:39:42
fix potential race in reservation id generation
@@ -97,7 +98,7 @@ public class VmInstances extends AbstractNamedRegistry<VmInstance> {
do {
MessageDigest digest = Hashes.Digest.MD5.get();
digest.reset();
- digest.update( Long.toString( rsvId + launchIndex + System.currentTimeMillis() ).getBytes() );
+ digest.update( Long.toString( rsvId + launchIndex + System.nanoTime( ) ).getBytes() );
Adler32 hash = new Adler32();
hash.reset();
Вот так суровые калифорнийцы сурово чинят race...
+131
#include <stdio.h>
void factorization(int num, int show) {
int num1 = num;
int n = 2;
while ( n*n <= num1 ) {
if ( num%n == 0 ) {
num = num / n;
if ( show )
printf( "%d\n", n );
} else {
n ++;
}
}
}
int main() {
int i = 0;
while ( i < 1000 ) {
factorization(999999, 0);
i ++;
}
return 0;
}
Опубликовано в одной из ссылок с http://habrahabr.ru/blogs/ruby/48952/ (если надо, точную ссылку найду позже).
Код раскладывает число на простые множители тупым перебором делителей. Мало того, что этот код медленный, так он иногда последний множитель пропускает. Одновременно и ошибка, и скорость исправляются так:
- while ( n*n <= num1 ) {
+ while ( n <= num ) {
Неожиданно, правда?
+135
0 DIM P(4): DIM R(4)
10 DATA 173, 48, 192, 136, 208, 5, 206, 1, 3, 240, 9, 202, 208, 245, 174, 0, 3, 76, 2, 3, 96,,0
20 FOR X=770 TO 792
30 READ Y
40 POKE X, Y
50 NEXT X
60 DATA 192, 152, 144, 128, 114
70 FOR I=0 TO 4
80 READ P(I)
90 NEXT I
100 DATA 255, 128, 64, 64, 128
FOR I=0 TO 4
READ R(I)
NEXT I
FOR I=0 TO 4
POKE 768, P(I)
POKE 769, R(I)
CALL 770
NEXT I
END
Не совсем ГК, зато выглядит страшно. Шарманка для ПЭВМ «Агат-7». Вторая строка — машинные коды. Выглядит как обфуска. Вот листинг:
.ORG 768
L_768: .BYTE 0 ; НОТА
L_769: .BYTE 0 ; ДЛИТЕЛЬНОСТЬ
L_770: LDA $C030
L_773: DEY
BNE L_781
DEC L_769
BEQ L_790
L_781: DEX
BNE L_773
LDX L_768
JMP L_770
L_790: RTS
.BYTE $FF
.BYTE 0
+129
for i in 14 15 27 29 38; do # make a sed string to replace special characters
hexval=$(printf \\\\x%02x $i)
sedstr=$sedstr"s/'$hexval/chr($i)||'/g;s/$hexval'/'||chr($i)/g;s/$hexval/'||chr($i)||'/g;"
done
cat <<EOF | sqlplus -S $DB_LOGIN | sed $sedstr | awk -v dbdir=db/data '{print > dbdir"/"$3".sql"}'
$SPINIT
BEGIN
FOR i IN (SELECT * FROM USER_OBJECTS WHERE OBJECT_TYPE='TABLE' ORDER BY OBJECT_NAME) LOOP
DECLARE
all_cols VARCHAR2(32767) := '';
TYPE data_cur_type IS REF CURSOR;
data_cur data_cur_type;
ins_str VARCHAR2(32767);
BEGIN
FOR j IN (SELECT DISTINCT(COLUMN_NAME) FROM USER_TAB_COLUMNS
WHERE TABLE_NAME=i.OBJECT_NAME AND
DATA_TYPE IN ('VARCHAR2', 'CHAR', 'NUMBER', 'DATE')
ORDER BY COLUMN_NAME) LOOP
all_cols := all_cols || j.column_name || ',';
END LOOP;
IF all_cols is null THEN GOTO end_of_loop; END IF;
all_cols := RTRIM(all_cols,',');
OPEN data_cur FOR 'select ' ||
'''INSERT INTO ' || i.object_name || ' (' || all_cols || ') VALUES (' || '''''''||' || replace(all_cols, ',', '||'''''',''''''||') || '||'''''');''' ||
' from ' || i.object_name || ' order by ' || all_cols;
LOOP
FETCH data_cur INTO ins_str;
EXIT WHEN data_cur%NOTFOUND;
dbms_output.put_line(ins_str);
END LOOP;
CLOSE data_cur;
END;
<<end_of_loop>> NULL;
END LOOP;
END;
/
EOF
Проблеме экранирования посвящается.
На стыке технологий: экспорт данных из БД в виде insert-ов. Там еще есть awk-шный код по разбору всего, что получилось, но он не такой ужасный.
Автор я, если чо:)
−126
.........................................
if [[ "$rez" = "0%" ]]
then
let "i = i + 1"
else
#Ещё чуток индийского кода:)
let "i = i + 0"
fi
done
.........................................
−864
Гавнокод --
SELECT * FROM Table1
WHERE [Id] not in
(
SELECT min([Id]) FROM Table1
WHERE [Code] in
(
SELECT [Code] FROM Table1
GROUP BY [Code] HAVING count([Code]) > 1
)
GROUP BY [Code]
)
and [Id] in
(
SELECT [Id] FROM Table1
WHERE [Code] in (
SELECT [Code] FROM Table1
GROUP BY [Code]
HAVING count([Code]) > 1
)
)
Нормальний варіант --
SELECT * FROM Table1 AS a
WHERE [Id] not in
(
SELECT min([Id]) FROM a_ListParam
WHERE a_ListParam.[Code] = a.[Code]
)
+156
// считает кол-во основных вопросов в тесте
function get_qnum($file_name) {
$dom = get_str_file($file_name);
$root = $dom->documentElement;
$nodes = $root->childNodes;
$currentTask = array();
foreach ($nodes as $node) {
if ($node->nodeName == 'TASK') {
$currentTaskName = $node->getAttribute('NAME');
if ($currentTaskName == $_SESSION['TEOR']) {
$currentTask['NAME'] = $currentTaskName;
$currentTask['QUEST'] = array();
$Task_info = $node->childNodes;
foreach ($Task_info as $info) {
if ($info->nodeName == 'QUEST')
$currentTask['QUEST'][] = ss_qstn_desc($info);
if ($info->nodeName == 'QUESTYESNO')
$currentTask['QUEST'][] = ss_qstnyesno_desc($info);
}
}
}
}
return count($currentTask['QUEST']);
}
+89
## dup_hq - merge ##
dup = opos!=pos || abs(dm)<2 || abs(dm)==3 ? 0 : dcn*5<dbc && dnn*5<dbc &&
(dcn<1.25*thr || bn<bc && pos==lpos) || (dcn*dcn<dbc || dcn*5<dbc) && bn<bc && pos==lpos
&& dnn<.9*dbc || dnn*9<dbc && dcn*3<dbc ? 1 : (dbc*dbc<dcn || dbc*5<dcn) &&
bb<bc && pos==lpos && dbb<.9*dcn || dbb*9<dcn && dbc*3<dcn || dbb*5<dcn &&
dbc*5<dcn && (dbc<1.25*thr || bb<bc && pos==lpos) ? -1 : 0
mer = bom==false && opos==pos && dup==0 && abs(dm)>2 &&
(dbc*8<dcn || dbc*8<dbb || dcn*8<dbc || dcn*8<dnn || dbc*2<thr ||
dcn*2<thr || dnn*9<dbc && dcn*3<dbc || dbb*9<dcn && dbc*3<dcn)
add = bp1*cn2>bn2*cp1*(1+thr*.01) && bn0*cn2>bn2*cn0*(1+thr*.01) &&
cn2*bn1>cn1*n2*(1+thr*.01)
dup = bom ? (bn0>bp2 && bn0>=bp1 && bn0>bn1 && bn0>bn2 && cn0<125 ?
(d12*d12<d10 || d12*9<d10) ? 1 : (d10*d10<d12 || d10*9<d12) ?
0 : 4 : bp1>bp3 && bp1>=bp2 && bp1>bn0 && bp1>bn1 ? 1 : 0) : dup!=0 ?
dup : om>0 && om<5 ? (bbool==false ? 0 : om==4 && bp1*cn1<bn1*cp1 ||
om==3 && d10<d01 || om==1 ? -1 : 1) : om==5 ? (bp1*cp2>bp2*cp1*(1+thr*.01) &&
bn0*cp2>bp2*cn0*(1+thr*.01) && cp2*bn1>cn1*bp2*(1+thr*.01) &&
(add==false || cp2*bn2>cn2*bp2) ? -2 : add ? 2 : bn0*cp1>bp1*cn0 &&
(bn0*cn1<bn1*cn0 || cp1*bn1>cn1*bp1) ? -1 : bn0*cn1>bn1*cn0 ? 1 : 0) : 0
это называется AviSynth - и это вполне нормальный скрипт, ибо другого пути там просто нет, да и альтернатив AviSynthy пока нет
+79
long sourceBaseId = Long.parseLong(_depId+"00000000000000");