- 1
- 2
Это очень забавно, скажу я Вам, установив очередной антивирус, втыкать в инонку в трее, представляя, как она защищает
твою систему от несуществующих угроз.
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 7
+4
Это очень забавно, скажу я Вам, установив очередной антивирус, втыкать в инонку в трее, представляя, как она защищает
твою систему от несуществующих угроз.
Задача любого антивирусника - ЛЮБОГО! - продержаться на компьютере как можно дольше чтобы он продлил лицензию ещё хоть пару раз. Лет 15-20 назад не иметь антивируса было вообще неприлично. Именно тогда вендоры научились наёбывать пользователей, внушив им, что системная защитная утилита, которой и интерфейс-то нахуй не нужен, должна быть напичкана свистоперделками и иметь приоритет Проводника. Внешний вид - половина успеха. И похуй, что кроме мигания значком в трее софтина в принципе ничего не делает.
...Тем более странно, что на фоне набитых скинами софтин паучок Данилова выглядит "голяком". Может, метод от противново?
Кстати, почему все так текут от 360? Говно говном.
+2
С++ признан опасным. Власти США призывают разработчиков отказаться от разработки на нем приложений.
https://dzen.ru/news/story/Vlasti_SSHA_trebuyut_razrabotchikov_otkazatsya_otispolzovaniya_yazyka_programmirovaniya_C--6bd1377f55599eb3e8b5f3b852e52b90?lang=ru&rubric=personal_feed&fan=1&stid=T5HyeXddnnEZJtv923hF&t=1674486417&persistent_id=1560561255&story=520422d0-c284-5803-bdc8-d030bb2c3dda&issue_tld=ru
Молитесь.
0
Приходил Страйко, разъебахал оффтопы.
−1
-
Основные технические характеристики
ЛТИ-120 обладает температурным интервалом 160-350 градусов.
Наибольшая активность вещества наблюдается при температуре от 250 до 300 градусов.
Вещество не растворяется в воде, вследствие чего не смывается с поверхностей. Поскольку данный флюс считается нейтральным, то удалять его остатки после работы нет необходимости. При желании можно это сделать только с помощью ацетона или спирта. По отзывам некоторых мастеров, для этой цели также можно использовать водку.
Флюс хорошо взаимодействует как с мягкими оловянно-свинцовыми, так и с серебряными припоями.
Работая с данным паяльным флюсом, помещение проветривать необязательно.
Конечно, блять, не надо проветривать. Лишние рты соскочат с ЖФ/ПФ.
Откуда только берутся такие пинкертоны.
0
// реализация интерфейса IArguments2 для самодельного скриптового движка, aka vbs to exe
unit Arguments;
interface
uses
Windows, ComObj, ActiveX, Stub_TLB, SysUtils,WSHNamedArguments,WSHUnNamedArguments, CmdUtils;
type
TIarguments=class(TAutoObject, IArguments2, IEnumVariant)
FAArgs:array of WideString;
FWSHNamedArguments:TIWSHNamedArguments;
FWSHUnNamedArguments:TIWSHUnNamedArguments;
function Item(Index: Integer): WideString; safecall;
function Count: Integer; safecall;
function Get_length: Integer; safecall;
function _NewEnum: IUnknown; safecall;
property length: Integer read Get_length;
function Get_Named: IWSHNamedArguments; safecall;
function Get_Unnamed: IWSHUnnamedArguments; safecall;
procedure ShowUsage; safecall;
property Named: IWSHNamedArguments read Get_Named;
property Unnamed: IWSHUnnamedArguments read Get_Unnamed;
function Next(celt: LongWord; var rgvar : OleVariant;
out pceltFetched: LongWord): HResult; stdcall;
function Skip(celt: LongWord): HResult; stdcall;
function Reset: HResult; stdcall;
function Clone(out Enum: IEnumVariant): HResult; stdcall;
public
constructor Create;
end;
implementation
uses ComServ;
var
FIndex:Integer=0;
{ TIarguments }
function TIarguments._NewEnum: IUnknown;
begin
Result:=self;
end;
function TIarguments.Count: Integer;
begin
Result:=System.Length(FAArgs);
end;
function TIarguments.Get_length: Integer;
begin
Result:=Count;
end;
function TIarguments.Item(Index: Integer): WideString;
begin
if (Index >= System.Length(FAArgs)) then
raise EOleSysError.Create('Range check error', HRESULT($800A0009),0)
else
Result:=FAArgs[Index]
end;
function TIarguments.Get_Named: IWSHNamedArguments;
begin
Result:=FWSHNamedArguments;
end;
function TIarguments.Get_Unnamed: IWSHUnnamedArguments;
begin
Result:=FWSHUnNamedArguments;
end;
procedure TIarguments.ShowUsage;
begin
OleError(E_NOTIMPL);
end;
constructor TIarguments.Create;
var
I,J, PCnt:Integer;
S, CmdLine:string;
begin
inherited Create;
FIndex:=0;
FWSHNamedArguments:=TIWSHNamedArguments.Create;
FWSHUnNamedArguments:=TIWSHUnNamedArguments.Create;
PCnt:=ParamCount;
SetLength(FAArgs, PCnt);
for I:=1 to PCnt do
begin
J:=I-1;
FAArgs[J]:=ParamStr(I);
end;
//Parsing named args.
CmdLine:='';
S:=GetCommandLine;
PCnt:=iParamCount(PChar(S));
if PCnt > 1 then
begin
for I:=1 to PCnt-1 do
begin
CmdLine:=CmdLine+iParamStr(PChar(S), I);
if I < PCnt-1 then
CmdLine:=CmdLine+' ';
end;
end;
−2
// Подгрузка аватаров пользователей.
Bmp:=TBitMap.Create; // Нет более изящного спооба узнать тип изображения, не колупаясь в заголовках. Расширение файлов картинок зачастую фиктивное.
try // Зная, что ава может быть только двух типов - jpg и png, я решил пойти конём.
Bmp.PixelFormat:=pf32Bit;
Bmp.Width:=16;
Bmp.Height:=16;
ImgConv:=True;
Png:=TPngObject.Create;
try
try
Comm.RawAvatar.Position:=0;
Png.LoadFromStream(Comm.RawAvatar);
Bmp.Canvas.StretchDraw(Bmp.Canvas.ClipRect, Png);
except
ImgConv:=False; // Ошибка конвертирования. Не совпал формат - идем дальше, пробуем jpg...
end;
finally
Png.Free; // нет смысла раскручивать стек, ибо исключение в любом случае отловится try..except
end;
if not ImgConv then
begin
Jpg:=TJPEGImage.Create;
try
try
Comm.RawAvatar.Position:=0;
Jpg.LoadFromStream(Comm.RawAvatar);
Bmp.Canvas.StretchDraw(Bmp.Canvas.ClipRect, Jpg);
except
end;
finally
Jpg.Free;
end;
end;
CommentList.Items[I].ImageIndex:=Images.AddMasked(Bmp, clWhite);
finally
Bmp.Free;
end;
end;
"Тут всюду густая вонь, то жаркая и приятная, то теплая и противная, но одинаково волнующая, особая, пароходная, мешающаяся с морской свежестью"
@ Бунин.
Теперь минусатор умеет подгружать авы.
https://dropmefiles.com/USQKW
−1
function ReplaceHTMLSpec(First, Last, RepTo, RepEd:string):string;
var
I, P, St:Integer;
SS, Temp:string;
begin
Temp:='';
ST:=0;
while True do
begin
P:=Pos(First, Result);
if P = 0 then Break;
SS:=Copy(Result, ST, P-1)+RepTo;
Temp:=Temp+SS;
ST:=P+Length(First);
Result:=Copy(Result, ST, MaxInt);
P:=Pos(Last, Result);
if P > 0 then
begin
SS:=Copy(Result, 1, P-1)+RepEd;
Temp:=Temp+SS;
ST:=P+Length(Last);
SS:=Copy(Result,ST, MaxInt);
Temp:=Temp+SS;
end;
Result:=Temp;
end;
end;
function DecorateText(S:string):string;
const
Arr:array[0..3] of string=('<br>','"','<','>');
var
I, P, St:Integer;
SS, Temp:string;
begin
Result:=S;
for I:=0 to 3 do
Result:=StringReplace(Result, Arr[I], '',[rfreplaceall]);
Result:=StringReplace(Result,'<br />',#13#10,[rfreplaceall]);
Result:=StringReplace(Result,'<i>','[i]',[rfreplaceall]);
Result:=StringReplace(Result,'</i>','[/i]',[rfreplaceall]);
Result:=StringReplace(Result,'<b>','[b]',[rfreplaceall]);
Result:=StringReplace(Result,'</b>','[/b]',[rfreplaceall]);
Temp:='';
ST:=0;
{ while True do
begin
P:=Pos('<span style="font-size:10px;">', Result);
if P = 0 then Break;
SS:=Copy(Result, ST, P-1)+'[size=10]';
Temp:=Temp+SS;
ST:=P+Length('<span style="font-size:10px;">');
Result:=Copy(Result, ST, MaxInt);
P:=Pos('</span>', Result);
if P > 0 then
begin
SS:=Copy(Result, 1, P-1)+'[/size]';
Temp:=Temp+SS;
ST:=P+Length('</span>');
SS:=Copy(Result,ST, MaxInt);
Temp:=Temp+SS;
Result:=Temp;
end;
end; }
Result:=ReplaceHTMLSpec('<span style="color:white;">','</span>','[color=white]','[/color]');
Result:=ReplaceHTMLSpec('<span style="color:red;">','</span>','[color=red]','[/color]');
Result:=ReplaceHTMLSpec('<span style="color:blue;">','</span>','[color=blue]','[/color]');
Result:=ReplaceHTMLSpec('<span style="color:green;">','</span>','[color=green]','[/color]');
Result:=ReplaceHTMLSpec('<pre><code class="">','</code></pre>','[code]','[/code]');
Result:=ReplaceHTMLSpec('<span style="font-size:10px;">','</span>','[size=10]','[/size]');
Result:=ReplaceHTMLSpec('<span style="font-size:15px;">','</span>','[size=15]','[/size]');
Result:=ReplaceHTMLSpec('<span style="font-size:20px;">','</span>','[size=20]','[/size]');
Result:=ReplaceHTMLSpec('<span style="text-decoration:underline;">','</span>','[u]','[/u]');
Result:=ReplaceHTMLSpec('<span style="text-decoration:line-through;">','</span>','[s]','[/s]');
Result:=ReplaceHTMLSpec('<span style="text-decoration:blink;">','</span>','[blink]','[/blink]');
end;
Пахнет селёдкой. Ой блять, забыл подмыться.