Jump to content

Ganav

Active Members
  • Posts

    1374
  • Joined

  • Last visited

  • Days Won

    14

Everything posted by Ganav

  1. Categoric nu, insa ce am spus mai devreme se refera la faptul ca C/C++ cu toate ca si-au pierdut din popularitate, raman, in continuare, indispensabile atat timp cat toate infrastructura programatica este construita in acestea. Nu, nu ma supar. Sunt de fapt cat se poate de obiectiv in ceea ce priveste dezvoltarea limbajelor usor inteligibile. Nu stiu daca ai avut vreodata de-a face cu un programator de duzina harnic. Facea la un moment dat mai multe greseli decat puteam repara(scria toata ziua cod), fiind nevoit in final sa lucrez la un alt proiect din cauza acestuia. Un limbaj trebuie sa fie usor de invatat de catre un inginer software insa extrem de dificl de catre o persoana care n-a avut tangente cu domeniul dezvoltarii software(de exemplu un absolvent de la drept). Am vazut cod oribil scris in C++. Dar stii care era diferenta intre acesta si altul in Java? Cel din C++ avea 400 de linii iar cel din java ~11000. Complexitatea ridicata implica si un program mai mare ca si numar de linii de cod. Este adevarat ca un program complex este mai usor de scris eronat, dar in ultimul timp au aparut produse open source inutilizabile. Cateva exemple ar fi ubuntu 14.04, 13.10 si libreoffice(orice versiune din ultimii doi ani). Un programator de calitate trebuie sa aiba un rationament structurat, sa stie sa gandeasca programe astfel incat acestea sa fie scalabile si usor de dezvoltat cand acesta nu va ma lucra asupra lor. Multi dintre programatorii din zilele noastre nu au elemente fundamentale de algoritmica; experienta lor se rezuma la a cauta fragmente de cod pe web pe care le vor pune intr-un IDE dupa care le mai aranjeaza putin pana compileaza aplicatia. (Inca) nu. Nu sunt un snob C/C++, si nu am dorit sa creez aceasta impresie prin post-ul anterior. Insa, imi displace sa vad masele cand critica un limbaj doar in baza faptului ca nu inteleg conceptul de referinte(pointer-i), programare orientata pe obiecte si cea pe tipuri(template programming). Sa nu mai mentionez de inline assembly, hook-uri si altele.
  2. Timpul de executie nu are nicio legatura(cel putin directa) cu numarul de programatori. Acesta, teoretic, ar trebui sa scada conform legii lui Moore: Moore's Law Practic nu scade intocmai conform legii, deoarece energia(emisa sub forma de caldura) produsa de transzistoare devine mult prea ridicata dupa un anumit nivel de incapsulare in pastila de siliciu. Numarul de programatori este intr-adevar in crestere, datorita cresterii populatiei lumii si a oportunitatilor(locurilor de munca) in domeniu. Din pacate, am constat ca, calitatea produselor software scade de la o luna la alta. Structura user friendly este de fapt o lama cu doua taisuri: pe de-o parte avem avantaje precum usurinta de invatare si productivitate ridicata iar pe de alta parte avem dezavantajul ca oricine poate scrie cod indiferent de nivelul de pregatire; feature-uri ca autocomplete pot face crearea de cod compilabil foarte usoara. Insa de cele mai multe ori compilabil nu implica functional. Am facut practica de vara intr-un concern si in cea mai mare parte a timpului rescriam codul scris anterior de alti "programatori". De aceea prefer ca un limbaj de programare sa aiba un anumit grad de complexitate astfel incat sa fie suficient de prietenos pentru un inginer software insa aproape imposibil de abordat din perspectiva unui amator; da prefer calitate in detrimentul cantitatii. Fireste ca nu apar. Voi face o mica analogie intre limbaje de programare si elemente din structura societatii: gandeste-te la C si C++ ca si la puncte de infrastructura: sistemul de distributie al energiei electrice, a apei potabile, a transporturilor feroviare, rutiere, aeriene si navale, a productiei energiei electrice, telecomunicatii, etc. Acum gandeste-te la cele de tip web ca si la industria cinematografica, a jocurilor si a chestiilor "cool" pe care toata lumea le doreste insa de care nu are efectiv nevoie. Acum cati ar prefera sa apara pe marele ecran si cati ar prefera sa fie CFR-isti? Cea din urma alternativa este considerata injositoare in societatea din prezent(tare nu? ). A place sau a nu place un anumit lucru implica un grad de subiectivitate adesea raportat la un individ sau la un grup din care acesta face parte(si de a caror norme este posibil constrans). C si C++ sunt relativ dificil de invatat motiv pentru care nu sunt agreate de mase insa realitatea este ca kernel-ul oricarui sistem de operare este scris in C(si posibil cateva module C++), java este scris in C(ma refer la compilator), orice joc stralucitor este scris in C++(cryengine, unreal engine, source engine, etc.), PHP, Perl si Python sunt scrise in C(la interpretoare ma refer), si multe, multe altele. Da, ne descurcam pana vom avea nevoie de o noua infrastructura software(ca si analogie mai multe benzi pentru aceiasi autostrada). In climatul capitalismului salbatic american cine face prima mutare castiga. Deci daca nu se folosea COBOL se pierdeau o multime de bani. Un dezvoltator nu trebuie sa convinga clientul sa evolueze ci sa-l faca sa creada ca a evoluat, sa il faca sa isi doreasca un produs pe care dezvoltatorul il poatea realiza ieftin, usor si repede. Nu exista un limbaj cel mai bun; de regula, cel mai bun limbaj pentru un programator este cel pe care il cunoaste cel mai bine la un moment dat. Pentru a determina cat de "bun" este un limbaj ai putea lua in calcul urmatoarele: numarul de aplicatii scrise in acesta, numarul de programatori care il folosesc si cel mai important natura aplicatiilor scrise in acesta(aplicatii web, jocuri, etc.) precum si numarul de locuri de munca ca si programatori/ingineri software in respectivul limbaj, documentatia limbajului(cu cat numarul de exemple de cod este mai ridicat pe web cu atat libajul este mai popular) si viitoare tendinte in domeniu. In programare este mult mai importanta modul de structurare al ideilor; cat de bine ii poti spune calculatorului sa faca ceea ce vrei. De aceea partea de algoritmica/logica primeaza in detrimentul celei de scriere a codului.
  3. Mrs.. Am cartea respectiva Nu stiam de contributiile dansului in crearea limbajului D. Vezi cartea din post-ul de mai sus. Este usor de urmarit.
  4. Un limbaj de programare nu trebuie perceput ca fiind mai mult decat o unealta, un mijloc prin care ii "comunici" calculatorului ceea ce gandesti. Ti-as recomanda sa te axezi pe probleme de algoritmica, logica si chiar si teste de masurare ale coeficientului de inteligenta. Ulterior te poti apuca de software engineering(pentru a-ti forma o structura in gandire prin care poti crea aplicatii usor de extins si de inteles(la nivel de cod)). Avem foarte multi programatori care scriu cod "cu lopata". Pentru software design poti citi: https://ptgmedia.pearsoncmg.com/images/9780735619678/samplepages/9780735619678.pdf Pentru algoritmica poti incepe cu: http://syedwaqarahmad.webs.com/documents/t._cormen_-_introduction_to_algorithms_3rd_edition.pdf
  5. Mai degraba nu poate fi inlocuit datorita constrangerilor financiare("traducerea" programelor dintr-un limbaj intr-altul este extrem de costisitoare). Deci, marele programator are dreptate. Ii putem afla numele sau cel putin mi-ai putea lasa, te rog, un p.m. cu acesta?
  6. Chiar nu avem limbaje de programare destule? Cele grele sunt C, C++ si COBOL(foarte mult software bancar din anii 80 este scris in acesta).
  7. Ai putea da cateva exemple de realizari de proiecte de tip software/hardware? Nu este necesar sa furnizezi codul in intregime, doar cateva fragmente care sa ilustreze ideea de ansamblu.
  8. Eu am incercat acum doua zile pe un cont de pe care m-am jucat in tara. Dupa logare, mi-a aparut un textbox in care trebuia sa scriu un cod primit pe o adresa de e-mail la care aveam acces. Daca nu aveam acces nu puteam descarca jocurile. Incearca sa te loghezi prin VPN si vezi daca reusesti.
  9. Am incercat sa ma loghez pe un cont de steam in aceste zile si se pare ca nu poti juca jocurile decat in cazul in care ai acces la contul de e-mail de pe care a fost creat respectivul cont de steam.
  10. Cheat-engine, coduri, etc. Poate chiar cel care a detinut contul s-a decis sa-l vanda dupa ce a luat ban; nu putem stii cu siguranta.
  11. Frumos, poti face unul pentru x64 impreuna cu ASLR si stack cookies activat?
  12. Limitations on Raw Sockets On Windows 7, Windows Vista, Windows XP with Service Pack 2 (SP2), and Windows XP with Service Pack 3 (SP3), the ability to send traffic over raw sockets has been restricted in several ways: TCP data cannot be sent over raw sockets. UDP datagrams with an invalid source address cannot be sent over raw sockets. The IP source address for any outgoing UDP datagram must exist on a network interface or the datagram is dropped. This change was made to limit the ability of malicious code to create distributed denial-of-service attacks and limits the ability to send spoofed packets (TCP/IP packets with a forged source IP address). A call to the bind function with a raw socket for the IPPROTO_TCP protocol is not allowed. Note The bind function with a raw socket is allowed for other protocols (IPPROTO_IP, IPPROTO_UDP, or IPPROTO_SCTP, for example). These above restrictions do not apply to Windows Server 2008 R2, Windows Server 2008 , Windows Server 2003, or to versions of the operating system earlier than Windows XP with SP2. Cu alte cuvinte nu le poti folosi pe un windows recent.
  13. Salut, Pe care latura ai prefera sa te axezi mai mult software sau hardware? Ne-ai putea spune, te rog, si cateva lucruri despre cunostintele in respectivele domenii?
  14. Programelele de fl00d trebuiesc scrise de preferinta pentru platforme *nix deoarece Win nu ofera suport pentru raw sockets. Cu alte cuvinte nu ne putem ascunde MAC-ul, IP-ul din pachete.
  15. Nu prea imi vine sa cred ca a reusit sa controleze sistemele de zbor(motoare si navigare). A afirmat ca a rescris codul; acest lucru implica faptul ca a avut acces si la un compilator/depanator(pentru a testa noul cod). Am mari indoieli ca Boeing si Airbus au SDK-uri publice. Mai mult, el facea teste de navigare in timp ce se afla efectiv in avion? Toti cei care s-au ocupat vreodata cu reverse engineering stiu cat de delicate pot fi programele: cand un jmp sare la adresa unei instructiuni nevalide(in mijlocul instructiunii) sau cand un fanion(flag) nu este setat la modul in care se asteapta aplicatia, aceasta va esua de cele mai multe ori. Banuiesc ca un "hacker" este constient de acest lucru si nu si-ar pune viata in joc calatorind in respectivul avion. Concluzia: doar o alta stire menite sa se comercializeze(SEO pentru site-ul respectiv).
  16. Intotdeauna este mai usor sa descompui problema in subprobleme: Calculand sarcina pe care o pot dezvolta diverse baterii (1.5V si 12V), calculati numarul de condensatoare de 1000uF conectate in paralel, necesare stocarii aceleasi sarcini, alimentate la tensiunea inscrisa pe baterie. Intrebarile la care trebuie mai intai sa gasesti raspunsul sunt urmatoarele: 1. Ce este sarcina electrica? 2. Cum se calculeaza? Sarcina electrica 3. In ce relatii se gaseste cu alte marimi fizice(in ce formule apare)? http://www.phys.utcluj.ro/PersonalFile/Cursuri/CuleaCurs/Curs%207.pdf 4. Ce este capacitatea electrica? 5. In ce relatii cu alte marimi fizice se gaseste? Capacitatea electrica , condensatorul electric parametrii si clasificare Capacitatea electricã. Condensatoare Capacitatea electrica 6. Care sunt proprietatile circuitelor electrice in paralel si serie, in curent alternativ si curent continuu? Daca intalnesti o formula care implica calcul integral reiei setul de intrebari raportate la noul context: 1. Ce este calculul integral? 2. Exemple de calcul integral. 3. Ilustratii calcul integral.
  17. Parintii mei(si cu siguranta a multora de aici) s-au confruntat cu probleme similare pe vremea lui Nicu. Solutia cea mai indicata a fost crearea unei imagini false despre propria persoana; sa traiesti ca si cum fiecare moment din viata ta ar fi supravegheat.
  18. In principiu carte poti face oriunde. In Romania facultatile private nu le-as recomanda; au reputatia de fabrici de diplome ceea ce nu le ofera un statut prea ridicat ca si institutii de invatamant. Bucurestiul are momentan un numar mai mare de oportunitati: http://www.ea.com/locations/bucharest Locuri de munca, joburi la Bitdefender
  19. Foloseste reprezentarea caracterelor in sistemul hexazecimal. In ceea ce ai postat sunt numeroase caractere neprintabile care nu sunt redate corect in psot.
  20. Aplicatiile pentru reverse engineering(hexrays, black ice) sunt relativ vechi si am mai multe probleme de compatibilitate pe Win 7.
  21. Ubuntu 14.04 pentru scoala/lucru Windows XP SP 3 pentru reverse engineering, web pentesting Windows 7 pentru driver development si web development pe Java Kali pentru prostii
  22. Stereo+Subwoofer (2.1) Creative-Lautsprecher für Musik, Filme und Spiele - Creative Labs (Deutschland)
  23. Adauga-l si in directorul radacina al proiectului si, de asemenea, in directorul Release. Altfel, ai putea crea o variabila system care sa includa calea catre acel fisier si ulterior sa o incluzi in directorul libraries din cadrul proiectului.
  24. Traditional LISP se foloseste in domeniul inteligentei artificiale. Da, respectivele limbaje pot largi orizonturile in ceea ce priveste rezolvarea unei probleme(ofera alte unghiuri de abordare). Daca, doresti, insa, sa inveti despre cum se lucreaza cu x86_64 este recomandat sa inveti C/assembly.
×
×
  • Create New...