sens
g/javascript

Nwm kurwa ale ten rust to jednak trochę wkurwiajacy jest xD nadal lepsze niż C++ ale te jebane optionale do szału mogą doprowadzić. Nie ma nulla i trzeba być sierotą żeby sobie w tym języku narobić kłopotów, ale kurwa połowa kodu to jest unwrapowanie wartości. Jeszcze żeby był operator jakiś ?. ale nie kurwa po co. Niby jest ? ale nie robi tego czego normalny człowiek by się spodziewał. I jeszcze żeby nie było za prosto to są dwa główne typy optionali, taki od errorow i taki prawdziwy xd

Wszyscy narzekają że borrow checker taki trudny, ale jakoś nikomu nie przeszkadza że kompilator zachowuje się jak kurwy na najbardziej pojebanych filmikach bdsm (nie pytajcie skąd wiem)

#
Show remaining entries (1 reply)
sens

@sens: a, no i kompilacja jest spoko, szybka i w ogóle, zero walki z tym jest. Ale dlaczego jest szybka skoro rust kompiluje wszystkie zależności? Bo sobie cachuje inkrementalnie kolejne buildy. Skompilujesz sobie program kilka razy i twoje artefakty mają 1 GB dla programu który waży 2 MB xD

#
strimsVEVO

@sens:

Wszyscy narzekają że borrow checker taki trudny, ale jakoś nikomu nie przeszkadza że kompilator zachowuje się jak kurwy na najbardziej pojebanych filmikach bdsm (nie pytajcie skąd wiem)
poka te filmy

#
Deykun
g/javascript

W ogóle nadal jestem uczulony na node run na serverze, kiedyś to się opłacało server ftp robiło kopiuj wklej .php i wyjebane - małpa by to ogarniała, a teraz ssr chuje muje utrzymuj proces.

https://www.youtube.com/watch?v=uEVmD6n8Il0

#
sens
g/javascript

Jak to wojman przeszukuje mnie
Przecież mam prawo wpisować tam gdzie chce

#
Deykun
g/javascript

It is now common knowledge that in 1995 Brendan was given only 10 days to write the JavaScript language and get it into Netscape. Date handling is a fundamental part of almost all programming languages, and JavaScript had to have it. That said, it’s a complex problem domain and there was a short timeline. Brendan, under orders to “make it like Java” copied the date object from the existing, infant, java.Util.Date date implementation. This implementation was frankly terrible. In fact, basically all of it’s methods were deprecated and replaced in the Java 1.1 release in 1997. Yet we’re still living with this API 20 years later in the JavaScript programming language. - https://maggiepint.com/2017/04/09/fixing-javascript-date-getting-started/

#
sens

@Deykun: nie mogli wpiąć jvm do przeglądarki?????

#
Deykun

@sens:
Hehe, w ogóle to był chad move ze strony Netscape i but w mordę microsoftowi.

#
sens
g/javascript

Powiem że ten typoskrypt to nawet zabawna rozrywka. Czasem żeby zgadnąć co trzeba zrobić to trzeba trochę powyginać mózg, a wciąż jest dość intuicyjny.

Pokaż ukrytą treść ofc nadal pluję na typowanie w kurwa jebanym języku do obracania kwadratów na ekranie

#
sens
g/javascript

Przyznać się, kto z was (programeruw ofc) wiedział o istnieniu operatora >>> w js?

#
Show remaining entries (2 replies)
ajdajzler

@sens: o nie wiedzialem ze js wspiera operacje na bitach, ciekawe na chuj to komu

#
Deykun

@ajdajzler:
Po stronie serwera node może się komunikować ze skryptami nienapisanymi w JS, więc może jako input się opłaca.

A na froncie są readable streams, że czytasz na bieżąco odpowiedź, a nie czekasz na koniec fetcha, może to pozwala szybciej coś robić nie wiem czy tam się czyta bitami, ale może.

U mnie to przychodziło z api jako wartość bitowa i musiałem dwa bity mnożyć, i jak było 1000 x 1010 to wiedziałem, że muszę włączyć limit 1000 z 4 pozycji - ale to wiadomo kwestia konwencji mogli to robić za mnie na BE i tylko and bym postawił.

#
sens
g/javascript

TIL składnia destrukturyzacji obiektów w JS jest na opak z dupy

const foo = { fields: ['a', 'b', 'c'] };
const { fields: bar } = foo;

Oczekiwałbym, że będzie bar: fields, skoro tak się deklaruje obiekty.

#
Show remaining entries (4 replies)
Pherun

@Deykun: karasie

#
sens

Ja już jestem nauczony i wolę to

@Deykun: ano, tak to już bywa. Ostatnio się przestawiłem z długo wyznawanego przeze mnie stylu indentacji Allmana na K&R. Logiki w tej destrukturyzacji nadal dla mnie zupełnie brak, ale ta analogia ze stronami równania całkiem niezła i łatwiej będzie mi to przełknąć xD

Co do kolejności argumentów, to argument o czytaniu linii w callbacku to trochę inwalida, bo kto pcha do callbacków literały dłuższe niż 10 elementów? Zresztą można do tablicy wsadzić initial element z przodu, bo przecież hej, to literał, ty jesteś panem. A jakby był z przodu, to musiałbyś pisać [1,2,3].reduce(0, reducer) za każdym razem.

Z tego typu dylematów to np. w Pythonie join jest metodą stringa (w której robi on za separator), a nie list czy tupli. I w sumie jest to niby dziwne na pierwszy rzut oka, ale masz w ten sposób załatwione wszystkie iterowalne rzeczy, nie trzeba implementować joina w każdej klasie z osobna.

#
sens
g/javascript

muj najnowszy prołdżekt

https://i.imgur.com/I8Szs8h.png

canvas jest spoko, ale mazianie po nim to gówno, bo trzeba dużo pisać

ale już nie, bo zrobiłem lekki wrapper na proceduralne tworzenie obrazków :DDD na razie jest to taki pruf of koncept, ale już można wygibasy robić jak liczenie średniej z dwóch punktów przy pomocy dwukropka czy też automatyczne tworzenie siatki z zadaną przerwą i takie tam pierdolety

#
Show remaining entries (3 replies)
Pherun

@sens: zmień język na gęstszy i dodaj sztuczną inteligencje

#
Runchen

@sens: fajne- nie zacina się.
Musi być że jakiś kozacki serwer czy coś xD

#
sens
g/javascript

właśnie się dowiedziałem, że w JS regexpy przetrzymują stan po execu XD jak się używa flagi g

const rx = /strims(\.ru|\.pl)/g
rx.exec(str);
rx.exec(str); // takiego wała, nie zmatchujesz, musisz zresetować lastIndex w obiekcie regexpowym albo pozbyć się flagi xD

#
Show remaining entries (1 reply)
sens

@Deykun:
const rx = /(?<color>#[0-9a-f]{3}(?:[0-9a-f]{3})?)/g;
const strings = ['#aaa', '#bbb', '#f00f00', '#abcdef'];
for (let str of strings) {
  const match = rx.exec(str)?.groups;
  console.log(match?.color)
}

co drugi jest undefined

#
Runchen

@sens: JPRDL- serwisu dla programersów- a Ty piszesz o tym właśnie, brak słów

#
sens
g/javascript

wpierdalanie css do js, czyli tak zwany JSS, no kurwa co może pójść źle?

naprawdę xD jebie się w bani już tym frontendom, niedługo to js będzie pewnie wspierany sprzętowo przez procesory, bo już nikt nie będzie potrafił pisać w niczym innym tylko w js

#
Show remaining entries (10 replies)
spam_only

@sens: A jaka to roznica? bo ogolnie dziwi mnie kombinowanie jsa z cssem jako jedno.

#
sens

@spam_only: no mnie też

#
Zian
g/javascript

Da się wsadzić znak z pozycji w tablicy w Regexie? Jakaś metoda na zliczenie wystąpień znaku z pozycji w tablicy?

let str = "onomatopoeia";
str = str.match(/o/g);
console.log(str.length); // 4

#
Show remaining entries (2 replies)
Deykun

@Zian:

Nie o to chodzi. Biorę znak z str[0] i szukam wszystkich wystąpień znaku z tej pozycji.

No to 'onomatopoeia'.charAt(0) i new RegExp() powinno dać radę. :)

#
Zian

@Deykun: Próbowałem, ale widocznie muszę jeszcze nad tym popracować.

#
Zian
g/javascript

Dlaczego wartość str jest zwracana przy n = -1?

function padIt(str, n) {
while (n--) str = (n & 1) ? (str + "*") : ("*" + str);
return str;
}

console.log(padIt("a", 5));

EDIT: Wcina wcięcia.

#
Show remaining entries (20 replies)
Deykun

@ajdajzler:
Ja mam u siebie w pracy klika wywołań z while ale też niepopularne i częściej się go robi na około przez rekurencje dla danych warunków.

Ale jak ktoś chce być super cool i do przodu to robi generator:
function* idMaker() {
let index = 0;
while(true) { yield index++; }
}

const gen = idMaker();

console.log(gen.next().value); // 0
console.log(gen.next().value); // 1
console.log(gen.next().value); // 2

#
Zian

@Deykun: Coś takiego działa:

function padIt(str, n) {
    str = str.padStart(str.length + Math.ceil(n / 2), "*");
    str = str.padEnd(str.length + Math.floor(n / 2), "*");
    return str;
}

console.log(padIt("a", 9));

#
Deykun
g/javascript

It is now common knowledge that in 1995 Brendan was given only 10 days to write the JavaScript language and get it into Netscape. Date handling is a fundamental part of almost all programming languages, and JavaScript had to have it. That said, it’s a complex problem domain and there was a short timeline. Brendan, under orders to “make it like Java” copied the date object from the existing, infant, java.Util.Date date implementation. This implementation was frankly terrible. In fact, basically all of it’s methods were deprecated and replaced in the Java 1.1 release in 1997. Yet we’re still living with this API 20 years later in the JavaScript programming language. ~https://maggiepint.com/2017/04/09/fixing-javascript-date-getting-started/

:D

https://github.com/tc39/proposal-temporal - wprowadzają nowy obiekt do obsługi daty

#
Show remaining entries (3 replies)
spam_only

@Deykun: Zawsze i wszedzie

@Pherun: Dobrze ze ziemia nie jest tak chujowa, a nie, czekaj.

#
sens

@spam_only: e, wcale nie jest chujowy. Jest całkiem przyjemny w sumie. Przynajmniej w dzisiejszych czasach, bo kiedyś to rzeczywiście tragedia.

#
ajdajzler
g/javascript

jake sa wasze ulubione frestyle

#
Show remaining entries (1 reply)
ajdajzler

https://youtu.be/YiHZVF-zUUY
PARIS PLATYNOV

#
spam_only

@ajdajzler: https://youtu.be/inQrMmIodC0?t=58

#
lobotomius
g/javascript

Jak zapisać taki jsdoc:
@param obj
@param obj.prop1
@param obj.prop2

zeby netbeans go łykało?

#
Show remaining entries (1 reply)
lobotomius

@akerro: może dlatego, że nb używa własnego parsera / subsetu / dialektu, nie wiem. Napotykając pow. zapis raportuje ono tylko błąd 'invalid documnetation'.

#
akerro

@lobotomius: oh well... https://imgur.com/a/64TdC

#
sens
g/javascript

Dlaczego jak działam na <input type = "text" id = "wypokguwno"> czymś takim

document.getElementById('wypokguwno').focus();

to zaznacza mi cały tekst w inpucie? :/

Jak mogę zrobić, żeby kursor był na końcu tekstu? Obszedłem to przez <input type = "text" id = "wypokguwno" onfocus = "this.value = this.value">. Da się jakoś ładniej?

#
Show remaining entries (8 replies)
only_spam

@courso: Chyba coś przeoczyłem...

#
courso

@only_spam:

$("#x").focus();
document.getElementById("x").focus();

#