- 1
- 2
- 3
- 4
- 5
EnumChildWindows function (Windows)
...
Return value
Type: BOOL
The return value is not used.
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 168
+125
EnumChildWindows function (Windows)
...
Return value
Type: BOOL
The return value is not used.
Никому не нужный бул. Неужели нельзя было написать The return value is TRUE, раз юзать void религия не позволяет?
Пруф: http://msdn.microsoft.com/library/windows/desktop/ms633494.
+77
public static long[] intArrayToLongArray(int[] in) {
long[] out = new long[in.length];
for (int i=0, n=in.length; i<n; i++)
out[i] = in[i];
return out;
}
public static void vibrateByResource(Context context, int resId) {
Vibrator vibrator = (Vibrator)context.getSystemService(Context.VIBRATOR_SERVICE);
long[] pattern = intArrayToLongArray(context.getResources().getIntArray(resId));
vibrator.vibrate(pattern, -1);
}
vibrateByResource(this, R.array.vibroPatternSuccess);
vibrate() принимает только long[], но не int[], в ресурсах могут храниться только int[] но не long[]. В результате родился вот такой говнокодик.
+133
#if __BYTE_ORDER == __BIG_ENDIAN
struct DWstruct { Wtype high, low;};
#elif __BYTE_ORDER == __LITTLE_ENDIAN
struct DWstruct { Wtype low, high;};
#else
#error Unhandled endianity
#endif
glibc, sysdeps/wordsize-32/divdi3.c
+129
> echo 1 >1.cp
> echo 1 >1.cpp
> echo 1 >1.cppp
> dir /b *.cp
1.cp
> dir /b *.cpp
1.cpp
1.cppp
Баг в FindFirstFile/FindNextFile, показан на виндовом dir для простоты демонстрации. Призрак DOS'а жив даже в семерке...
−161
create temp table data (id serial, o1 money(16,2) default 0, o2 money(16,2) default 0,
o3 money(16,2) default 0, o4 money(16,2) default 0, o5 money(16,2) default 0,
o6 money(16,2) default 0, o7 money(16,2) default 0, o8 money(16,2) default 0,
o9 money(16,2) default 0, o10 money(16,2) default 0, o11 money(16,2) default 0,
o12 money(16,2) default 0, o13 money(16,2) default 0, o14 money(16,2) default 0,
o15 money(16,2) default 0, o16 money(16,2) default 0, o17 money(16,2) default 0,
o18 money(16,2) default 0, o19 money(16,2) default 0, o20 money(16,2) default 0,
o21 money(16,2) default 0, o22 money(16,2) default 0, o23 money(16,2) default 0,
o24 money(16,2) default 0, o25 money(16,2) default 0, o26 money(16,2) default 0,
o27 money(16,2) default 0, o28 money(16,2) default 0, o29 money(16,2) default 0,
o30 money(16,2) default 0, o31 money(16,2) default 0, f1 money(16,2) default 0,
f2 money(16,2) default 0, f3 money(16,2) default 0, f4 money(16,2) default 0,
f5 money(16,2) default 0, f6 money(16,2) default 0, f7 money(16,2) default 0,
f8 money(16,2) default 0, f9 money(16,2) default 0, f10 money(16,2) default 0,
f11 money(16,2) default 0, f12 money(16,2) default 0, f13 money(16,2) default 0,
f14 money(16,2) default 0, f15 money(16,2) default 0, f16 money(16,2) default 0,
f17 money(16,2) default 0, f18 money(16,2) default 0, f19 money(16,2) default 0,
f20 money(16,2) default 0, f21 money(16,2) default 0, f22 money(16,2) default 0,
f23 money(16,2) default 0, f24 money(16,2) default 0, f25 money(16,2) default 0,
f26 money(16,2) default 0, f27 money(16,2) default 0, f28 money(16,2) default 0,
f29 money(16,2) default 0, f30 money(16,2) default 0, f31 money(16,2) default 0,
ftot money(16,2) default 0)
... must be funny in the rich man's world ...
−90
def python_3():
try:
exec("print ''")
return False
except:
return True
Python 2: http://ideone.com/z4NADC
Python 3: http://ideone.com/IcpTUr
+13
void SetInterruptHandler(int id, unsigned int offset) {
__asm cli;
unsigned int *idt = (unsigned int*)0;
idt[id*2+0] = 0x00080000 | (offset & 0x0000FFFF);
idt[id*2+1] = 0x00008E00 | (offset & 0xFFFF0000);
__asm sti;
}
Как и обещал в http://govnokod.ru/12413#comment166763, выкладываю исходник говнолоадера, запускающего 32-х битный сишный код с дискетки: https://github.com/bormand/tryos, хотя судя по всему никому это не интересно...
Если кому-то все-таки придет в голову странное желание это собрать - нужна вижуалка (к сожалению код написан лет 5 назад, когда я юзал вижуалку) и nasm. Путь к nasm прописываем в Makefile, запускаем nmake, полученный floppy.dsk можно скормить виртуалбоксу, или же зарезать на дискету, если удастся вспомнить как она выглядит...
UPD: Скрин http://rghost.ru/43035733.view
+135
#include <stdio.h>
#include <malloc.h>
#include <sys/time.h>
#include <pthread.h>
#define MAXPRIME 10000001
char sieve[MAXPRIME];
typedef struct {
int id, min, max, step;
unsigned long long result;
} Task;
void primes() {
printf("Searching prime numbers ...\n");
sieve[0] = sieve[1] = 1;
for (int i=2; i<MAXPRIME; i++)
sieve[i] = 0;
int i = 2;
while (1) {
while (i<MAXPRIME && sieve[i])
i++;
if (i >= MAXPRIME)
break;
for (int j=i*2; j<MAXPRIME; j+=i)
sieve[j] = 1;
i++;
}
}
double utime() {
struct timeval tv;
gettimeofday(&tv, NULL);
return tv.tv_sec + tv.tv_usec / 1000000.0;
}
unsigned long long calc(int thread, int min, int max, int step) {
unsigned long long sum = 0;
double start = utime();
int nextshow = max+1;
for (int n=max; n>=min; n-=step) {
if (!sieve[n]) {
sum += 1;
continue;
}
if (n <= nextshow && n > min) {
double elapsed = utime() - start, eta = elapsed/(max-n)*(n-min);
printf("Thread %d: current=%d elapsed=%lfs eta=%lfh\n", thread, n, elapsed, eta/3600);
nextshow = n < 10000 ? 0 : n - 10000;
}
int b;
asm("movl %1, %%ecx\n"
"1: dec %%ecx\n"
"movl %%ecx, %%eax\n"
"imull %%eax\n"
"idivl %1\n"
"cmpl %%ecx, %%edx\n"
"jnz 1b\n"
"movl %%ecx, %0"
: "=g"(b)
: "r"(n)
: "%eax", "%ecx", "%edx");
sum += b;
}
return sum;
}
void * thread(void *arg) {
Task *task = arg;
printf("Thread %d: working from %d to %d step %d\n", task->id, task->min, task->max, task->step);
task->result = calc(task->id, task->min, task->max, task->step);
printf("Thread %d: partial result is %llu\n", task->id, task->result);
return NULL;
}
int main() {
primes();
int threads = 4;
int max = 10000000;
pthread_t tid[10];
Task tasks[10];
for (int i=0; i<threads; i++) {
tasks[i].id = i;
tasks[i].min = 1;
tasks[i].max = max-i;
tasks[i].step = threads;
pthread_create(&tid[i], NULL, thread, &tasks[i]);
}
unsigned long long sum = 0;
for (int i=0; i<threads; i++) {
pthread_join(tid[i], NULL);
sum += tasks[i].result;
}
printf("Result: %llu\n", sum);
return 0;
}
Мое ужасное решение вот этой задачки: http://projecteuler.net/problem=407
В день, когда математика упорно не желает вспоминаться...
на помощь приходят брутальные и бессердечные ассемблер и мультитрединг.
model name: Pentium(R) Dual-Core CPU E5400 @ 2.70GHz
real 286m45.890s
user 545m44.926s
+84
> +
+++
+++++++
++---[>++++++
+>+++++ +++ ++>++++
+++++
++>++++++
+++++>+++++++++
+++>+++>++ +++ +++>++++++
++++>
+++++++++++
+>+++>+++++++++>+++
+++++++>++++++++++>++++++++++
+>+++><<<<<<<<<<<<<<<<-]>++>--->++>++>+>+
+>-->
+>->+
+>->+>--->++++>+++><<<<<<<<<<<<<<<<>.>.>.>.>.>.>.>.>.>.+
->.>.>.>.>.[-]++++++++++.>[-]<[>+++<-]>++.....>+++++++++
+[>+++++>+++++>+++++>+++++><<<<<-]>>-->->+><<<<<>.>.>.>.
С новым 2013м годом!
Пусть в новом году вас обойдут стороной индусизмы, баги и крестобатхерты,
а красивые решения, чистый код и годные фичи не заставят себя ждать!
+74
@Override
protected void onResume() {
super.onResume();
logUpdateTimer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
TextView tv = (TextView)findViewById(R.id.logsView);
tv.setText(LogBuffer.getLogs());
}
});
}
};
logUpdateTimer.schedule(task, 0, 1000);
}
Собрался с силами и высрал реализовал свою задумку - уведомлялку о новых комментах на ГК под Андроид.
Проверяет сток каждые 5 минут, если увидит новый коммент - вибрирует и моргает светодиодом, при клике по уведомлению открывает сток в браузере.
https://github.com/bormand/govnotify
P.S. Вопрос к явистам - можно вон то говнище, которое я привел в топике, как-то попроще записать?