Întrebări pe care ni le punem de mult

Pot să-mi conectez Androidul la rețeaua WiFi? Adică, în sensul de a putea trimite de pe el pe Desktop-ul de acasă și/sau invers fișiere, așa cum utilizam odinioară Bluetooth-ul. Citii eu câte unele pe net, dar văd că ar trebui ceva softuri în plus. Și nici nu-mi prea dau seama dacă e ceea ce vreau eu. Există disponibil în rețea și un router TL-WR1042ND.
 
Tu vrei peste Internet sau pur și simplu când ești acasă? Terminologia folosită nu se potrivește cu exemplele din link-uri.
 
Nu, doar acasă. Ca și cum ar mai fi un device conectat la rețeaua pe care o am acasă, formată din două desktop-uri, 1 laptop și 1 netbook. 1 desktop și laptopul au W 8.1, alt desktop și netbook-ul au XP și ar avea loc și telefonul Android, poate chiar încă două... dacă or vrea și fetele. Un folder shăruit, din care să-mi pot lua sau trimite din el fișiere.

Prin Internet e mai simplu. Dar mi-ai dat o idee. :biggrin:
 
Last edited:
Am doua intrebari inrudite care ma chinuie de vreo cateva luni.
1. Am dat in ultima vreme de aplicatii care mie mi se par facute de script kiddies cu generatoare de cod si wizards, ultimele doua complet independente (oameni care nu se cunosc intre ei) dar una in SharePoint + C# + nHibernate + MS SQL si una "Microsoft entity framework code first 6" direct in IIS + MS SQL. In toate cazurile accesul la baza de date e facut printr-un middleware care ori se ocupa complet (nHibernate), ori il obfuscheaza pana ies verze si crapa aplicatia la primul crawler (caz real) din cauza de nu-stiu-ce acces asyncron multithreaded concurent de care nu stiau ca exista. Intrebarea este: e un mod normal de a scrie cod sau sunt eu extrem de ghinionist si am dat de 2 exceptii la rand? Programatorii din zilele noastre daca stiu ceva C#, sa zicem, nu trebuie sa aibe habar deloc de baze de date? Nu de alta, dar in ambele cazuri bazele de date nu sunt normalizate si sunt facute cu ... wizard-ul vecinului.
2. Codul generat in paginile acestor ... balarii este extrem de incarcat si incurcat. Sunt niste pagini foarte simple ca structura si continut, probabil in HTML + CSS se pot face in ~ 3-5 kb bucata, dar aici au zeci de kb plini de apeluri catre zeci de scripturi in care inca nu m-am uitat sa vad ce fac, dar din punct de vedere al utilizatorului nu fac nimic pentru ca paginile sunt aproape toate statice. Intrebarea este: asa se scrie cod in zilele noastre sau asa e codul generat de mizerii gen "MS entity framework code first 6"?

Nu sunt Marius'9x sa vreau cod scris in assembler si in sub 100 de octeti, dar balariile astea mi se par complet exagerate si la una din ele performanta e groaznica, din punctul meu de vedere, intre 20 si 30 de secunde sa incarce cate o pagina, culmea e ca utilizatorii nu sunt incantati dar nici prea nemultumiti - ai zice ca nu au deschis pagina www.google.com vreodata sa stie cum e sa incarci o pagina in 1 secunda (da, mie mi se incarca mai lent :) ).
 
Vezi articolul despre SOAP postat de Marius '95 . „Your tools will create”, „your tools will generate”, etc. Cei care înțeleg legătura dintre codul programat și rezultatul generat sunt tot mai puțini, valul de „programatori” de-acum „scriu” programe clickăind în wizard-uri. Să trăiască industria software care a făcut „programarea” accesibilă, în loc să o lase pe mâna unor specialiști. Așteptăm ca și medicina să fie popularizată de nespecialiști prin bloguri și medicină „alternativă”. Oh wait, that already happened, let's up the ante - aștept cartea „chirurgie pentru to(n)ți”.

De câțiva ani nu am mai găsit developeri care să știe ceva despre baze de date, și invers. Iar dacă aveai doi oameni cu aceste două specializări și îi puneai la aceeași masă, parcă vorbeau limbi străine; nu se puteau înțelege nici măcar la standardizarea unor metode de acces și divizarea logicii între front-end/middleware/DB-back-end, darămite să înțeleagă nevoile celuilalt. Văd din ce în ce mai multe proiecte de-a dreptul monstruoase în care echipele sunt beefed up de „specialiști” dar interfețele între ele sunt extrem de subțirele (că se mai găsește vreun fraier binevoitor și care mai are experiență pe mai multe arii) sau inexistente, și problemele se pasează de la unii la alții cu lunile. Când iese proiectul la final și mai și merge, e de-a dreptul miracol.

Iar asta e pe-aici, pe la noi, unde avem totuși oameni IT cu simț de răspundere. Dar dacă mergi mai spre India, te iei cu mâinile de cap. Nu văd deloc bine această industrie, doar că încă nu și-a atins momentul de „oops”.
 
Last edited:
Unele limbaje de programare mi se par duse la extrem cu obiectele; mic exemplu in C#:

int x = 7;
string myText = x.ToString()

Adica si variabilele au metode. Intrebarile sunt:
- cat de ineficient este? Adica la initializarea fiecarei variabile in loc de 32 de biti (4 octeti) pentru tipul int mai are pe langa si o adunatura de metode sau asta nu consuma memorie suplimentara?
- ce alte limbaje uzuale mai fac asa ceva?
- cu ce e mai eficient la rulare (nu pentru "programator") fata de functii gen CAST/CONVERT?
 
TLDR: metodele sunt cod, nu ocupă memorie pe fiecare obiect.

În memorie, metodele sunt asociate unei clase, nu unui obiect. La instanțiere, obiectul în memorie conține doar membrii (variabile, de fapt pointeri către alte obiecte) + un pointer către clasă/tip (și clasa în sine are o reprezentare obiectuală, uzual una singură per runtime/classloader). Când apelezi o metodă pe un obiect, runtime-ul ia obiectul, verifică în clasa asociată că există metoda respectivă cu semnătura utilizată, și apelează acea metodă (pointer către bytecode + pointer către obiect + parametrii metodeir). De instanțierea obiectelor clasă se ocupă VM-ul (CLR, JVM, etc) și uzual doar când sunt folosite (ca să nu ocupe memorie degeaba).

Uzual se "trișează" pentru primitive. C# definește de fapt int ca System.Int32, care e o structură, și nu o clasă. De fapt int-ul tău va consuma tot 4 octeți, dar undeva trebuie să se menționeze că acolo e un int și că mai are niște metode - aici depinde de runtime și optimizările sale; probabil nu poți să ajungi chiar ca în C, unde ai o adresă de memorie și e problema ta cum o folosești (între timp s-au mai implementat idei de securitate și GC), dar trebuie să fie foarte aproape, pentru optimizarea resurselor.

Pentru o înțelegere mai bună vezi Reflection, care îți permite accesul la implementare în timpul rulării. Vezi și Duck typing și Strong/weak typing.
 
Last edited:
Pot să-mi conectez Androidul la rețeaua WiFi? Adică, în sensul de a putea trimite de pe el pe Desktop-ul de acasă și/sau invers fișiere, așa cum utilizam odinioară Bluetooth-ul. Citii eu câte unele pe net, dar văd că ar trebui ceva softuri în plus. Și nici nu-mi prea dau seama dacă e ceea ce vreau eu. Există disponibil în rețea și un router TL-WR1042ND.
Blackberry are ce vrei tu si se numeste BB Link. Valabil pe 10.3.1, pe Passport & Classic. Pe handroid, cred ca ai de cautat x aplicatii sa faca asta, daca o face vreuna.
 
Daca vreau sa pun un SSD pe un laptop mai vechi am neaparata nevoie de asa ceva ?

HP ul la care intentionez sa-i fac tratamentul are micro SATA si nici nu sunt prea sigur daca ar incapea un SSD in locul HDD ului. Deci alternativa ar fi sa pun SSD ul in locul unitatii optice, insa parca nu as da banii pe acel... soclu. Tin minte ca SSD ul pe care-l am acum in desktop (Intel 330) care a venit la pachet cu un adaptor, insa acum nu mai gasesc cutia si nu stiu daca merita efortul sa o caut.
 
Cel mai probabil Intel-ul a venit cu adaptor de la 2.5" la 3.5", pentru desktop. Daca vrei sa pui un SSD in locul OD, ai nevoie de un caddy ca in link-ul ala.
 
Bun asa, multumesc mult, m-am linistit, ma ajunge cam 400 de lei toata povestea si inca nu ma dau afara piticii din casa.
 
De obicei găsești așa ceva pe ebay sub $10 cu transport cu tot.

Legat de asta, am avut o experiență ciudată cu un adaptor hdd->OD în Lenovo T530. Pusesem un SSD în locul HDD-ului original, iar HDD-ul original în caddy (pentru hot swap mai ușor, OS-ul și chestiile importante fiind pe SSD). A mers așa o perioadă destul de lungă. După care am mai luat un SSD mSATA, pe care am mutat OS-ul, celelalte rămânând la fel. Atunci au apărut ciudățeniile: din când în când freeze-uri de 1-2 secunde în timpul scrierilor mai lungi (gen suspend la o mașină virtuală) pe HDD-ul din caddy sau SSD-ul SATA. Freeze-urile au dispărut atunci când am schimbat între ele SSD-ul și HDD-ul (adică HDD-ul original în locul "original" iar SSD-ul non-boot în caddy).

Am impresia că e legată cumva de alimentare sau power management - HDD-ul consumă ceva mai mult decât SSD-ul, posibil ca toate trei device-urile adunate să ajungă cumva aproape de limita de curent a unei surse.
 
Legat de asta, am avut o experiență ciudată cu un [edited] hdd[edited] au apărut ciudățeniile: din când în când freeze-uri de 1-2 secunde în timpul scrierilor mai lungi (gen suspend la o mașină virtuală)

Eu patesc asta aproape de fiecare data cand pornesc o masina virtuala de pe HDD hibrid (cu SSD de 8 sau 16 GB in el, nu mai stiu dimensiunea exacta) si nu e de la curent, ca imi tine sursa o placa video mare consumatoare iar cand pornesc VM-uri nu joc nimic, nu poate sa consume nici un HDD vreodata cat o placa video gen nVidia 760 (poate doar hardul ala de 1 MB din anii '50 de era mai mare decat un frigider). Doar ca freeze nu e de 1-2 secunde, e de 1-2 secunde pe tot sistemul si de pana la 10 secunde pe acel VM.
 
Mda, partea faină cu freeze-urile e că nici un tool de monitorizare nu funcționează în perioada aia, să-ți spună ce face de fapt. La chestia cu VM-urile mai bănuiesc și caching-ul Windows, care pare tunat pentru HDD-uri și se emoționează când primește un burst foarte mare de date. La copierea de fișiere de pe un SSD pe altul se vede asta - Win încearcă să facă caching dar cumva nu-i iese prea bine, și mai capeti freeze-uri și acolo (naiba știe, poate are vreun lock pe cache care se duce naibii la IOPS extrem de mari). Din păcate nu e prea bine documentată partea de caching a Windows, și nu prea are tool-uri de tweaking, doar câteva versiuni au căpătat așa ceva și nu zice nicăieri exact pe ce versiuni funcționează.
 
Back
Top