Jump to content

cmiN

Active Members
  • Posts

    1609
  • Joined

  • Last visited

  • Days Won

    27

Everything posted by cmiN

  1. ^ Mai sunt si oameni la oras care stau la casa, mai sapa ceva in gradina, mai fac o partie prin curte, macina graunte la gaini si n-au bani de cafenele.
  2. Ok si pentru (64bit) 0xffFFffFF * 0xffFFff00 fara acel L la sfarsit va da -1*(x) == -x sau valoarea normala ?
  3. Asta parca-i mircea badea ... partea nasoala din el.
  4. Bun, si daca sunt pe linux ? P.S.: zi-mi si mie diferenta dintre halt, poweroff, care sunt optiunile pentru un shutdown adecvat cu logout si totul inchis normal.
  5. In C++ facea cast dupa containerul in care urma sa intre, dar aici am impresia ca trebuie sa fortezi, probabil o avea limbajul un sistem mai inteligent prin care iti economiseste memoria, intrebarea este ce se intampla daca dupa ce ii dai lui long i = 0x7fFFffFF faci i *= i ?
  6. @Zamolxis666 acum am vazut ca ai postat si tu . Desi int e pe 4 octeti (4*8=32 biti) se presupune ca valorile luate de variabilele create cu el nu vor lua valori mai mari de 2^16 pentru 16 biti, de aceea se ia un for de la 0 la 15 inclusiv pentru a muta la stanga pe bitul 1 intr-un sir de zerouri. 1 << x muta pe 1 cu x pozitii la stanga (numarul astfel obtinut va fi acelasi lucru cu 2^x) mai exact 1 << 2 == (...00100) == 4 si forul tau face acelasi lucru: muta pe rand pe 1 incepand din pozitia "cea mai din stanga" (de pe a 16-a de la dreapta la stanga), apoi il muta pe a 15-a, pe a 14-a si tot asa exact ca o nedeterminata X la un polinom. Apoi se aplica & (care face acelasi lucru ca si && numai ca nu face direct intre numere ci intre biti luand bit cu bit din fiecare numar) iar n&m va avea urmatoarea semnificatie: 1 daca pe pozitia 15-i (numerotarea se incepe de la 0) exista 1 si 0 in caz contrar, deoarece toti bitii care sunt 0 din m vor da 0 din start prin & si numai un singur bit care este 1 pe o anumita pozitie va da 1 sau 0 in functie de bitul care se afla pe respectiva pozitie din n. Oricum prin treaba de mai sus ti-am facut mai mult un rau, ce crezi ca te ajuta mai mult ... sa iti dau niste referinte catre prioritatea operatorilor si ceva lucru pe biti si sa cauti singur sa te documentezi si sa afli in final singur sa ai satsfactia si memoria aia selectiva sau ca ti-am dat deja totul pe tava, traiesti cu falsa impresie ca ai inteles si pui mai departe caramizi peste goluri, peste o fundatie subreda ?
  7. cmiN

    C++

    Whoa whoa whoa tu te-ai bagat deja in clase . Pentru inceput descarca un compilator (mingw) de preferat si cu IDE inclus ca Code :: Blocks, e si cross-platform. Intri pe cplusplus.com si de acolo te duci la tutorial, o iei usor inveti tipuri de date primitive, variabile, cum sa te joci cu memoria sa faci chestii simple ca si pe un calculator de buzunar, apoi inveti sa interactionezi cu utilizatorul prin consola, sa lucrezi cu fisiere, lucruri de genul, apoi te descurci tu. Cand vrei sa aprofundezi si sa citesti mai multe despre o biblioteca/clasa/functie ai acolo reference. Ceva materiale gasesti aici, incepe cu alea care au mai putine pagini , dar tot ce gasesti pe site e de ajuns, oricum inainte sa te bagi direct in invatat citeste putin (tot acolo) despre limbaj, cum lucreaza el, la ce te ajuta (daca te ajuta), de unde provine, cum sa incepi cu el, etc. Totusi daca vrei sa-ti formezi asa o idee mai abstracta pe ansamblu poti incepe cu Python, descarci interpreterul si testezi direct in el bucati de cod la fel cum ai scrie comenzi in shell.
  8. cmiN

    Disper

    De ce += (adica 2*vechea_valoare + 1) si nu doar = (vechea valoare daca exista, daca nu atunci 0, la care se adauga 1) ? Oricum in Python pseudosuprasolicitarea operatorilor functioneaza ceva mai 1337 fata de C++, pentru ca atunci cand faci d[item] (daca item nu exista se creeaza unul cu default constructor) se returneaza o referinta catre acel obiect pe care poti face mai departe = sau += sau ce vrei tu , pe cand in Python d[item] incearca sa-l acceseze si daca nu exista returneaza o eroare (daca e vorba de citire) in schimb daca vede ca e urmat de un = atunci se creeaza acea cheie cu valoarea din dreapta egalului, totusi daca e urmat de += asta ar insemna citirea vechii valori ce urmeaza a fi insumata cu valoarea argument si cum acel element n-ar exista din nou se returneaza eroarea. Deci pune d[c] = d.get(c, 0) + 1 (pui un 2* daca vrei vechiul comportament).
  9. Se poate foarte usor emula un astfel de comportament in AutoIT cu ceva random si target pe window id, dar nu-s comod cu limbajul si nici nu am timp de invatat in schimb am dat un pont pentru cunoscatori sau daca ai timp sa-ti bagi nasul. Acum conteaza ce browser ai si unde tii fisierul text si cat de mult depinde softul de conditiile variabile ale sistemului.
  10. cmiN

    Programare

    Eu i-am zis, el batman. E acelasi lucru cand intrebi un mincinos daca este mincinos sau nu .
  11. cmiN

    Programare

    Daca nu esti dispus sa pierzi prea mult timp in fata calculatorului de ce ai invata un limbaj de programare ? Programarea inseamna transpunerea logicii, algoritmicii, matematicii si fizicii sub forma unor instructiuni prelucrate si executate de procesor. Ca sa-i descoperi tainele si satisfactiile trebuie nu numai sa-ti aloci ceva timp pentru a trece de fiecare obstacol ci sa te dedici sistemelor de calcul. Eu zic sa revii la jocuri, daca te interesa asa de mult citeai si cautai tot ce gaseai pe masura ce iti crestea interesul si finalizai cu o intrebare, o comparatie intre mai multe limbaje si cam ce folosim fiecare dintre noi pentru a-ti forma o idee inainte de a porni la drum cu un prim limbaj, o idee despre comunitatile cu, care vei interactiona in vederea dezvoltarii tale. Oricum ... incearca Python.
  12. Asta e chiar un inceput bun ... sa nu te lasi niciodata, oricum C-ul e baza . Pe mine nu ma intereseaza cati bani faci, daca te chinuie aia sau nu, sau alte detalii despre job/cv, cand vii cand pleci, etc. Vreau sa stiu cum arata cea mai grea problema din interviu, care ti s-a parut tie complexa/imposibila, nu neaparat s-o detaliezi in enuntul in care ai primit-o ci ca idee ce cuprindea sau ceva asemanator, dar care ascunde aceeasi idee.
  13. Suntem 2 persoane diferite cu arii de exploatare diferite, totusi e de ajuns sa cauti prin search dupa Python si gasesti multe posturi pe care le citesti de placere indiferent daca ai sau nu vreo tangenta cu programarea. E cam singurul limbaj in care iti permiti sa prosperi cu ceva in lumea virtuala, sa te faci cumva remarcat si sa poti atinge aproape instantaneu placerea aia a programarii pe care altii nu o vad nici cand se angajeaza. Imi aduc aminte si acum ... ca aveam cont pe Mortal-Team (care devenise insecurity) si faceam scripturi/automatizari simple in batch @ win si mi-a zis cineva, nu mai stiu daca tw8, nosferatu sau HrN sau cine era, oricum postase unul din ei in threadul ala in care vorbeam eu de un loop of death sau si de alte lucruri in batch (nu e postul asta de pe rst, e altul mai vechi care era si pe insecurity dar disparuse la un moment dat) si mi-a zis sa ma apuc de un limbaj de programare, am ceva potential numai ca in batch sunt "ca un leu in cusca", citatul il tin minte si acum, inca nu am gasit postul in cache in ceva, oricum ii multumesc aceluia, si tot am cautat pana am dat de Python. Conteaza foarte mult prima "iubire" iti decide istoria.
  14. Dragut scriptul, dar n-am apucat sa vad loading barul deoarece ingheata imediat dupa cred ca intr-un retrieve_lines din ftp.nlst. Pe backtrack kde @ vbox.
  15. Judecand dupa ultimul post sunt aranjamente de N luate cate K (N!/(N-K)!), fiindca vrea si 123 si 132 (a zis sa nu se repete cifra, atat), in cazul combinarilor astea 2 numere ar fi fost acelasi lucru, deoarece s-ar fi plecat mereu de la pozitia din dreapta ultimei alese. Prin combinatii se referea la numarul total de functii adica N^K unde pentru fiecare pozitie se alege un numar indiferent daca a mai fost ales sau nu si in cazul asta se repetau numere. nrs = sorted([1, 2, 3, 4]) K = 3 sol = [] def gen(pos): if pos == K: print "".join(str(x) for x in sol) return for x in nrs: # si daca vrei aranjamente if x not in sol and (pos == 0 or x > sol[pos - 1]): # scoti and-ul sol.append(x) gen(pos + 1) sol.pop() gen(0)
  16. Daca citeati cu atentie postul ati fi inteles ca se refera DOAR la web. A spus ca si-a ales unealta potrivita pentru a-si simplifica algoritmul, intr-un mediu in care viteza nu mai depinde de limbaj, iar la cea mai nasoala eroare stii exact unde sa te duci; in alte limbaje mai complexe dupa ce pierzi cateva zile sa pui la punct niste exceptii iti dai seama ca de fapt buba era in alta parte si ti-ai dori cu toata inima sa schimbi tot proiectul sa-l regandesti/reproiectezi sa iasa acel general purpose asa cum ti-ai dorit, dar acest lucru nu-l mai poti face fiindca stii ca ai atat de mult de codat, in Python dispar ambele cazuri . Skull conteaza sa-ti inteleaga altul sursa nu tu, iar la o complexitate mai mare nu stiu cat de bine ai sa te intelegi cu pointerii, mai ales daca sunt implicate si clase, suprasolicitari de operatori si polimorfism (vezi Java de ce i-a eliminat). Nu uita ca altcineva va spune acelasi lucru si despre tine, ca nu are rost sa foloseasca abstractizari tipice C/C++/C# cand poate pur si simplu sa comunice direct cu procesorul in ASM. Limbajele sunt doar niste unelte si se aleg in functie de aplicatie, platforma, necesitati, iar daca viteza nu conteaza se prefera un interpreter ce foloseste o sintaxa mai usoara decat pseudocodul, unicul limbaj de programare destinat incepatorilor inca folosit de experti: Python. Linuxul, baza, e facuta in C amestecat cu ceva ASM, dar in spatele oricarei distributii pentru asigurarea celorlalte functii si evitarea folosirii shellului se foloseste cel mai mult (detasat) Python, in installuri la pachete, in triggere, fast scripting, orice. Google spune ca prefera oamenii ce stiu si sunt dispusi sa mestereasca Python indiferent de celelalte cunostinte (spune ceva anume despre ei, modul in care vad programarea), Yahoo, Youtube au pagini in py, NASA cum crezi ca-si programeaza acum roboteii si sondele alea chiar si anumite parti din rachete. Nanotehnologia si calculul stiintific este automatizat mult mai usor si desigur prefera Python in 99% din cazuri. Unui elev daca ii arati intr-o ora de informatica Pythonul s-ar putea ca peste cativa ani sa devina un guru in C++/Java cu salariu cacalau pe la nu stiu ce firma, pe cand daca ii arati direct robustetea unui limbaj serios de programare atunci cu siguranta ora viitoare nici nu va vrea sa mai auda de asa ceva. Si asta e doar inceputul .
  17. ^ 1gb de cod, 26MLinii ... sa inteleg ca varianta binara e in tera oO ?
  18. cmiN

    Captcha imun

    Eu am gasit o modalitate mai "out of the box" in timp ce uploadam o imagine pe tinypic. Se creeaza un dictionar cu imagini, icoane, clip-art, unde fiecarei poze ii apartine unul sau mai multe cuvinte cheie (server side), iar clientului ii este solicitat sa descrie prin niste cuvinte (maxim N) acea imagine cat mai exact si daca se sare de un anumit procentaj de acuratete atunci e valid . Deci daca pui o poza cu copaci sau icoana unei aplicatii arhicunoscute clar un OCR nu ar mai face fata, de fapt e in afara scopului. Ar mai ramane un atac bazat pe dictionare, dar aici se intra in alte discutii si daca serverul are destule imagini "complexe" atunci crapa si ideea de mai sus. Repet: Ideea nu este a mea, mi se cerea pe tinypic la un captcha sa descriu icoana lui Internet Explorer .
  19. Era si cazul ... chiar google spunea ca prefera Python in orice ca un plus, spune ceva despre utilizator/aplicatie.
  20. Updated! Am rezolvat toate bugurile, ceva modificari in interfata, versiuni portabile pentru windows (fara dependente) si acum afiseaza un mesaj dupa ce s-a executat cu succes comanda lui Start.
  21. 1) Nu pici bacul, iar la info iei o nota destul de marisoara (materie 10-11). 2) Bagi dosarul la Iasi, facultatea de hackeri. 3) Is mari sanse sa intri la buget (ultima medie 8.6). 4) Scapi total de matematica (singura facultate din tara cu profil unic de informatica) si programul e foarte aerisit, cateva ore practice la care te duci cu placere. 5) Cu atata timp liber si cu majoritatea lucrurilor invatate deja din liceu te apuci de freelancing, proiecte facute de la 0 chiar daca reinventezi roata (macar reinventeaz-o intr-un mod unic ), dar si proiecte lucrate plecand de la alte proiecte/surse. Nu uita de internshipuri. 6) Iti mai ramane timp si sa te distrezi cu asii sau sa adormi prin cublurile alea din copou. 7) Dupa 3-4 ani de viata strangi "experientele" alea mai importante, le pui in cv si in momentul ala vei sti unde sa aplici cvul si nici nu-ti vei da pumni in cap pentru timpul "pierdut". Reteta de mai sus e pura fictiune, nu pot spune ca am testat-o pe pielea mea (sunt inca a 12-a), dar o am ca tinta . P.S.: In timp ce studentul din Bucuresti vinde cartofi prajiti la mc tu vinzi la Amazon Romania, e pe langa Palatul Culturii, dai tu de el.
  22. Testat si pe slackware, doar am luat si instalat din tar.gz pycrypto, in rest am folosit py2.6 si PIL-ul standard si a mers si la conversie (cu alte extensii).
×
×
  • Create New...