- 1
IT Оффтоп #90
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
IT Оффтоп #90
#60: https://govnokod.ru/26949 https://govnokod.xyz/_26949
#61: https://govnokod.ru/26980 https://govnokod.xyz/_26980
#62: https://govnokod.ru/26999 https://govnokod.xyz/_26999
#63: https://govnokod.ru/27004 https://govnokod.xyz/_27004
#64: https://govnokod.ru/27020 https://govnokod.xyz/_27020
#65: https://govnokod.ru/27027 https://govnokod.xyz/_27027
#66: https://govnokod.ru/27040 https://govnokod.xyz/_27040
#67: https://govnokod.ru/27049 https://govnokod.xyz/_27049
#68: https://govnokod.ru/27061 https://govnokod.xyz/_27061
#69: https://govnokod.ru/27071 https://govnokod.xyz/_27071
#70: https://govnokod.ru/27097 https://govnokod.xyz/_27097
#71: https://govnokod.ru/27115 https://govnokod.xyz/_27115
#72: https://govnokod.ru/27120 https://govnokod.xyz/_27120
#73: https://govnokod.ru/27136 https://govnokod.xyz/_27136
#74: https://govnokod.ru/27160 https://govnokod.xyz/_27160
#75: https://govnokod.ru/27166 https://govnokod.xyz/_27166
#76: https://govnokod.ru/27168 https://govnokod.xyz/_27168
#77: https://govnokod.ru/27186 https://govnokod.xyz/_27186
#78: https://govnokod.ru/27219 https://govnokod.xyz/_27219
#79: https://govnokod.ru/27254 https://govnokod.xyz/_27254
#80: https://govnokod.ru/27270 https://govnokod.xyz/_27270
#81: https://govnokod.ru/27280 https://govnokod.xyz/_27280
#82: https://govnokod.ru/27284 https://govnokod.xyz/_27284
#83: https://govnokod.ru/27296 https://govnokod.xyz/_27296
#84: https://govnokod.ru/27336 https://govnokod.xyz/_27336
#85: https://govnokod.ru/27381 https://govnokod.xyz/_27381
#86: https://govnokod.ru/27405 https://govnokod.xyz/_27405
#87: https://govnokod.ru/27429 https://govnokod.xyz/_27429
#88: https://govnokod.ru/27432 https://govnokod.xyz/_27432
#89: https://govnokod.ru/27435 https://govnokod.xyz/_27435
+1
using Headbin=System;
namespace NVidiaOptimizer
{
class NVO
{
[Headbin.STAThread]
static unsafe void Main(string[]args)
{
while (true)
{
Headbin.Runtime.InteropServices.Marshal.PrelinkAll(typeof(NVO));
float piz = (float)Headbin.Runtime.InteropServices.Marshal.AllocHGlobal(sizeof(float) * 45);
}
}
}
}
Утечка ОЗУ наглядно...
(Осторожно, утекает быстро, как в речке)
+1
_Return_type_success_(return != false) bool CEnumerateSerial::UsingCreateFile(_Inout_ CPortsArray& ports)
{
//Reset the output parameter
ports.clear();
//Up to 255 COM ports are supported so we iterate through all of them seeing
//if we can open them or if we fail to open them, get an access denied or general error error.
//Both of these cases indicate that there is a COM port at that number.
for (UINT i=1; i<256; i++)
{
//Form the Raw device name
ATL::CAtlString sPort;
sPort.Format(_T("\\\\.\\COM%u"), i);
//Try to open the port
bool bSuccess = false;
ATL::CHandle port(CreateFile(sPort, GENERIC_READ | GENERIC_WRITE, 0, nullptr, OPEN_EXISTING, 0, nullptr));
if (port == INVALID_HANDLE_VALUE)
{
const DWORD dwError = GetLastError();
//Check to see if the error was because some other app had the port open or a general failure
if ((dwError == ERROR_ACCESS_DENIED) || (dwError == ERROR_GEN_FAILURE) || (dwError == ERROR_SHARING_VIOLATION) || (dwError == ERROR_SEM_TIMEOUT))
bSuccess = true;
}
else
{
//The port was opened successfully
bSuccess = true;
}
//Add the port number to the array which will be returned
if (bSuccess)
#pragma warning(suppress: 26489)
ports.push_back(i);
}
//Return the success indicator
return true;
}
некоторые джавамэны вот таким гордятся
> Internally the code provides 10 different ways (yes you read that right: Ten)
еще и выложено под ни с чем не совместимой лицензией
+1
.ALIAS HALT 10h
.ALIAS VBI 0h
.ALIAS VPUSCRADDR 3000h
.ALIAS VPUATRADDR 3002h
.ALIAS VPUCTRL 3004h
.ALIAS VPUCTRL_WH 3005h
.ALIAS VPUCTRL_F 3006h
.ALIAS VPUCTRL_VBI 0
.ALIAS VPUCTRL_ACT 1
.ALIAS VPUCTRL_TICK 2
.ALIAS W 10
.ALIAS H 5
.ALIAS I %BL
.ALIAS PTR %C
.ORG 2000h SCR:
.ORG 2100h ATR:
.ORG #VBI
DD @VBI
.ORG 30h
DATA:
.ORG 40h
STATE:
X: DB 0
.ORG 80h
_START:
SET %AL #VPUCTRL_VBI
SET %AL #VPUCTRL_ACT
STORE %AL #VPUCTRL_F
MOV %AL #H
SHL %AL 4
OR %AL #W
STORE %AL #VPUCTRL_WH
MOV %A @SCR
STORE %A #VPUSCRADDR
MOV %A @ATR
STORE %A #VPUATRADDR
LOAD %AL #VPUCTRL_F
SET %AL #VPUCTRL_TICK
STORE %AL #VPUCTRL_F
STORE %AL #VPUCTRL_F
LOOP:
JMP @LOOP
VBI:
PUSH %A
PUSH %B
PUSH %C
LOAD %AL @X
ADD %AL 1
CMP %AL #W JNE @VBI_CONTINUE
XOR %AL %AL VBI_CONTINUE:
STORE %AL @X
CMP %AL 0 JNE @VBI_ELSE
MOV #PTR @SCR
ADD #PTR #W
SUB #PTR 1
STORE #PTR %AL
JMP @VBI_SKIP
VBI_ELSE:
MOV #PTR @SCR
ADD #PTR %AL
SUB #PTR 1
MOV %BH 0
STORE #PTR %BH
VBI_SKIP:
MOV #PTR @SCR
ADD #PTR %AL
MOV %BH FFh
STORE #PTR %BH
POP %C
POP %B
POP %A
RET
похождения моей ебанутой вмки продолжаются.
bormand сказало что писать подставным прерыванием в консольку это читерство. реализовал видеовывод. теперь нормально? (слегка криво, и на
атрибуты вмке похуй, как и мне.)
вопреки моим огромным сомнениям, выдает 600 фпс даже на моей скромной конфигурации.
https://imgur.com/fdLlQvx
+1
function main() {
const x = 21;
let s = "foo";
const r = `a${x * 2}X${s}X${s}Z`;
print(r);
}
Продолжаем будни говно-писания говно-компилятора на LLVM. серия - а ваш говно-компилятор может так...
и результат работы
>>
C:\temp\MLIR_to_exe>out.exe
a42XfooXfooZ
+1
if constexpr (BusMode::BLOCKING == mode) {
derived()->send_block(arr, num);
} else if (BusMode::IT == mode){
derived()->send_it(arr, num);
} else if (BusMode::DMA == mode){
derived()->send_dma(arr, num);
}
https://habr.com/ru/post/556144/
> Отладочный вывод на микроконтроллерах: как Concepts и Ranges отправили мой printf на покой
Стреляем себе в ногу при помощи if constexpr.
+1
std::ranges::for_each(tasks, [](auto x) {x();});
а ещё теперь не нужно писать std::begin(), std::end().
c++ будущего.
+1
func getTransport(tt string) (iTransport, error) {
if tt == "scooter" {
return newElectricScooter(), nil
}
if tt == "quadcopter" {
return newQuadcopter(), nil
}
return nil, fmt.Errorf("Wrong type")
}
https://habr.com/ru/post/556512/
> Factory Method Pattern
> Привет, друзья. С вами Alex Versus.
> Ранее мы говорили про шаблоны проектирования Одиночка и Стратегия, про тонкости реализации на языке Golang.
> Сегодня расскажу про Фабричный метод.
+1
INTERRUPT_TABLE section:
00> FF FF | . .
02> 9F 00 | . .
DATA section:
32> 48 65 6C 6C 6F 20 77 6F | Hello.wo
3A> 72 6C 64 21 00 00 00 00 | rld . . . . .
42> 00 00 00 00 00 00 00 00 | . . . . . . . .
4A> 00 00 00 00 00 00 00 00 | . . . . . . . .
_START section:
8F> 9B 00 32 00 PUSH 32
93> 18 00 00 00 INT 0
97> 18 00 01 00 INT 1
9B> 94 40 01 00 ADD %B 1
EXIT interrupt:
9F> 81 40 16 E8 MOV %B E816
A3> 20 00 00 00 RET
RUNFLOW:
8F> 9B 00 32 00 PUSH 32
93> 18 00 00 00 INT 0 DEBUG OUTPUT: Hello world!
97> 18 00 01 00 INT 1
9F> 81 40 16 E8 MOV %B E816
A3> 20 00 00 00 RET
9B> 94 40 01 00 ADD %B 1
HALT SEQUENCE REACHED: 0xE817
Закодил свою виртуальную машину и ассемблер под неё.
Заспидранил Hello world за неделю.
https://pastebin.com/NmLEuGMU
+1
vector<int> res;
...
for (int i = 0; i < res.size(); i++) {
printf("%d%c", res[i], " \n"[i + 1 == res.size()]);
}
Решил вспомнить как олимпиадные задачки решать.