Napravljene poruke na forumu
-
AutorČlanci
-
civan
UčesnikMeni je QT izbor (bez obzira na licencu) jer ima sve – od GUI-ja, do XML parsera i string klasa sa unicode podrskom. Cak donosi neka unapredjenja samom C++-u preko makroa (foreach, slotovi…).
Bolje je koncipiran (rekao bih dizajniran, ali izbegavam da neko ne pomisli na izgled) – zahvaljujuci cinjenici da je cist OO dizajn.
civan
Učesnik“Ubi” – nadimak za ubuntu 🙂 a ono je u padezu 🙂
civan
UčesnikJa imam i reiser i ext3 particije na kompu. Doduse, vec su bile tu pre instalacije nove verzije “Ubija”…
civan
UčesnikOdgovor na prve dve stvari. Ponekad nije zahtev “bilo bi lepo da se to brze izvrsava” ili “bilo bi lepo da je program mali”, ponekad su zahtevi “Program mora brze da se izvrsava” i “Program mora da bude manji od n kb” jer, na primer, mora da obradjuje signale koji mu stizu u onom navedenom formatu u realnom vremenu. Ako je XML parser 10 puta sporiji i 50 puta duzi od onoga sta nam je potrebno, onda ga ne mozemo koristiti. Ne kazem da se ovo cesto desava, ali programer mora da bude spreman da mu se nesto tako desi.
Isto je i za vreme potrebno za kompajliranje – ako je nesto kriticno (na primer racunanje FFT-a pri obradi signala koji smo ucitali iz onog gore XML fajla) i mora da se radi savrseno brzo, programerovo vreme ce biti zrtvovano da bi napisao optimalan asemblerski kod.
“Napiši isti za slučaj da su brojevi u formatu pokretnog zareza, što je generalizovan slučaj navedenog. C kod ne moraš. Isti je.”
Ne moras da mi objasnjavas prednosti viseg programskog jezika, ali nekad ih ne smes koristiti. Postoje slucajevi kada generalizovanost nije prioritet. Sto se tice onog koda samo sa pokretnim zarezom, znao bih kako da optimizujem koristeci SSE instrukcije, sto kompajler, opet, ne bi uradio.“Pitanje je granice i dozvoljenih sredstava. Na sličan način ne bih ni C programera koji napiše
printf(“Hello, world!”);
nazvao tako dok mi to ne izvede sa prekidačima u binarnoj logici 0 i 5V.”
Ovde se slazemo, samo je pitanje gde postaviti granicu. Da li nekog ko ume da koristi samo Access (paralela script-kiddie) nazvati programerom (paralela zli haker/kreker)? Moj odgovor je “ne”.civan
UčesnikXML je uvek XML sa i bez korišćenja naprednih tehnika i pomenutih tag-ova. Razumem da nekad treba nešto i “ručno” parsovati i za tako nešto treba to i znati uraditi.
Emo malo konkretniji primer – zamislimo da DTD za odredjen tip XML fajla propisuje da ni jedan tag nema atribute i da postoji samo jedan jedini tag koji se zove “cvor” – pamtimo na primer drvo celih brojeva u tom fajlu. Parser za taj tip XML fajla bi bio izuzetno kratak i efikasan. Koristiti biblioteku bi u tom slucaju bilo bacanje i vremenskih i memorijskih resursa. (ovakvi slucajeni uopste nisu retki)
Kad pišeš naučni rad, na kraju pišeš reference, tj. literaturu koju si koristio. Smatraće te neozbiljnim ako nisi koristio do tad pronadjene metode, već ih otkrivao od nule. Dokle bismo stigli kad bi svi u svakom poslu kretali od nule? Code reusability je bitan element savremenog
Opet izvrces moje reci. Ni u jednom trenutku nisam rekao “u svakom poslu”, ali dobar programer mora da bude u stanju da u poslu u kome mora da napise nesto od nule, da to uradi. Inace se ne moze nazvati dobrim programerom.
Ja ne mislim tako. Da li pisci programa za šah igraju bolje od svojih programa? ::) Ne treba
Razmisli malo. Ako programer doticnog programa moze da predstavi racunaru uputstvo kako da uradi nesto, mocice i sam da sledi to uputstvo. Jedina razlika je u vremenu potrebnom da se odigra jedan potez kod racunara i kod coveka. Ta stvar je i kod kompajlera – mnogo ce brze kompajler napraviti asemblerski (ili masinski) kod, ali ce i programer koji ga je napravio biti u stanju da napravi ne gori kod od toga.
Primer (malo vestacki, ali opet ima smisla):
Funkcija dobija 2 broja od 0-10. Zadatak je oba pomnoziti sa dva, inkrementirati i opet pomnoziti sa dva. C kod je
a *= 2; b *= 2; a++; b++; a *= 2; b*=2;
Kompajler ce ukapirati da mnozenje moze da uradi sa shlift left, ali posto ne zna da ce brojevi biti od 1-10 nece moci da koristi primitivnu obradu pakovanih podataka i da smisli da ‘a’ moze da smesti u al, a ‘b’ u ah i da uradi
shl ax, 2
inc al
inc ah
shl ax, 2Da, ja živim i radim “kod nas”, većina članova ove liste živi i radi “kod nas”, dok će svaki
Tema rasprave nije bila “da li bez obrazovanja covek moze kod nas da bude programer”. Ako se kod nas grade samo jednospratne kuce od blata, da li bi nazvao nekog ko ume da napravi takvu kucu dobrim gradjevincem!?
A sto se tice MS Access-a, da li bi nekog ko stavlja javor i ruzino drvo u masinu za pravljenje gitara i pritiska dugme “napravi”, nazvao graditeljem gitara? (ipak on zna gde tacno i kako da stavi sirovine…)
Ipak mislim da Microsoft u ovom primeru nije dao sve od sebe. Ovo je ipak samo primer koji objašnjava korišćenje API funkcija FindFirstFile, FindNextFile i FindClose, a nikako ne nešto što kao celinu treba koristiti. Iako sam protiv njih, odlično znam da oni mogu i bolje… O0
Nije mi cilj bio (bar ne mnogo 🙂 ) pljuvanje po M$-u, cilj je bio to da je takav kod sad ugradjen u mnogo programa zahvaljujuci “programerima”.
civan
UčesnikNisam probao. XML parsovanje često i intenzivno koristim, a sa SAX (event handled) prešao sam na DOM (objektni) model i biblioteku XERCES.
Sta ako nam je potreban samo neki sitni podskup XML standarda – da nam je samo XML organizacija fajla vazna, da nam nije bitno da li podrzava, na primer, cdata blokove ili nesto slicno. Vuci ceo XERCES ili QtXml je u tom slucaju iluzorno.
Nisam protiv teorije i poznavanja principa onoga što koristiš, ali je praktično moguće koristiti biblioteku za parsovanje XML ili bilo kojeg drugog formata, a da ne znaš ni šta je token.
E, to je ono gde smatram da prestaje programer i pocinje “programer”. Malo veca apstrakcija bi bila da neko ko zna da radi u Access-slicnim programima, da tvrdi da je programer.
današnje vreme radi tolike da je kod optimalniji od pisanog u asembleru. On globalno posmatra
Vecinom se slazem. Ali se ne sme zaboraviti da ljudi koji rade kompajlere znaju savrseno sve osobine preocesora za koji rade. Kad bi oni uzeli da pisu taj asemblerski kod, mislim da bi bio efikasniji.
Ne bih se složio. Sigurno 90% programera kod nas i programa koji se pišu kod nas su knjigovodstveni programi. Ja sam nekoliko godina radio CAD specific programe za velike svetske
Kljucna rec (dve reci) je “kod nas”.
Navedeno je kao primer, ali i dalje mislim da je programiranje pretrage na najnižem nivou iluzorno kod postojećih baza podataka, biblioteka za B stabla, pomenuto XML parsovanje i sl. Ne treba uvek iznova izmišljati toplu vodu. Treba je koristiti.
Da je iluzorno, to ne bi (u raznim vidovima) bilo jedna od najaktivnije razvijanih grana racunarstva danasnjice. Naravno, kad je moguce koristiti efikasno neku biblioteku, najbolje resenje je koristiti je (ako biblioteka valja).
Sto se tice preteranog koriscenja tudjeg koda, sta mislite koliko je ljudi iskoristilo
http://windowssdk.msdn.microsoft.com/en-us/library/ms686866.aspx
u svom programu? Ako je neko pravi programer, ovakvo nesto u zivotu ne bi napisao – obratiti paznju na poziv strncpy funkcije.civan
UčesnikRadio isto i gotovo nikad primenio. Ja, pošto sam u ovome još od AT286-12 (ovo 12 je megaherca) računara, i jesam malo radio asembler, mnogo C i učio asistenta istom, ali *NIX sistemsko programiranje nikad, Javu malo, a Prolog, Lisp, Lex i Yacc samo na papiru, za ispit.
I ja sam od tada u ovim vodama… cak i malo ranije (Commodore). Prolog ne ocekujem da ce mi ikada zatrebati tako da o njemu necu ni govoriti. Lisp mozda – koristi se u razvoju mnogih programa danasnjice.
Lex i Yacc su jedne od najkorisnijih stvari koje sam do sada dotakao – uzmi da napises XML parser bez njih i sa njima pa ces videti na sta mislim. (radio sam i jedno i drugo jer mi je bilo potrebno da imam lightweight parser u nekim slucajevima)
Samo da napomenem i to da sam kad sam radio parser bez Lex-a i Yacc-a, znao dosta teorije/principa parsiranja. Kako bi to izgledalo nekome ko je naucio da programira zanatski?Asemblerova poenta i nije da u njemu znas da ispises svoje ime (mada nije problem uraditi), poenta je u optimizaciji nekih izracunavanja i slicnog – verovatno nikad neces ceo program raditi u asembleru.
Od ostalih stvari, mislim da nema potrebe objasnjavati svrhu C-a, C++-a, Jave i sistemskog i mreznog programiranja.
Apsolutno [b]netačno[/b]! Iz obe pomenute oblasti imam konkretne programske probleme i ako ima zainteresovanih, “fakultetskih” programera (ne “zanatlija”), neka se jave. Ja, kao manje-više “zanatlija” se prilično teško, ali dosta dobro nosim sa pomenutim problemima.
Nije mi bila poenta da kazem da se tu moze biti “zanatlija”, nego da ako igde moze, da moze jedino u takvim stvarima.
Upravo ovo je suština [b]neuspeha domaćih fakulteta[/b]! Svi su orjentisani pravljenju svemirskih brodova, a ne stvari iz okruženja! “search engines”? Da li će to neki naš “fakultetski” programer da napravi novi i bolji Google?
Stvari iz okruzenja!? Razmili koliki deo svetskog programiranja i vremena/para ode na “stvari iz okruzenja” koje ti spominjes. Prakticno nista.
Masine za pretrazivanje nisu samo internet pretrage i slicno. Za razne tipove i organizacije podataka su potrebna razlicita resenja sto se nacina pretrage tice. I tek da ti dam mali kontraprimer, kolega sa faksa (ista generacija kao ja – postaje apsolvent) je radio za stranu firmu na sistemu za pretragu.
Sto se tice ETF-a i slicnih fakulteta, oni su uvek i bili vise okrenuti hardveru nego pravom programiranju. To bi bilo kao da se neko buni sto na psihologiji nije ucio vise o tome kako se operise srce. (preterujem, ali mislim da je poenta jasna)
civan
UčesnikA da li bi se ljudi koji spominju “upisao sam to i to” odvazili da spomenu fakultet na kome su?
Ja sam (to jest postacu za koji dan) apsolvent na MatF-u u Beogradu.
Radili smo od asemblera, preko C-a i *NIX sistemskog programiranja, Jave do Prologa, Lispa, Lex-a, Yacc-a…
Tacno je da programiranje ne moze da se nauci ako se uci samo na fakultetu, ali ni nista drugo ne moze tako da se nauci.
“Programiranje” jeste zanat, ali programiranje nije.
Ako zelite da pisete “obicne” programe – knjigovodstvo, kladionice i slicno, mozete kako god hocete i sa kakvim god znanjem hocete. Za ozbiljnije stvari (search engines…) je potrebno ozbiljnije znanje. Ne kazem da fakultet pruza to znanje, (ni da je do njega nemoguce doci bez fakulteta) ali posle fakulteta je takvo znanje mnogo savladivije.
civan
UčesnikMeni je stiglo juce 10 komada – bez ikakvog placanja. mada sam ocekivao carinu. Izgleda da je to kako im “dune” 🙁
Sto se tice ShipIT-a, Edgy nece biti dostupan da se besplatno narucuje osim LoCo timovima. Dapper, kao LTS izdanje, ce biti i dalje isporucivan besplatno.
I na kraju, ako vam se ne svidja novi artwork, pogledajte sta su uradili sa Kubuntu-om – sve vuce na ljubicasto!
civan
Učesnikstvarno radi 🙂 a zasto backslash neznam…
Da shell ne bi zamenio zvezdu sa spiskom fajlova u trenutnom direktorijumu…
Probaj echo * i echo * -
AutorČlanci