- 1
- 2
quicksort [] = []
quicksort (h:t) = (quicksort(filter (=h) t))
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+124
quicksort [] = []
quicksort (h:t) = (quicksort(filter (=h) t))
quicksort на хаскель. лаба. масло. 2014
+156
while(true)
{
$i++; if ($i == 10) { $res = array(); break;}
$site = dq("
SELECT a.username, a.id, a.url, a.title
FROM ylike a
LEFT JOIN amp_a_users b ON b.username = a.username
LEFT JOIN view_log c ON c.username = '".$user_n."' AND c.video_id = a.id
WHERE a.active = '1' AND b.video_credits >0 AND (c.video_id IS NULL AND a.username !='".$user_n."')
ORDER BY RAND()
LIMIT 1");
$res = mysqli_fetch_array($site);
if ($chkd[$res[url]] == 1)
{continue;}
else{
$chkd[$res[url]] = 1;
}
if (get_likes($res[url])>=0){break;}
$res = array();
}
Суть функционала в том что пользователи добавляют видео с youtube и покупают так называемые кредиты. И когда кто-то смотрит твое видео он получает 1 кредит, при этом у тебя снимается. Блок кода направлен на то чтобы найти видео, которое ты еще не смотрел, активное и не личное.
$user_n = логин текущего пользователя. Кода наглядно показывает как правильно, оптимизировано это все реализовать.
Мало того того что запросы в цикле, так еще и и join происходит по varchar. Кстати чувак вобще вместо id юзеров использует логины пользователей для зависимостей пользователя и его различных данных.
get_likes() по логике не понятно для чего, потому что функция запрашивает с youtube количество лайков, и по сути оно может быть либо 0 либо больше.
+89
var
Form1: TForm1;
i:integer; // глобальные переменные - "общие"
CritSec:TCriticalSection; // объект критической секции
implementation
{$R *.dfm}
procedure ThreadFunc;
begin
while (i<100000) do
begin
CritSec.Enter; // открываем секцию
i:=i+1; //увеличиваем i
Form1.Label1.Caption:=IntToStr(i); //из потока к элементам формы нужно обращаться через имя формы
CritSec.Leave; // закрываем
end;
endthread(0); // красиво выходим из потока.
end;
procedure TForm1.Button1Click(Sender: TObject);
var tid1,tid2,id:longword;
begin
i:=0;
tid1:=beginthread(nil,0,Addr(ThreadFunc),nil,0,id); //запускаем функцию ThreadFunc в потоке
tid2:=beginthread(nil,0,Addr(ThreadFunc),nil,0,id); //в tid2 присваиваем Идентификатор потока, который пригодится позже.
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
CritSec:=TCriticalSection.Create; // создаём объект критической секции, на всё время работы программы
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
CritSec.Free; // разрушаем
end;
end.
Уебище, блять, лесное.
http://grabberz.com/showthread.php?t=24619
+79
if (Grid.DataSource.DataSet.Name = 'tMMain')
or (Grid.DataSource.DataSet.Name = 'tMain')
then
Tg := Grid.DataSource.DataSet.FieldByName('ARTID').AsInteger
else
if Grid.DataSource.DataSet.Name = 'tAnalog' then
Tg := Grid.DataSource.DataSet.FieldByName('IDPROD').AsInteger
else
if Grid.DataSource.DataSet.Name = 'tPriceSet' then
Tg := Grid.DataSource.DataSet.FieldByName('IDPROD').AsInteger
else
if Grid.DataSource.DataSet.Name = 'tProd' then
Tg := Grid.DataSource.DataSet.FieldByName('ID').AsInteger
else
Tg := 0;
Крутое решение проблемы разных полей в разных источниках вызова.
А вы говорите виртуализация, перегрузка функций....
+155
...
unset($_SESSION['some_payment']);
$_SESSION['message'] = "Your booking details have been sent to your email.";
?>
<script language="javascript" type="text/javascript">
window.location.href = "bookingdetail.php?booking_id=<?= $this->book_id ?>&booking=yes";
</script>
<?php
return true;
} else {
...
Вот это поворот! Найдено постерди одной из фунций класса.
+117
public int hashCode() {
int h = hash;
if (h == 0 && value.length > 0) {
char val[] = value;
for (int i = 0; i < value.length; i++) {
h = 31 * h + val[i];
}
hash = h;
}
return h;
}
Из исходника java.lang.String.
Вопрос: зачем нужна временная переменная val? Это какая-то особая уличная магия с оптимизацией?
+127
Привет!
Сообщество, посмотри C++11 код, а не ошибочно ли выбраны символы для обжатия шаблонных параметров.
<сказка>
Итак, жили-были две функции:
void func0(bool=false); //ok
void func1(bool=8>=8); //ok
И на лексемы разбирались они успешно и без конфликтов.
И был у них друг помошник:
#define F(TYPE,NAME,VALUE)TYPE NAME=VALUE;
F(int,value,0);
#undef F
Лексер и его на лексемы разбирал.
Но пришли злые шаблоногородители и по нагородили шаблонов...
Нагородили шаблонные структуры типа таких:
template<bool>struct a{constexpr a(bool){}};
и переменные типа таких:
a<0> var=0;
map<int,int> m;
А лексер всё стоял и терпел. Он всё успешно на лексемы разбирал.
Но радилась как-то в коде функция типа такой:
void func2(a<0>=8>=8); // fail
И не выдержал лексер:
prog.cpp:4:18: warning: comparisons like ‘X<=Y<=Z’ do not have their mathematical meaning [-Wparentheses]
void func2(a<0>=8>=8); // fail
^
prog.cpp:4:12: error: parse error in template argument list
void func2(a<0>=8>=8); // fail
^
Не понял он что хотят от него.
void func2(a<0> = 8>=8 ); // это?
void func2(a< 0>=8 > =8); // или это?
... да как же вам объяснить?
А давайте я заменю "<" на "{", а ">" на "}".
И не понял лексер, что хотят от него.
void func2(a{0}=8>=8); // это?
void func2(a{0>=8}=8); // или это?
А потом уродилось в коде ещё и это:
#define F(TYPE,NAME,VALUE)TYPE NAME=VALUE;
F(a<0>,var,0); //ok
#undef F
Но лексер терпел.
Терпел, да не выдержал.
#define F(TYPE,NAME)TYPE NAME;
F(map<int,int>,m); //fail
#undef F
Решил он забить на дело гиблое:
prog.cpp:7:17: error: macro "F" passed 3 arguments, but takes just 2
F(map<int,int>,m); //fail
^
И ужёл он к другим стандартописателям.
</сказка>
tags: черновик, сказка, С++11, шаблоны, макросы, лексер
Символы для обжатия параметров шаблонов выбраны ошибочно?
+18
class figure
{
//...
};
class triugolnik: public figure
{
//...
};
class kvadrat: public figure
{
//...
};
#define PAIR(f0, f1) std::make_tuple(std::type_index(typeid(f0)), std::type_index(typeid(f1)))
int PloshadTrehFigur(const figure& f0, const figure& f1, const figure& f2);//forward declaration
int PloshadDvuhFigur(const figure& f0, const figure& f1)
{
static const std::unordered_map<
std::tuple<std::type_index, std::type_index>, std::function<int(const figure&, const figure&)>
> caller
{
{PAIR(triugolnik, kvadrat), ploshadTriugolnikIKvadrat},
{PAIR(kvadrat, triugolnik), lispGovno::flip(ploshadTriugolnikIKvadrat)},
{PAIR(kvadrat, kvadrat), ploshadKvadratIKvadrat},
{PAIR(triugolnik, triugolnik), ploshadTriugolnikITriugolnik}
};
const auto& f = caller.find(PAIR(f0, f1));
assert(f!=caller.end());
f(f0, f1);
}
#undef PAIR
Наш ответ Чемберлену:
http://govnokod.ru/13933
lispGovno::flip - flip такой же как в хаскель из моей особой мегабиблиотеки победителя каждый день.
Шах и мат господа присяжные засидатели. Мультиметоды в крестах есть и реализуются за 5 минут.
В сишке аналогично. Все анскилябры залезли под кровати.
Визитары размазанные по коду сосут и трудно поддерживаются.
+142
if( gm !== null ) {
group = 'grid';
stp = this.options.step;
gsc = stp.split('|');
st = 0;
for( var gstp in gsc ) {
data = ( this.resolution( gsc[st] ) !== null ) ? this.resolution( gsc[st] ) : data;
$.Storage.set( group, data );
st++;
}
}
unify = ( this.options.debug === true ) ? '?' + Math.floor( Math.random( 1, 30 ) * 200 ) : '';
// construct DOM & switchers
this.builder( gm, gsc, data, cntwrp, itmwrp, group, unify, pl, sp, st );
// on-ready activation
if( data !== undefined ) this.activation( data, group );
//switch engine
$('li', '.switcher').click(function( e ) {
t = $(this).attr('data-st');
g = $(this).attr('data-gr');
//clear
$('link[data-gr="'+ g +'"]', 'head').attr('rel','fake');
$('li', '.switcher[data-gr="'+ g +'"]').removeClass('activ');
//set
$('link[data-st='+ t +']','head').attr('rel', 'stylesheet');
$(this).addClass('activ');
$.Storage.set( g, t );
e.preventDefault();
});
Plugin.prototype.builder = function ( gm, gsc, data, cntwrp, itmwrp, group, unify, pl, sp, st ) {
itms = lnks = '';
x = 0;
for( i = 1; i <= st; i++ ) {
if( group === 'grid' ) {
href = sp + gsc[x] +'.css'+ unify;
idm = gsc[x];
x++;
}
else {
href = sp +'st'+ i +'.css'+ unify;
idm = 'st'+ i +'_'+ group;
}
lnks += '<link href="'+ href +'" rel="fake" media="screen" data-st="'+ idm +'" data-gr="'+ group +'" />';
itms += '<'+ itmwrp +' id="'+ idm +'" data-gr="'+ group +'" data-st="'+ idm +'"'+'>'+'['+ i +']'+'</'+ itmwrp +'>';
}
$('head').append(lnks);
if( cntwrp === null ) { // independent block
cntwrp = $('<div style="display: inline" id="inline_merge_'+ group +'"></div>');
}
if( gm !== 'auto' ) {
$(pl).append( cntwrp );
cntwrp.attr({ 'class': 'switcher', 'data-gr': group }).html( itms );
}
}
// Plugin logic wrapper
$.fn[pluginName] = function ( options ) {
return this.each(function () {
if (!$.data(this, 'plugin_' + pluginName)) {
$.data(this, 'plugin_' + pluginName,
new Plugin( this, options ));
}
});
}
Я убил 84 человека ... Я пидарас ;) Звук ебаный ублюдок, пидор и гнида всем составом до последнего вздоха, капли пота и копейки в его кармане ... Он должен мне over 30 000 000 $, которые прокукарекал в результате наезда и остался конченным пидрилой всем составом ... Аминь, я полный Лох( это по Японским понятиям ). Я никогда бы не подумал, что пидорами были все президенты этой великой державы, все дупутаты, гос. дума и те, кто имел честь с ними "сотрудничать". Я люблю Россию, мне жалко пидоров и звук ;) Помимо прочего это до сих пор работает ... Подвел jQuery из-за AJAX.
Full version: https://github.com/x029ah/style-switch/blob/master/scripts/jquery.cssSwitcher.js
Сайты удалили, бабу изнасиловали, мусоров купили, а пидоры до сих пор кукарекают. Поздравляю всех выживших. Говном вы не были -- говном вы стали ;)
+130
Program KrestZero;
...
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
case m[arow,acol]of
1: DrawGrid1.Canvas.Draw(acol*81,arow*81 ,bmpkrest);
0: DrawGrid1.Canvas.Draw(acol*81,arow*81 ,bmpfon);
2: DrawGrid1.Canvas.Draw(acol*81,arow*81 ,bmpnul);
end;
end;
function win:boolean;
var a:byte;
begin
result:=false;
k:=0;
for I := 0 to 2 do
if m[0,i]=a then k:=k+1;
if k=3 then begin result:=true; exit; end;
end;
procedure TForm1.DrawGrid1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
acol,arow:integer;
begin
DrawGrid1.MouseToCell(x,y,acol,arow);
if (m[arow,acol]<>0) then
ShowMessage('Нельзя!')
else
begin
inc(hod);
if hod mod 2 =1 then m[arow,acol]:=1
else m[arow,acol]:=2;
if win then ShowMessage('Победа!');
end;
end;
procedure TForm1.FormShow(Sender: TObject);
var i,j:byte;
begin
bmpkrest:=TBitmap.Create;
bmpkrest.LoadFromFile('krest.bmp');
bmpfon:=TBitmap.Create;
bmpfon.LoadFromFile('fon.bmp');
bmpnul:=TBitmap.Create;
bmpnul.LoadFromFile('nol.bmp');
for i:=0 to 2 do
for j:=0 to 2 do
m[i,j]:=0;
hod:=0;
end;
А вот так, товарищи, кодит препод в одной из шаражек в нашем родном Владикавказе.
В коде ничего не менял - выложил, как есть.
Одно только название - krestzero уже поднимает давление настроение.