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)
@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
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
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.
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/
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
@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ł.
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.
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.
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
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
@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
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
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
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ę. :)
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.
@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
@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));
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
@spam_only: e, wcale nie jest chujowy. Jest całkiem przyjemny w sumie. Przynajmniej w dzisiejszych czasach, bo kiedyś to rzeczywiście tragedia.
@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'.
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?