Jump to content

c3m3d3

Members
  • Content Count

    40
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by c3m3d3

  1. Aha, si package-lock.json ce face? Puneti ba mana si invatati ce fac tool-urile pe care le folositi. Voi chiar puteti sa fiti multumiti de voi in halul asta?
  2. Poti sa ne explici te rog, de ce ar fi nevoie si de package.json daca ai deja un package-lock.json?
  3. Am inteles. Eram doar curios cum am spus. Spune-mi totusi, daca ai fi intrebat sa explici cum poate fi reparata respectiva vulnerabilitate cum ai raspunde daca tu nu intelegi ce o genereaza in primul rand? Si mai rau, nici nu pare ca doresti sa vrei sa-ntelegi. "Ce conteaza ce cod am folosit". Cum adica nu conteaza? Conteaza, conteaza foarte mult. iti zic eu ca primul vector enuntat mai sus, nu o sa functioneze cum ti-ai dorit, pentru ca functia Alert() ia un singur parametru. Ar functiona doar un contextul in care ai variabila source definita pe undeva, dar nu ar afisa-o, in caz contrar ti-ar da un refference error frumos. Ce ai facut tu acolo este foarte foarte messy, conteaza mult si cat de eleganta este solutia ta. Eu nu incercam sa te descurajez, ci doar sa te-ndemn sa-ntelegi mai bine ce se-ntampla, pentru ca iti usurezi viata. Cheers!
  4. Din ce vad acolo ai luat la rand toti vectorii posibili fara sa ai idee ce-nseamna fiecare, nu-ncerc sa fiu critic, pentru ca poate esti baiat destept. Am si eu niste curiozitati totusi, pentru ca eu sunt mai prostut. Din ce vad ai folosit urmatoarele doua treburi pe acolo: 1. <body onload=alert(/xss/,source)> 2. alert(String.fromCharCode(88,83,83)) Care-i treaba cu al 2-lea argument dat la primul alert(), ce ar trebui sa faca? Also, daca sunt cazuri in care passezi la Alert un String direct si iti merge, de ce mai folosesti si String.fromCharCode()? O fi oare pentru ca ai copiat tot ce-ai prins, sau esti mai destept decat pari?
  5. Ma de cate ori sa-ti zic ca e super irelevant ce framework folosesti? In realitate observi cu greu diferenta de performanta intre Angular / React / Vue daca nu ai o aplicatie heavy, toate rahaturile astea exista pentru ca in unele poti avea diferite arhitecturi cu care diferite echipe sunt mai confortabile si pot fi mai productivi. Angular e folosit in general de aia ce vin de pe Java si vor sa se simta smecheri cu type-uri pe front-end. Vue e folosit in general de aia ce au incercat sa-nvete React si nu au reusit si dau cu hate spre corporatii ca-i facut de o singura persoana. React e smecher si e folosit de aia ce-s siguri pe ei si stiu Javascript, dar toate fac aceelasi rahat. In toata platforma asta a ta de vrei tu sa o faci cea mai mare problema nu ar trebui sa fie in ce tehnologie o dezvolti ci cum o vinzi. Am dezvoltat niste aplicatii B2B la o companie ce erau de tot rahatul, banale, dar au fost vandute catre Facebook si generau profit de milioane pentru ca oamenii de pe marketing au stiut cum sa-si faca treaba. E mai important sa infasori cacatul intr-o punga frumoasa decat sa faca ceva aplicatia ta. La dracu, in general in industria IT e mai important sa stii sa vorbesti decat sa ai abilitati tehnice. Pune mana si-nvata cum sa bullshit your way around the system. Invata pe cine sa pupi in cur, cand si unde, si nu o sa mai fii nevoit sa te gandesti la ce framework-uri sa alegi. Tu nu observi ca in Silicon Valley cel mai bine platiti nu sunt programatorii ci managerii?
  6. Nu stiu CodeIgniter dar pot sa-ti fac rapid un API in Node, la care sa-mi trimiti tot HTML-ul si un link catre WM iar eu sa-ti returnez un PDF cu watermark-ul. Te-ar ajuta?
  7. Irelevanta varsta, eu am 18. Ca sa-ti raspund despre Vue, nu prea conteaza. Eu la interviuri (Si am dat destul de multe pana acum), nu am fost luat la intrebari despre framework-uri, ci mai mult au fost intrebari de Javascript Vanilla, ce mergeau mai deep. Eu zic sa parcurgi un curs basic de Javascript, si apoi sa pui mana si sa intelegi tot ce scrie in seria de carti You Don't Know JS. Ca sa-ti faci o idee, am enumarat mai jos cateva intrebari comune ce mi-au fost mie adresate pe la interviuri, unele la companii destul de maricele ( IBM de exemplu). - Diferenta dintre var/let/const - Ce este scoping/hoisting ( Aici am fost pus o data si sa explic la nivel de ce face interpretor-ul JS, am fost intrebat si de Temporal Dead Zone) - Keyword-ul 'this', 2 companii mi-au dat de rezolvat probleme bazate pe asta. Problemele constau in mai multe obiecte ce returnau propriul context, si poate mai faceau si alte treburi pe langa. Deveneau tot mai complexe pentru ca puteai sa ai 4-5 obiecte carora le este dat un alt context ca si parametru in constructor, si era destul de usor sa pierzi firul. - La toate am fost intrebat de Event Loop, la 1 una dintre ele am fost pus si sa fac o schema in care arat event loop-ul, aka cum ajunge ceva in stack, cum ajunge in task queue, webapis, de exemplu la asta putini stiu ca setTimeOut() si altele related, sunt parte din webapi, si nu vin din V8 Engine. Again, asta e si ea o chestie la care te puteau prinde destul de easy. - La absolut toate interviurile am fost intrebat intr-un fel sau altul de modul in care type-urile primitive si type-urile non-primitive sunt date catre alte treburi (ex, alea non-primitive sunt date dupa locatia din memoria in timp ce alea primitive sunt date direct ca si valoare), la una dintre firme am avut si o problema pe baza acestei reguli. - Am fost intrebat si de Redux foarte mult, dar asta pentru ca eu am aplicat pe pozitii de React in general. Intrebariile de Redux erau destul de banale si constau in a explica diferenta dintre un dispatch/action/reducer/store, aka efectiv sa vorbesti de tot ciclul prin care trece state-ul. -Am fost intrebat la toate interviurile de pana acum pe React, de ciclul de viata al unei componente. Again, din cate vezi in general intrebariile nu sunt bazate neaparat pe framework-uri, si chiar daca eu am aplicat pe pozitii ce erau specifice pentru anumite framework-uri era esential sa stii js si la nivel mai deep. Deci de asta zic sa nu te focusezi neaparat pe Vue ci mai mult pe Javascript in sine. Vue e fun, dar aici in orasul meu are un job market cam scazut, daca vrei job cat mai repede bagi tare JS si React. Poti sa-mi scrii daca vrei sa te ajut cu prepararea pentru interviuri
  8. Javascript in combinatie cu frameworks precum React. Eu am ajuns lejer la 1800-1900 net euro dupa 8-9 luni de experienta. Acum depinde si cat de bine te vinzi la interviu. De precizat si ca asta nu s-a intamplat in cadrul aceeleasi companii, eu incepusem cu 600 euro, iar apoi la a 2-a companie crescusem la 1600, iar acum la a 3-a am cerut mai mult decat la cea precedenta. Nu depinde doar de limbaj salariul, conteaza mult si cum te vinzi, trebuie sa stii si ceva politica sa-ti iasa schemele astea cu contraofertele.
  9. Prin meniu te referi la un drawer? Nu fac Android nativ, dar, nu ai putea să creezi drawer-ul și să pui o animație de loading în el pentru toți, iar mai apoi după ce primești datele din firebase să updatezi state-ul și să adaugi iteme în el?
  10. 1. înveți Javascript 2. Înveți Electron.js -> https://electronjs.org/ 3. Folosești D3.js -> https://www.d3-graph-gallery.com/ 4. În final o să ai aplicație ce rulează independent atât pe linux, osx și windows 5. Profit??
  11. Hmmm, aveți încredere să vă țineți salariul în Revolut?
  12. Dacă scopul tău e să ai un job cât mai repede, atunci mai degrabă învață JavaScript. Caută cursuriile lui Mosh de Javascript Basics, apoi JavaScript OOP. Le găsești pe Udemy cât și pe site-uri de torrente. Mai apoi învață React.js și ești good to go
  13. c3m3d3

    Switch Color

    Perfect! Până în acest punct ai reușit să salvezi culoarea aleasă în LocalStorage. Valoarea aia o să rămână acolo și după refresh. Acum tot ce ai de făcut este să accesezi respectiva valoare după ce pagină s-a încărcat. Repet, ca să accesezi ceva din localStorage folosești: localStorage.getItem('numeCheie'); Partea asta de mai sus îți caută cheia respectivă în localStorage. Și îți returnează ce a găsit în ea. Mai departe, este cam irelevant dacă ți-o returnează și tu nu o stochezi nicăieri, deci o pui într-o variabilă în modul ăsta. let culoareaMea = localStorage.getItem('myColor'); Acum, variabila culoareaMea conține valoarea pentru cheia myColor din localStorage. Ce trebuie să faci mai departe este ca atunci când pagina s-a încărcat, să setezi culoarea pentru respectivul div cu valoarea din culoareaMea. Văd că folosești ceva CMS și mă gândesc că HTML-ul este generat din mai multe părți și poate nu vrei să te complici să vezi de unde e generat, așa că în acest context poți să te folosești de un alt event listener. Sunt două mari event-uri în JavaScript ce sunt emise în momentul în care se încarcă o pagină și anume: DOMContentLoaded și load. - DomContentLoaded este emis imediat ce DOM-ul a fost încarcat ( Doar HTML-ul fără CSS și imagini ) - load este emis după ce totul a fost încărcat ( DOM / CSS / Imagini ) În cazul tău, load este event-ul pe care trebuie să-l "asculți" deoarece tu modifici CSS. Iar treaba asta o faci în felul următor: <script> // Aici așteptăm eventul de 'load' ca să știm când s-a încărcat pagina window.addEventListener("load", function(){ const culoareaPrecedenta = String( localStorage.getItem('myColor') || '#fff' ); // Aici iau culoarea precedentă din localStorage // De asemenea o transform în String ca să nu fie probleme document.getElementById('content_box').style.background = culoareaPrecedenta; // Aici schimb culoarea actuală cu ce avem în localStorage }); </script> Pune treaba asta la sfârșitul paginii
  14. Salut, pot eu să-ți dezvolt atât pentru IOS cât și Android
  15. c3m3d3

    Switch Color

    Dacă folosești Chrome, în Developer Tools poti vedea acolo ce ai în Local Storage. Apasă F12, apoi du-te la tab-ul Application, iar în stânga o să-ți apară "Storage". Sub Storage o să ai Local Storage cu mai multe site-uri, caută site-ul tău și deschide-l. Mai departe de acolo ai să vezi toate cheiile și valoriile din LocalStorage setate de respectivul site, în cazul tău trebuie să apară ceva cu cheia "MyColor" și o anumită valoare. Rămâi cu consola deschisă atunci când schimbi culoarea și vezi dacă se adaugă ceva acolo sau nu.
  16. c3m3d3

    Switch Color

    Cum ai făcut? Încearcă ca imediat după ce s-a încărcat pagina să verifici dacă variabila din localStorage propusă de Gecko, conține culoare. Asta deoarece funcția ta este apelată doar atunci când alegi ceva din acel select, nu și când se-ncarcă pagina, prin urmare culoarea nu are cum să fie schimbată. Funcția changeBack ar trebui să arate în felul următor: const changeBack = () => { // Aici luamm o culoare let back = document.getElementById('colorPicker').value; // Aici stocam culoarea in localStorage sub denumirea 'myColor' localStorage.setItem('myColor', String(back)); // Aici setăm culoarea unui element cu valoarea aleasă document.getElementById('content_box').style.background = back; } Până în acest punct ceea ce ai făcut a fost că ai stocat o culoare în LocalStorage, mai departe trebuie să iei culoarea respectivă după ce s-a încărcat pagina și să o setezi pe un element. Pentru asta, poți de exemplu să asculți event-ul onLoad pe <body>. Ex: <body onload="functiaMea()" Iar functiaMea() poate să fie ceva de acest gen: const functiaMea = () => { // Aici iau culoarea precedenta din localStorage, iar dacă una precedenta nu există se va returna codul pentru culoarea albă const culoareaPrecedenta = localStorage.getItem('myColor') || '#fff'; // Aici schimb culoarea document.getElementById('content_box').style.background = culoareaPrecedenta } Ca și bonus: Am să asum că ești începător, și mă gândesc că modul în care Gecko verifică culoarea precedentă te pune în confuzie și ți se pare criptic, mă refer la: const culoareaPrecedenta = localStorage.getItem('myColor') || '#fff'; Aici pornește de la faptul că funcția getItem() ce aparține de LocalStorage, returnează false sau true în funcție de dacă a găsit cheia respectiva ( 'myColor' ) sau nu. Mai departe, pe baza acestui lucru poți face diferite verificări. @Gecko a ales să se folosească de modul în care expresiile sunt evaluate în JavaScript, și să folosit de operatorul OR ( || ) ca să scrie asta mai pe surt. Ca să-ți faci o idee, expresia de mai sus se poate scrie și sub forma: let culoareaPrecedenta = null; if( localStorage.getItem('myColor') === true ) { culoareaPrecedenta = localStorage.getItem('myColor'); } else { return '#fff' } // În JavaScript condițiile din if sunt toate "transformate" în booleans ( true or false ) prin urmare dacă dorești să verifici dacă ceva e adevarat, poți să renunti la " === true ", // iar if statement-ul tău poate să fie și în modul: if( localStorage.getItem('myColor') ) { // do stuff } Totuși e cam lunguiața, deci o variantă mai scurtă ar fi folosind shorthand if statements aka așa: // În prima fază verifici dacă există o culoare, în a 2-a fază dacă există o returnezi, dacă nu returnezi culoarea albă let culoareaPrecedenta = localStorage.getItem('myColor') === true ? localStorage.getItem('myColor') : '#fff'; // Totuși, ții minte ce am spus mai sus legat de evaluarea expresiilor? Ea poate să fie scrisă și mai scurt așa: let culoareaPrecedenta = localStorage.getItem('myColor') ? localStorage.getItem('myColor') : '#fff'; Știind aceste lucruri, poți să te folosești de modul în care expresiile din stânga și dreapta operatoriilor sunt evaluate și să ajungi la varianta originală care este una scurtă. În cazul operatorului OR ( || ) condițile din stânga și dreapta lui sunt evaluate la True sau False. Și la nivel fundamental, la executare o să ajungi să ai ceva de acest gen: let color = localStorage.getItem('myColor') || '#fff'; // Aici e posibil ca funcția getItem să returneze False, by default în JavaScript orice String este evaluat ca și True. // Prin urmare dacă culoarea ta nu este găsită se va ajunge la ceva de genul: let color = false || "#fff" // Mai departe, având în vedere că operatorul OR păstrează doar condițiile adevărate ( TRUE ), iar string-urile sunt TRUE, se va ajunge la: let color = "#fff"; Iar dacă ar fi ca localStorage să conțina o valoare adevărată, atunci s-ar ajunge la true || true, iar având în vedere că în JavaScript expresiile sunt executate de la stânga la dreapta, se va păstra ce este în partea stângă a operatorului. În acest mod, poți face tot felul de chestii cu operatori, să zicem că dacă dorești ca atunci când nu există o culoare precedentă, să nu faci nimic. Ei bine poți să te folosești de operatorul AND ( && ) pentru asta și să faci ceva de genul: let color = localStorage.getItem('myColor') && localStorage.getItem('myColor'); Prin treaba de mai sus, color o să fie setat 'undefined' în functie de dacă există sau nu o culoare setată înainte Poți să-mi scrii dacă ai nevoie cu ajutor legat de JavaScript în general. Spor!
  17. Bre nu ești capabil să folosești un map() și filter() și îți permiți să faci gură? :(
  18. Salut, poți să-mi trimiți și mie PM cu mai multe detalii. Eu aș fi preferat să ți-l fac în node.
  19. Ahaha BETIT. I-am scris eu acum cativa ani un articol pe blog, m-a platit cu 5 dolari apoi mi-a sters contul si si-a asumat toate drepturile de autor. Articolul a fost cel mai de success articol pe care l-a avut site-ul lui de stiri vreodata. (Inginerie Sociala & Facebook stuff)
  20. Esti Aerosol sau Kronzy? Damn, long time no see. Ohh, Sith. Imi amintesc cand m-ai invatat de networking si futut minore, ti-am folosit sfaturile. Cat despre BTC, n-aveam eu mare avere.
  21. Presupun ca vulnerabilitatea este in form-ul de pe careers.google.com. Macar acum stiu sigur ca acel mesaj este automat.
  22. Salutare RST. Planuiesc sa cumpar o subscriptie pe un an pe FrontEndMasters. Subscriptia costa $390 pe an, si ofera access la toate cursuriile si path-urile de la ei, eu sunt interesat in general de cele avansate de javascript. Ma gandeam ca poate mai gasesc pe aici persoane interesate (3-4) ce ar fi dispuse sa cumparam un cont impreuna ca sa benificiem de preturi mai reduse. Este cineva interesat?
  23. Salut gaddafi, da intr-adevar sunt trecut la 6 ore pe zi. Legat de overtime nu am fost nevoit sa fac asta pana acum. Lucrez remote si programul este foarte flexibil, in general nu ajung nici la alea 6 ore pe zi. Iar de obicei daca este mult de munca mai si dorm intre ore, aka 3 ore dimineata, dorm cateva ore, si mai bag 2-3 ore dupa. Pe langa asta, de obicei cam 30minute - 1 ora din alea 6 ore este petrecuta in sedinte de status checking. Life's good ❤️
  24. Salutare frate Aismen, nu. M-am tuns intre timp, cica par mai serios fara
×
×
  • Create New...