Napiłem się trochę alkoholu żeby zapomnieć o smutkach i przypomnieć sobie uniwersa które przestałem śledzić dawno temu xdddd
Co się dzieje, sebcel skończył wczoraj 30 lat i zrobił ze sobą wywiad xd wszechstronny mistrz występował jako dziecko w TVP2 a Robert bernatowicz został w końcu zdemaskowany, że to on pisze komentarze pod wszystkimi filmikami, w których występuje albo robiąc sobie publicznie loda albo obrażając ludzi, których sam zapraszał do swojego kanału xDD
Afera z bernatowiczem to jest top of the top xddddf
https://bugzilla.mozilla.org/show_bug.cgi?id=627771
Firefox poprawił płynność przejścia gradientów miesiąc temu. I zamknął bug otwarty 14 lat temu.
https://d-pa.ppstatic.pl/frames/pa-def/b5/7e/il20251030_947362439_xlarge.jpg
za mało nasrane, ja bym jeszcze dał napis TARCICA TANIO 505-555-123
Ciekawe wsm skąd się wzięło canvas API. Wiadomo że te półmózgi JavaScriptowe nie zdołałyby wymyślić czegoś co się jako tako trzyma kupy, więc zacząłem szperać. Cairo sprzed 2003 roku używa prawie identycznych funkcji. Ale geneza to chyba tak naprawdę postscript, też jest stack, macierz transformacji, fill, stroke I inne pierdolety. A to już wczesne lata 80
@Deykun: nie no, źle mnie zrozumiałeś, ja chwalę canvas API i dlatego byłem przekonany, że to nie jest pomysł jsowych soyboyów, tylko skopiowali istniejące od dawna, dojrzałe rozwiązanie
i oczywiście miałem rację
Ciekawe wsm skąd się wzięło canvas API. Wiadomo że te półmózgi JavaScriptowe nie zdołałyby wymyślić czegoś co się jako tako trzyma kupy, więc zacząłem szperać. Cairo sprzed 2003 roku używa prawie identycznych funkcji. Ale geneza to chyba tak naprawdę postscript, też jest stack, macierz transformacji, fill, stroke I inne pierdolety. A to już wczesne lata 80
Valve zmieniło, że za 5 czerwonych broni można zrobić nóż teraz w CS i jebnął rynek.
Ja mam rękawicę i noża i spadło 1.3k -> 0.6k i 0.7k do 0.4k. Ale w całym rozrachunku chyba nie wiele się mi zmieniło, bo fioletowe i czerwone poszły do góry.
Ja te skiny głównie mam zaszłości, bo coś wypadło i skrzynki z 2016 są warte teraz więcej i generalnie mam, bo sobie zbierałem te co mi się podobały, i niech ludzie widzą, że mnie stać. I w sumie dobrze, bo nigdy tego nie traktowałem jako inwestycje, bo to siedzi na steamie więc rybka, ale faktycznie trzęsienie ziemi i faktycznie widać, że niektórym nerwy puszczają, bo byli inwestorami w pixele w grze. xD
Czasami jestem hakerem i napierdalam terminalem i czasami za szybko i czasami przerywam proces i zdarzyło mi się więcej niż 1 raz że lint-staged coś spierdolił i zestashował moje zmiany w kodzie i je wyjebał z przerwaniem procesu, i gówna nie da rady odstashować, jeszcze lepiej jak się w trakcie coś klepie w plikach i zapisuje nie scomitowane.
Maszyna do sprawdzania updatedu przed comitem co potrafi wyjebać updated super architektura kurwo. Dobrze, że jest VSCode local history. xD
https://github.com/lint-staged/lint-staged/issues/1311
Oczywiście, że dejkun mógł z resolvować konflikty w git stash entej libki do robienia dobrego kodu. xD
dobra naszitpostowałem znowu komci jakieś 200 ponad chuba
ranking jeszce się nie zaktualizował zobaczymy za minutę czy o pełnej odzinie wskoczę znowu na iersze miejsce xd
dobra naszitpostowałem znowu komci jakieś 200 ponad chuba
ranking jeszce się nie zaktualizował zobaczymy za minutę czy o pełnej odzinie wskoczę znowu na iersze miejsce xd
Ujdzie, czy przesada i dzwonicie po policję? XD
Chciałem sobie otypować grupę podobnych metod i po prostu użyć dekoratorów jak normalny człowiek, które co prawda w TS są trochę upierdliwe, ale da się je doprowadzić do działania. Tylko potem zmusić TS do wykminienia, jaki jest typ udekorowanej metody to jednak jest trochę koszmar, więc spłodziłem takie gówno.
W pythonie jakoś sobie poradzili z tym sprawniej, ale pewnie mieli łatwiej, bo dosłownie wszystko jest obiektem, a w JS to null niby jest prymitywną wartością, ale typeof null === 'object' zwraca true i nie są tego w stanie naprawić od 30 lat, bo internet by wybuchł xd
export const vecOp = <T>(op: (this: Vec, v: IVec) => T) => { function wrapped(this: Vec): T function wrapped(this: Vec, v: IVec): T function wrapped(this: Vec, x?: number, y?: number): T function wrapped(this: Vec, vx?: IVec | number, y?: number) { return op.apply( this, typeof vx === 'number' ? [{ x: vx, y: y ?? 0 }] : vx === undefined ? [{ x: 0, y: 0 }] : [vx], ) } return wrapped}
export class Vec implements IVec { add = vecOp(v => new Vec(this.x + v.x, this.y + v.y)) sub = vecOp(v => this.add(-v.x, -v.y)) dot = vecOp(v => this.x * v.x + this.y * v.y) dist = vecOp(v => this.sub(v).norm)
@sens: aha, jak powyższe nie wywołuje u was odruchu wymiotnego, to co powiecie na emulację przeciążania operatorów używając template tagów? XD
export class Vec implements IVec { static expr(ops: TemplateStringsArray, ...args: any[]): Vec | number;
A po dopisaniu jakiegoś prostego shunt yarda można sobie używać takiego lukru składniiwgo :--DD
const u = new Vec(2, 1)const v = new Vec(3, 7)const p = Vec.expr`|${u} - ${v}|^2`
Ujdzie, czy przesada i dzwonicie po policję? XD
Chciałem sobie otypować grupę podobnych metod i po prostu użyć dekoratorów jak normalny człowiek, które co prawda w TS są trochę upierdliwe, ale da się je doprowadzić do działania. Tylko potem zmusić TS do wykminienia, jaki jest typ udekorowanej metody to jednak jest trochę koszmar, więc spłodziłem takie gówno.
W pythonie jakoś sobie poradzili z tym sprawniej, ale pewnie mieli łatwiej, bo dosłownie wszystko jest obiektem, a w JS to null niby jest prymitywną wartością, ale typeof null === 'object' zwraca true i nie są tego w stanie naprawić od 30 lat, bo internet by wybuchł xd
export const vecOp = <T>(op: (this: Vec, v: IVec) => T) => { function wrapped(this: Vec): T function wrapped(this: Vec, v: IVec): T function wrapped(this: Vec, x?: number, y?: number): T function wrapped(this: Vec, vx?: IVec | number, y?: number) { return op.apply( this, typeof vx === 'number' ? [{ x: vx, y: y ?? 0 }] : vx === undefined ? [{ x: 0, y: 0 }] : [vx], ) } return wrapped}
export class Vec implements IVec { add = vecOp(v => new Vec(this.x + v.x, this.y + v.y)) sub = vecOp(v => this.add(-v.x, -v.y)) dot = vecOp(v => this.x * v.x + this.y * v.y) dist = vecOp(v => this.sub(v).norm)
U klienta w kodzie.
*,::before,::after { box-sizing: border-box; border-width: 0; border-style: solid; border-color: #e5e7eb;}
I w sumie da się lepiej ustawić border domyślny i to jest overkill, ale to nie jest takie głupie. Wystarczy border-bottom-width: 1px; albo border-b potem gdzie się chce. Więc nawet trochę szanuję.
po klasach z tailwinda widać, że zjebał ktoś.
@Deykun: no, pełna zgoda, zjebał, bo użył tailwinda xD
U klienta w kodzie.
*,::before,::after { box-sizing: border-box; border-width: 0; border-style: solid; border-color: #e5e7eb;}
I w sumie da się lepiej ustawić border domyślny i to jest overkill, ale to nie jest takie głupie. Wystarczy border-bottom-width: 1px; albo border-b potem gdzie się chce. Więc nawet trochę szanuję.