- 1
- 2
- 3
- 4
- 5
if ((act_type == 15) || (act_type == 24)) {
} else {
if (duration != null)
dts.setDuration(dts.getDuration().add(duration));
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+78
if ((act_type == 15) || (act_type == 24)) {
} else {
if (duration != null)
dts.setDuration(dts.getDuration().add(duration));
}
Вся пунктуация сохранена и НИЧЕГО НЕ ВЫРЕЗАНО
Волшебный if
Пруф [[ скрыт ]]
строка 112 - 116
+93
procedure _FinalizeArray(p: Pointer; typeInfo: Pointer; elemCount: Cardinal);
asm
CMP ECX, 0 { no array -> nop }
JE @@zerolength
PUSH EAX
PUSH EBX
PUSH ESI
PUSH EDI
MOV EBX,EAX
MOV ESI,EDX
MOV EDI,ECX
XOR EDX,EDX
MOV AL,[ESI]
MOV DL,[ESI+1]
CMP AL,tkLString
JE @@LString
CMP AL,tkWString
JE @@WString
CMP AL,tkVariant
JE @@Variant
CMP AL,tkArray
JE @@Array
CMP AL,tkRecord
JE @@Record
CMP AL,tkInterface
JE @@Interface
CMP AL,tkDynArray
JE @@DynArray
JMP @@error
@@LString:
CMP ECX,1
MOV EAX,EBX
JG @@LStringArray
CALL _LStrClr
JMP @@exit
@@LStringArray:
MOV EDX,ECX
CALL _LStrArrayClr
JMP @@exit
@@WString:
CMP ECX,1
MOV EAX,EBX
JG @@WStringArray
CALL _WStrClr
JMP @@exit
@@WStringArray:
MOV EDX,ECX
CALL _WStrArrayClr
JMP @@exit
@@Variant:
MOV EAX,EBX
ADD EBX,16
CALL _VarClr
DEC EDI
JG @@Variant
JMP @@exit
@@Array:
PUSH EBP
MOV EBP,EDX
@@ArrayLoop:
MOV EDX,[ESI+EBP+2+8]
MOV EAX,EBX
ADD EBX,[ESI+EBP+2]
MOV ECX,[ESI+EBP+2+4]
MOV EDX,[EDX]
CALL _FinalizeArray
DEC EDI
JG @@ArrayLoop
POP EBP
JMP @@exit
@@Record:
PUSH EBP
MOV EBP,EDX
@@RecordLoop:
{ inv: EDI = number of array elements to finalize }
MOV EAX,EBX
ADD EBX,[ESI+EBP+2]
Это так в дельфах автофинализация строк, длиннострок, вариантов, массивов, записей, интерфейсов, динмассивов реализована.
Вместо того, чтобы напрямую вызвать деструктор, там в рантайме (ПИЗДЕЦ, В РАНТАЙМЕ БЛЯТЬ!!!) проверяется тип поля, требующего финализацию и через три таких жопы наконец-то вызывается деструктор. И это, блять, я ещё создал свой TInterfacedObject, потому что иначе бы деструктор вызывался не через три жопы, а через четыре, и одна из них - системный вызов.
Да, это при включённой оптимизации всё, если чё.
+155
#include <iostream>
#include <memory>
#include <assert.h>
using namespace std;
template <class T>
class megaClass
{
public:
void hello()
{
assert(dynamic_cast<T*>(this)!=NULL);
static_cast<T*>(this)->hello();
}
virtual ~megaClass() {}
};
class cleft : public megaClass<cleft>
{
public:
void hello()
{
std::cout << "left::hello()" << std::endl;
}
};
class cright : public megaClass<cright>
{
public:
void hello()
{
std::cout << "right::hello()" << std::endl;
}
};
int main()
{
scoped_ptr<megaClass<cleft> > a1=new cleft;
a1->hello();
scoped_ptr<megaClass<cright> > a2=new cright;
a2->hello();
return 0;
}
Пытался продемонстрировать статический полиморфизм TarasB и получилась такая какашка. Кто действительно крут и может сабдж продемонстрировать? Я где-то видел пример, но не помню где...
Ещё продемонстрировал статический полиморфизм через стратегии:
struct Strategy1
{
static void do(){printf("Lol1");}
};
struct Strategy2
{
static void do(){printf("Lol2");}
};
template<class Strategy>
class MegaClass
{public:
void do()
{
printf("Mega");
Strategy::do();//Класс Strategy можно было и создать для хранения состояния.
printf("/n\");
}
};
//...
Дальше в разных частях кода создаем:
MegaClass<Strategy1> o;
o.do();
//...
MegaClass<Strategy2> o;
o.do();
"Один" класс ведёт себя по разному. Понятно, что это не совсем полиморфизм. Но очень часто именно в таком контексте используют динамический полиморфизм, хотя такого статического здесь достаточно выше крыши.http://govnokod.ru/8025#comment110773
Class1 o1;
foo(o1);
Class2 o2;
foo(o2);
void foo(Class1 o){/*...*/};
void foo(Class2 o){/*...*/};
+151
void f_ai(intrusive_ptr<serial> i);
//...
static serial ai;
serial* ii=&ai;
//...
f_ai(ii);
Компилируется, а потом грохается. С++ такой Си...
0
<?php
error_reporting(0);
ini_set('display_errors', '0');
mb_internal_encoding('UTF-8');
header('Access-Control-Allow-Origin: *');
function str_replace_first($from, $to, $subject){
$from='/'.preg_quote($from, '/i').'/';
return preg_replace($from, $to, $subject, 1);
}
require_once('morphy/src/common.php');
$opts=array(
'storage'=>PHPMORPHY_STORAGE_MEM,
'predict_by_suffix'=>true,
'predict_by_db'=>true,
'graminfo_as_text'=>true
);
$dir='morphy/dicts';
$lang='ru_RU';
try{
$morphy=new phpMorphy($dir, $lang, $opts);
}catch(phpMorphy_Exception $e){
die('Error occurred while creating phpMorphy instance: '.PHP_EOL.$e);
}
$morphy->getDefaultGrammemsProvider()->excludeGroups('С', 'род');
$wanal=array();
$wanal['p']=explode(' : ', file_get_contents('wanal_p.txt'));
$wanal['s']=explode(' : ', file_get_contents('wanal_s.txt'));
$wanal['g']=explode(' : ', file_get_contents('wanal_g.txt'));
shuffle($wanal['p']);
shuffle($wanal['s']);
shuffle($wanal['g']);
$current_wanal=$wanal;
$string=trim($_GET['q']);
$modified_comment=$string;
preg_match_all('/(\w+)/u', str_replace('_', '', $string), $matches);
$words=$matches[1];
foreach($words as $word){
if(mb_strtoupper($word)=='НАХУЙ' || mb_strtoupper($word)=='ХУЙ' || mb_strtoupper($word)=='ТУТ'){
continue;
}
$info=$morphy->getGramInfo(mb_strtoupper($word));
$type='';
if(trim($info[0][0]['pos'])=='П'){
$type='p';
}
if(trim($info[0][0]['pos'])=='С'){
$type='s';
}
if(trim($info[0][0]['pos'])=='Г' || trim($info[0][0]['pos'])=='ИНФИНИТИВ'){
$type='g';
}
if($type!=''){
$replacement=trim($current_wanal[$type][array_rand($wanal[$type])]);
if($replacement!=''){
$casted=$morphy->castFormByPattern(mb_strtoupper($replacement), mb_strtoupper($word), null, true);
if(count($casted)>0){
$replacement=reset($casted);
if(md5(mb_substr($word, 0, 1))==md5(mb_strtolower(mb_substr($word, 0, 1)))){
$replacement=mb_strtolower($replacement);
} elseif(md5(mb_strtoupper($word))==md5($word)){
$replacement=mb_strtoupper($replacement);
} elseif(md5(mb_substr($word, 0, 1))==md5(mb_strtoupper(mb_substr($word, 0, 1)))){
$replacement=mb_convert_case(mb_strtolower($replacement), MB_CASE_TITLE);
}
$modified_comment=str_replace_first($word, $replacement, $modified_comment);
$base=$morphy->getBaseForm(mb_strtoupper($word));
if($base){
$wanal[$type][]=mb_strtoupper($base[0]);
$wanal[$type]=array_filter(array_unique($wanal[$type]));
}
}
}
}
}
file_put_contents('wanal_p.txt', implode(' : ', $wanal['p']));
file_put_contents('wanal_s.txt', implode(' : ', $wanal['s']));
file_put_contents('wanal_g.txt', implode(' : ', $wanal['g']));
echo $modified_comment;
?>
Какой-то такой модификатор чужих комментариев на основе ещё более ранних комментариев.
+2
[0m[91mSaving to: ���jdk-8u131-linux-x64.tar.gz���
2050K .......... .......... .......... ........[0m[91m.. .......... 1% 137K 4m16s
2100K ....[0m[91m...... ......[0m[91m...[0m[91m. .......... ..........[0m[91m ........[0m[91m.. 1% 1.06M 4m14s
2150K .[0m[91m...[0m[91m.....[0m[91m. ...[0m[91m.[0m[91m...... .......... .......... .......... 1% 613K 4m14s
2200K .......... .......... .......[0m[91m... .....[0m[91m..... .......... 1% 318M 4m9s
2250K .......... .......... ......[0m[91m....[0m[91m ..........[0m[91m ..[0m[91m...[0m[91m..... 1%[0m[91m 609K 4m10s
2300K .......... ..........[0m[91m ....[0m[91m...... ....[0m[91m.....[0m[91m.[0m[91m ...[0m[91m....... 1% 612K 4m10s[0m[91m
2350K ........[0m[91m.. ....[0m[91m...... .[0m[91m.......[0m[91m.. ......[0m[91m....[0m[91m ...[0m[91m.....[0m[91m.. 1% 610K 4m11s
2400K ...[0m[91m....... .[0m[91m......... .[0m[91m....[0m[91m.....[0m[91m .....[0m[91m...[0m[91m.. .[0m[91m.[0m[91m....[0m[91m.... 1%[0m[91m 612K 4m12s
2450K .....[0m[91m..... ..[0m[91m........ ...[0m[91m....[0m[91m... ...[0m[91m....... .[0m[91m...[0m[91m...[0m[91m... 1%[0m[91m 612K 4m13s
2500K .......... .....[0m[91m..... ......[0m[91m.... ...[0m[91m.....[0m[91m.. ......[0m[91m...[0m[91m. 1% 616K 4m13s[0m[91m
2550K .[0m[91m......[0m[91m... .......... .[0m[91m......... ..[0m[91m........ .....[0m[91m..... 1% 616K 4m14s
2600K ......[0m[91m.... ...[0m[91m.[0m[91m...... .........[0m[91m.[0m[91m ..........[0m[91m .[0m[91m......... 1% 614K 4m15s
2650K ........[0m[91m.. .....[0m[91m.....[0m[91m ...[0m[91m....... .[0m[91m.....[0m[91m.... .......[0m[91m... 1% 644K 4m15s[0m[91m
2700K ......[0m[91m.... .......... ........[0m[91m..[0m[91m ..[0m[91m..[0m[91m...... ..[0m[91m......[0m[91m.. 1% 1.15M 4m13s
2750K .......[0m[91m...[0m[91m ......[0m[91m..[0m[91m.. ...[0m[91m....... .......... ....[0m[91m...[0m[91m.[0m[91m.. 1% 1.07M 4m11s
2800K .....[0m[91m.....[0m[91m ...[0m[91m....... .[0m[91m...[0m[91m...... ...[0m[91m.[0m[91m...... .......... 1% 306K 4m17s
2850K .......... .......... .......... .......... .......[0m[91m... 1% 181M 4m13s
2900K .[0m[91m........[0m[91m. ..[0m[91m...[0m[91m.[0m[91m....[0m[91m .....[0m[91m..... .[0m[91m..[0m[91m...[0m[91m.... ...[0m[91m..[0m[91m...[0m[91m.. 1% 307K 4m18s
2950K .......... ...[0m[91m......[0m[91m. ..[0m[91m.....[0m[91m...[0m[91m ...[0m[91m....... .[0m[91m..[0m[91m....... 1% 608K 4m19s
3000K .[0m[91m.......[0m[91m.. ...[0m[91m...[0m[91m...[0m[91m. .........[0m[91m. .......[0m[91m... ........[0m[91m.. 1% 421K 4m21s
3050K ...[0m[91m...[0m[91m...[0m[91m. .......[0m[91m... .[0m[91m....[0m[91m..[0m[91m... .........[0m[91m. .....[0m[91m..[0m[91m... 1% 400K 4m24s[0m[91m
3100K .......... .[0m[91m.....[0m[91m...[0m[91m. .......... .[0m[91m.....[0m[91m...[0m[91m. .[0m[91m...[0m[91m...... 1% 605K 4m25s
3150K .....[0m[91m..... .......... ......[0m[91m.... .[0m[91m...[0m[91m...[0m[91m... .[0m[91m......... 1% 613K 4m25s
3200K ..[0m[91m.....[0m[91m... .......... ...[0m[91m.....[0m[91m.. .[0m[91m...[0m[91m...... ...[0m[91m....... 1% 611K 4m25s
3250K .......... ..........[0m[91m .....[0m[91m.[0m[91m...[0m[91m. .......... .......... 1% 303K 4m30s
3300K .......... .......... .......... .......... ..[0m[91m........ 1% 1.34M 4m28s[0m[91m
3350K ..[0m[91m......[0m[91m.. .......[0m[91m.[0m[91m.. ........[0m[91m.[0m[91m. ..[0m[91m.....[0m[91m...[0m[91m .....[0m[91m..... 1% 306K 4m32s
3400K ......[0m[91m..[0m[91m.. ......[0m[91m.... ....[0m[91m...... .....[0m[91m.....[0m[91m .......... 1%[0m[91m 394K 4m35s
3450K .....[0m[91m..... .........[0m[91m. ....[0m[91m.[0m[91m..... ...[0m[91m....[0m[91m... .......... 1% 416K 4m37s
3500K .[0m[91m......[0m[91m...[0m[91m ...[0m[91m....... .[0m[91m......... ....[0m[91m...... .....[0m[91m..[0m[91m... 1% 401K 4m39s
3550K .......[0m[91m.[0m[91m.. .......... ...[0m[91m....... ...[0m[91m...[0m[91m...[0m[91m. .[0m[91m......[0m[91m... 1% 413K 4m41s
3600K ..........[0m[91m .......... .[0m[91m.....[0m[91m....[0m[91m ...[0m[91m..[0m[91m..... .........[0m[91m. 2% 421K 4m43s
3650K .......... ..[0m[91m.[0m[91m....... .[0m[91m.......[0m[91m.. .......... ...[0m[91m....... 2% 611K 4m43s
3700K ......[0m[91m.[0m[91m... .......... ..[0m[91m........ ......[0m[91m....[0m[91m .......... 2% 610K 4m43s
3750K ..[0m[91m..[0m[91m...[0m[91m... ......[0m[91m.... ..........[0m[91m .....[0m[91m..... ........[0m[91m.. 2% 574K 4m43s
3800K ....[0m[91m...... ....[0m[91m...... .....[0m[91m....[0m[91m. ......[0m[91m.... ........[0m[91m.. 2% 610K 4m43s
3850K .......[0m[91m... ....[0m[91m...... .......[0m[91m... ........[0m[91m.. .......[0m[91m... 2% 610K 4m43s
3900K .......... ...[0m[91m...[0m[91m.... .........[0m[91m. .......... .....[0m[91m....[0m[91m. 2% 611K 4m43s
3950K .......[0m[91m... .....[0m[91m...[0m[91m.. .......... .[0m[91m......... ..[0m[91m........ 2% 651K 4m43s[0m[91m
4000K .....[0m[91m..[0m[91m... ..........[0m[91m .......... ......[0m[91m.... .........[0m[91m. 2% 613K 4m43s
4050K ..[0m[91m........ ...[0m[91m..[0m[91m...[0m[91m.. .....[0m[91m..... .......... .[0m[91m..[0m[91m...[0m[91m.... 2% 612K 4m43s
4100K .........[0m[91m. ..........[0m[91m ...[0m[91m.....[0m[91m.. .....[0m[91m..[0m[91m... .......... 2% 1.08M 4m42s
Дженкинс прислал телеграму: девопс потрудился наславу.
(это только 0.5% от всего сообщения)
−79
alias ffcp='perl -e '"'"'exec "ffmpeg","-i",$ARGV[0],"-sn","-vcodec","copy","-acodec","copy",$ARGV[1]'"'"
Так и не придумал, как сделать что-то подобное на голом пердобаше, не плодя говноскрипты в файловой системе. -_-
−851
select distinct bk.ID, bk.URL, bk.Date, bk.Name, bk.Description, bk.UserCreatorID from bookmarking_bookmark as bk
where bk.Tenant=@Tenant and bk.ID in
(select * from (select b.ID from bookmarking_bookmark as b left join bookmarking_bookmarktag as bt on b.ID=bt.BookmarkID left join bookmarking_tag as t on bt.TagID=t.TagID
left join (select ub.BookmarkID as BookmarkID, ub.Name as UserBookmarkName,ub.Description as UserBookmarkDescription, t.Name as TagName
from (select * from bookmarking_userbookmark as ub where ub.UserID=@userID) as ub
left join bookmarking_userbookmarktag as ubt on ub.UserBookmarkID=ubt.UserBookmarkID
left join bookmarking_tag as t on ubt.TagID=t.TagID) as ub on b.ID=ub.BookmarkID
where ( ( lower(b.URL) like lower(@tagNameForUrlWithoutLastSlash0) )
or (lower(b.Name) like lower(@tagName0) or lower(b.Name) like lower(@tagNameWithSpace0))
or (lower(b.Description) like lower(@tagName0) or lower(b.Description) like lower(@tagNameWithSpace0))
or (lower(t.Name) like lower(@tagName0)) or (lower(t.Name) like lower(@tagNameWithSpace0))
or (lower(TagName) like lower(@tagName0)) or (lower(TagName) like lower(@tagNameWithSpace0))
or (lower(UserBookmarkName) like lower(@tagName0) or lower(UserBookmarkName) like lower(@tagNameWithSpace0))
or (lower(UserBookmarkDescription) like lower(@tagName0) or lower(UserBookmarkDescription) like lower(@tagNameWithSpace0)))
and b.ID in (
select b.ID from bookmarking_bookmark as b left join bookmarking_bookmarktag as bt on b.ID=bt.BookmarkID
left join bookmarking_tag as t on bt.TagID=t.TagID
left join (
select ub.BookmarkID as BookmarkID, ub.Name as UserBookmarkName, ub.Description as UserBookmarkDescription, t.Name as TagName from
(select * from bookmarking_userbookmark as ub where ub.UserID=@userID) as ub
left join bookmarking_userbookmarktag as ubt on ub.UserBookmarkID=ubt.UserBookmarkID
left join bookmarking_tag as t on ubt.TagID=t.TagID) as ub on b.ID=ub.BookmarkID
where (( lower(b.URL) like lower(@tagNameForUrlWithoutLastSlash1) ) or (lower(b.Name) like lower(@tagName1) or lower(b.Name) like lower(@tagNameWithSpace1))
or (lower(b.Description) like lower(@tagName1) or lower(b.Description) like lower(@tagNameWithSpace1)) or (lower(t.Name) like lower(@tagName1))
or (lower(t.Name) like lower(@tagNameWithSpace1)) or (lower(TagName) like lower(@tagName1)) or (lower(TagName) like lower(@tagNameWithSpace1))
or (lower(UserBookmarkName) like lower(@tagName1) or lower(UserBookmarkName) like lower(@tagNameWithSpace1)) or (lower(UserBookmarkDescription)
like lower(@tagName1) or lower(UserBookmarkDescription) like lower(@tagNameWithSpace1))) and b.ID in (
select b.ID from bookmarking_bookmark as b left join bookmarking_bookmarktag as bt on b.ID=bt.BookmarkID left join bookmarking_tag as t on bt.TagID=t.TagID left join
(select ub.BookmarkID as BookmarkID, ub.Name as UserBookmarkName, ub.Description as UserBookmarkDescription, t.Name as TagName
from (select * from bookmarking_userbookmark as ub where ub.UserID=@userID) as ub
left join bookmarking_userbookmarktag as ubt on ub.UserBookmarkID=ubt.UserBookmarkID left join bookmarking_tag as t on ubt.TagID=t.TagID) as ub on b.ID=ub.BookmarkID
where (( lower(b.URL) like lower(@tagNameForUrlWithoutLastSlash2) ) or (lower(b.Name) like lower(@tagName2) or lower(b.Name) like lower(@tagNameWithSpace2))
or (lower(b.Description) like lower(@tagName2) or lower(b.Description) like lower(@tagNameWithSpace2)) or (lower(t.Name) like lower(@tagName2)) or (lower(t.Name)
like lower(@tagNameWithSpace2)) or....
среднее время выполнения 30 секунд
+142
В связи с минусаторной атакой в говнокоде 5186, просьба.
Страйкер, заблокируй пользователей с номерами
http://govnokod.ru/user/2689 -
http://govnokod.ru/user/2703
(весь диапазон оккупировали тролли-виртуалы)
И ИП-адрес, с которого эти пользователи логинились.
+2
Мир! Труд! Май!
С праздником, питухи!