-
Лучший говнокод
- В номинации:
-
- За время:
-
-
+5
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
op =: (*&_1@|.@],[)/
do =: >:@>@{. ; op@>@{:
check =: *./@(>:&0)*.*./@(2&(</\))
((,do@{:)`]@.(check@>@{:@{:))^:_ (,: do)0&;(i. 36)
┌──┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│0 │0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 │
├──┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│1 │_1 _3 _5 _7 _9 _11 _13 _15 _17 _19 _21 _23 _25 _27 _29 _31 _33 _35 34 32 30 28 26 24 22 20 18 16 14 12 10 8 6 4 2 0 │
├──┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│2 │3 7 11 15 19 23 27 31 35 _32 _28 _24 _20 _16 _12 _8 _4 0 2 6 10 14 18 22 26 30 34 _33 _29 _25 _21 _17 _13 _9 _5 _1 │
├──┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│3 │_7 _15 _23 _31 32 24 16 8 0 _6 _14 _22 _30 33 25 17 9 1 _5 _13 _21 _29 34 26 18 10 2 _4 _12 _20 _28 35 27 19 11 3 │
├──┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│4 │15 31 _24 _8 6 22 _33 _17 _1 13 29 _26 _10 4 20 _35 _19 _3 11 27 _28 _12 2 18 34 _21 _5 9 25 _30 _14 0 16 32 _23 _7 │
├──┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│5 │_31 8 _22 17 _13 26 _4 35 3 _27 12 _18 21 _9 30 0 _32 7 _23 16 _14 25 _5 34 2 _28 11 _19 20 _10 29 _1 _33 6 _24 15 │
├──┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│6 │_8 _17 _26 _35 27 18 9 0 _7 _16 _25 _34 28 19 10 1 _6 _15 _24 _33 29 20 11 2 _5 _14 _23 _32 30 21 12 3 _4 _13 _22 _31 │
├──┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│7 │17 35 _18 0 16 34 _19 _1 15 33 _20 _2 14 32 _21 _3 13 31 _22 _4 12 30 _23 _5 11 29 _24 _6 10 28 _25 _7 9 27 _26 _8 │
├──┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│8 │_35 0 _34 1 _33 2 _32 3 _31 4 _30 5 _29 6 _28 7 _27 8 _26 9 _25 10 _24 11 _23 12 _22 13 _21 14 _20 15 _19 16 _18 17 │
├──┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│9 │0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 _26 _27 _28 _29 _30 _31 _32 _33 _34 _35│
├──┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│10│1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 _34 _32 _30 _28 _26 _24 _22 _20 _18 _16 _14 _12 _10 _8 _6 _4 _2 0 │
├──┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│11│_3 _7 _11 _15 _19 _23 _27 _31 _35 32 28 24 20 16 12 8 4 0 _2 _6 _10 _14 _18 _22 _26 _30 _34 33 29 25 21 17 13 9 5 1 │
├──┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│12│7 15 23 31 _32 _24 _16 _8 0 6 14 22 30 _33 _25 _17 _9 _1 5 13 21 29 _34 _26 _18 _10 _2 4 12 20 28 _35 _27 _19 _11 _3 │
├──┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│13│_15 _31 24 8 _6 _22 33 17 1 _13 _29 26 10 _4 _20 35 19 3 _11 _27 28 12 _2 _18 _34 21 5 _9 _25 30 14 0 _16 _32 23 7 │
├──┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│14│31 _8 22 _17 13 _26 4 _35 _3 27 _12 18 _21 9 _30 0 32 _7 23 _16 14 _25 5 _34 _2 28 _11 19 _20 10 _29 1 33 _6 24 _15 │
├──┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│15│8 17 26 35 _27 _18 _9 0 7 16 25 34 _28 _19 _10 _1 6 15 24 33 _29 _20 _11 _2 5 14 23 32 _30 _21 _12 _3 4 13 22 31 │
├──┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│16│_17 _35 18 0 _16 _34 19 1 _15 _33 20 2 _14 _32 21 3 _13 _31 22 4 _12 _30 23 5 _11 _29 24 6 _10 _28 25 7 _9 _27 26 8 │
├──┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│17│35 0 34 _1 33 _2 32 _3 31 _4 30 _5 29 _6 28 _7 27 _8 26 _9 25 _10 24 _11 23 _12 22 _13 21 _14 20 _15 19 _16 18 _17 │
├──┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│18│0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 │
└──┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
В общем суть такова...
Включил я музыку, взял в руку колоду карт и начал думать о жизни. Взял я верхнюю карту и перевернул ее, положил обратно, потом взял две карты, перевернул и опять положил обратно. И так добавляя по одной карте каждый раз. В итоге, когда я дошел до конца, колода оказалась разделена на 2 половину с перевернутыми и не перевернутыми картами.
И тут я подумал - а сколько раз нужно проделать такие манипуляции что бы колода вернулась в исходное состояние? - открыл j, и...
kegdan,
03 Мая 2016
-
+157
- 1
setcookie('password', $passHash , time() + $this::TIME_COOKIE * 1000 + $remember ? $this::TIME_COOKIE_REMEMBER : 0 * 1000 );
И я то думал, почему кука не появляется...
Dart_Sergius,
21 Апреля 2014
-
−99
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
for i in range(0,len(m)):
if i==0:
f=False
s += x[m[i]]
else:
if i==len(m)-1:
if not f:
f=False
s += ',' + x[m[i]]
else:
f=False
s += x[m[i]]
break
else:
if m[i]-m[i-1]==1:
if m[i+1]-m[i]==1:
if not f:
f=True
s += '-'
continue
else:
continue
else:
if not f:
f=False
s += ',' + x[m[i]]
else:
f=False
s += x[m[i]]
else:
f=False
s += ','+x[m[i]]
Была задача: на вход(m) подается массив чисел, например [1,3,5,6,7], а на выходе получаем человекочитаемую строку(s) "пн,ср,пт-вс"
Вышло такое из меня пару месяцев назад, теперь я никогда не смогу в нем разобраться х_х
MAaxim91,
05 Февраля 2014
-
−92
Вы все еще думаете, что сочетание and'а и or'а это тернарник? Тогда мы идем к вам :)
http://ideone.com/qC0TyS
bormand,
28 Августа 2013
-
+125
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
//сервер сайд (из colors.php)
$colors = [
'banana' => 'yellow',
'orange' => 'orange',
'cucumber' => 'green'
];
echo $colors[$_GET['fruit']];
//клиент сайд (js)
var fruits = ['banana', 'orange', 'cucumber']
for (var i in fruits) {
var fruit = fruits[i]
$.get('colors.php?fruit='+fruit, function(color){
document.write(fruit +' is '+ color +'<br/>')
})
}
Этот код показывают и задают вопрос почти на любом собеседовании на должность web-программита:
Что здесь неверно и как это исправить?
LispGovno,
02 Марта 2013
-
+95
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
// same as Callable but without exception
public interface Executable<T>
{
public T call();
}
/*В другом классе: методы для конверсии туда-сюда */
public Callable<T> toCallable(final Executable<T> ex){
return new Callable<T>(){
public T call() throws Exception{
return ex.call();
}
};
}
public Executable<T> toExecutable(final Callable<T> c)
{
return new Executable<T>(){
public T call(){
try{
return c.call();
}catch (Exception e){
throw new RuntimeException(e);
}
}
};
}
3.14159265,
11 Июня 2012
-
+76
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
@Override
public ResponseBag[] send(SmsBag[] smsBag) {
ArrayList<ResponseBag> responseList = new ArrayList<ResponseBag>();
for(SmsBag bag : smsBag) {
responseList.add(super.send(bag));
}
ResponseBag[] responseBag = new ResponseBag[responseList.size()];
return responseList.toArray(responseBag);
}
manyrus,
18 Августа 2011
-
+160
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
$month = explode(".",$arResult['voting']['DATE_CREATE']);
$day = $month['0'];
$yarh = $month['2'];
$month = $month['1'];
switch ($month) {
case 01:
$monthtext = "января";
break;
case 02:
$monthtext = "февраля";
break;
case 03:
$monthtext = "марта";
break;
case 04:
$monthtext = "апреля";
break;
case 05:
$monthtext = "мая";
break;
case 06:
$monthtext = "июня";
break;
case 07:
$monthtext = "июля";
break;
case 08:
$monthtext = "августа";
break;
case 09:
$monthtext = "сентября";
break;
case 10:
$monthtext = "октября";
break;
case 11:
$monthtext = "ноября";
break;
case 12:
$monthtext = "декабря";
break;
}
Как думаете что произойдет в августе(и последующих месяцах) с таким кодом? :-)
P.S. $arResult['voting']['DATE_CREATE'] в формате %d.%m.%Y
develx0,
25 Мая 2011
-
+1
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
import java.util.concurrent.TimeUnit;
import java.util.regex.Pattern;
import static java.lang.System.*;
import static java.util.concurrent.TimeUnit.NANOSECONDS;
public class Rep implements CharSequence
{
String str = null;
int len;
char base;
public Rep(char x, int count)
{
this.len = count;
this.base = x;
}
@Override
public int length()
{
return len;
}
@Override
public char charAt(int index)
{
return base;
}
@Override
public CharSequence subSequence(int beginIndex, int endIndex)
{
if (beginIndex < 0) {
throw new StringIndexOutOfBoundsException(beginIndex);
}
if (endIndex > this.len) {
throw new StringIndexOutOfBoundsException(endIndex);
}
int subLen = endIndex - beginIndex;
if (subLen < 0) {
throw new StringIndexOutOfBoundsException(subLen);
}
return ((beginIndex == 0) && (endIndex == this.len)) ? this
: new Rep(this.base, subLen);
}
@Override
public String toString()
{
return null!=str ? str : (this.str = new String(new char[]{base}).repeat(len));
}
public static void main(String... args)
{
long ns = 0L;
Pattern lazy = Pattern.compile("^(11+?)\\1+$");
Pattern greedy = Pattern.compile("^(11+?)\\1+$");
ns=nanoTime(); lazy .matcher(new Rep('1',100160079)).matches(); out.println( NANOSECONDS.toMillis(nanoTime()-ns));
ns=nanoTime(); greedy.matcher(new Rep('1',100160079)).matches();out.println( NANOSECONDS.toMillis(nanoTime()-ns));
ns=nanoTime(); greedy.matcher(new Rep('1',1165139)).matches();out.println( NANOSECONDS.toMillis(nanoTime()-ns));
ns=nanoTime(); "1".repeat( 100160079 ).matches("^(11+?)\\1+$") ; out.println("Lazy String:"+ NANOSECONDS.toMillis(nanoTime()-ns));
ns=nanoTime(); "1".repeat( 100160079 ).matches("^(11+)\\1+$") ; out.println("Greedy String:"+ NANOSECONDS.toMillis(nanoTime()-ns));
}
}
Так как в «Йажа» регулярки работают не на строках, а на интерфейсе CharSequence https://docs.oracle.com/javase/8/docs/api/index.html?java/lang/CharSequence.html
Решил что можно сделать тупую реализацию CharSequence для строк из повторяющегося символа.
https://ideone.com/8eYFU7
3.14159265,
16 Июля 2020
-
+2
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
/* meta */
typedef struct r_anal_meta_item_t {
ut64 from;
ut64 to;
ut64 size;
int type;
int subtype;
char *str;
int space;
} RAnalMetaItem;
typedef struct {
struct r_anal_t *anal;
int type;
int rad;
SdbForeachCallback cb;
void *user;
int count;
struct r_anal_type_function_t *fcn;
} RAnalMetaUserItem;
typedef struct r_anal_range_t {
ut64 from;
ut64 to;
int bits;
} RAnalRange;
#define R_ANAL_UNMASK_TYPE(x) (x&R_ANAL_VAR_TYPE_SIZE_MASK)
#define R_ANAL_UNMASK_SIGN(x) (((x& R_ANAL_VAR_TYPE_SIGN_MASK)>> R_ANAL_VAR_TYPE_SIGN_SHIFT)==R_ANAL_VAR_TYPE_UNSIGNED)?0:1
#define R_ANAL_GET_OFFSET(x,y,z) \
(x && x->binb.bin && x->binb.get_offset)? \
x->binb.get_offset (x->binb.bin, y, z): -1
enum {
R_ANAL_DATA_TYPE_NULL = 0,
R_ANAL_DATA_TYPE_UNKNOWN = 1,
R_ANAL_DATA_TYPE_STRING = 2,
R_ANAL_DATA_TYPE_WIDE_STRING = 3,
R_ANAL_DATA_TYPE_POINTER = 4,
R_ANAL_DATA_TYPE_NUMBER = 5,
R_ANAL_DATA_TYPE_INVALID = 6,
R_ANAL_DATA_TYPE_HEADER = 7,
R_ANAL_DATA_TYPE_SEQUENCE = 8,
R_ANAL_DATA_TYPE_PATTERN = 9,
};
// used from core/anal.c
#define R_ANAL_ADDR_TYPE_EXEC 1
#define R_ANAL_ADDR_TYPE_READ 1 << 1
#define R_ANAL_ADDR_TYPE_WRITE 1 << 2
#define R_ANAL_ADDR_TYPE_FLAG 1 << 3
#define R_ANAL_ADDR_TYPE_FUNC 1 << 4
#define R_ANAL_ADDR_TYPE_HEAP 1 << 5
#define R_ANAL_ADDR_TYPE_STACK 1 << 6
#define R_ANAL_ADDR_TYPE_REG 1 << 7
#define R_ANAL_ADDR_TYPE_PROGRAM 1 << 8
#define R_ANAL_ADDR_TYPE_LIBRARY 1 << 9
#define R_ANAL_ADDR_TYPE_ASCII 1 << 10
#define R_ANAL_ADDR_TYPE_SEQUENCE 1 << 11
#define R_ANAL_ARCHINFO_MIN_OP_SIZE 0
#define R_ANAL_ARCHINFO_MAX_OP_SIZE 1
#define R_ANAL_ARCHINFO_ALIGN 2
#define R_ANAL_ARCHINFO_DATA_ALIGN 4
Как нужно называть идентификаторы.
Источник:
https://github.com/radareorg/radare2/
TEH3OPHblu_nemyx,
11 Июля 2020