Valet ne TeraHertz

Dime se te gjitha valet e qe njohim deri me sot zoterojne nje frekuence te caktuar e cila varion nga disa hertz deri ne disa Ghz ato te stimuluara nga vete njeriu. Tani eshte zbuluar nje frekuence ne Thz(1 Terahz=1000Gigahz) e cila ndodhet midis spektrit te shikueshem dhe te drites infra te kuqe. Keto kane aftesi dhe karaketeristika te ndryshojne levizjen rrotulluese te elektroneve duke me fuqi te vogel te njejte me ate qe zoteron vete elektroni. Pra nje fuqi e vogel e vene ne nje shpejtesi te njejte me ate te levizjes se nje elektroni te caktuar do te sillte nje marrje imazhi shum te sakte me depertim me te larte se rrezet x dhe pa pasoje negative per njeriun pasi fuqia e ketyre valeve eshte e njejte me ate te vet materies. Kjo metodike e re mund te praktikohet ne mjeksi ne diagnotizimin e semundjeve kanceroze, deri te tumoret me te vogla, mund te perdoret ne sistemet e sigurise per te kontrolle te imtesishme, mund te instalohen kamera sigurie qe mund te shohin se cfar ka nje person me vete … etj . Me kete menyre mund te kapen shperndaresit e droges apo te dikush qe mban nje pistolet me vete pa leje. Mos flasim per privacy pastaj se me daljen e ketyre paisjeve me cmime komerciale mendoni vete se sa e lehte do te jete me u kontrolluar ne cdo cep qe te jesh..

Per me shume te dhena shihni kete blog:

http://www.thznetwork.org

Te gabosh qellimisht eshte nje metodik programimi?

INTRO

Te gjith programatoret jane koshient se gabimet jane njerezore dhe jane normale edhe ne programim..
Dhe normalisht qe nuk besoj se ka programator qe nuk ka gabuar asnjehere, (perveç atyre qe thone jam programator dhe ne realitet nuk kane programuar ndonjehere) keshtu qe gabimet jane ato qe nganjehere na gjejn te papergatitur dhe nuk na lejojn “qe te ngrejme koken” ne disa raste.

Duke u afruar me problemin..

Me ato qe lexuam me siper arrisim ne perfundimin qe te gabosh eshte diçka e pashmangshme, sidomos ne programim..
Por ne fund te fundit a na e pranon njeri nje program qe nuk punon?
Kurrsesi jo, gjithsecili paguan vetem per programe te cilat perveç se jane funksionale jane edhe te testuara ne kushte stresuese, kane pasur nje projekt te sukseshem dhe nje faktor tjeter i rendesishem eshte edhe siguria e nje programi, gjithsesi mos te largohemi shume nga tema.
Pra kemi 2 gjera te thjeshta:
a) Na duhet nje program i mire , i leht dhe funksional
b) Ne nuk mund te programojm pa bere gabime (eshte diçka normale)
Atehere, si i behet tha?

Zgjidhja

Kur shohim nje gabim ai ndodh gjate proçesit te kompilimit (nese nuk perdorim eclipse dhe e shohim pa e kompiluar)
Dhe kemi 2 raste.
Ne rastin e pare kemi nje programator qe shikon nje gabim per here te pare ne jeten e vet dhe nuk e ka idene se ku mund te jete ne gjith ate kod qe ka shkruajtur, dhe se ç’fare mund te kete harruar?
Ne rastin e dyte kemi nje programator i cili e njeh gabimin , pra eshte familjarizuar me te pasi e ka hasur dhe here te tjera keshtu qe e gjen dhe e rregullon shpejt pjesen e kodit “te semure”.
Nje metod shume e mire per te perfeksionuar tekniken tone te programimit eshte te gabojm qellimisht gjate programimit per tu familjarziuar me gabimet qe mund te ndodhin gjate ketij proçesi.
Tani po vazhdojm me disa gabime tipike :)

Syntax error, insert ";" to complete BlockStatements

Ky eshte rasti tipik ku ne kemi harruar “;” pra gjate shkrimit te kodit psh:
System.out.printf(“%s\n”,” ça paskam harru”)
Kemi harruar te mbyllim
System.out.printf(“%s\n”,” ça paskam harru”);
Shohim nje gabim tjeter te zakonshem..

Syntax error on token ")", { expected after this token

Ky eshte rasti tipik kur kemi harruar { } Pra te hapim apo te mbyllim klasen dhe po te shohim vet kompilatori na sugjeron gabimin.
Ose kemi ngaterruar klasen me egzekutimin e programit,
Pra ne fjale te tjera ka shume lloje gabimesh qe mund te behen gjate programimit e nje programi por nese ne i bejm disa ne fillim me qellim dhe e dime vet se ç’fare ndryshuam ne nje te ardhme kur te shohim mesazhin e kompilatorit do e kuptojm menjehere se ku kemi gabuar dhe do te shkojm te ndyrshojm kodin tone apo edhe algoritmat.

Windows Vista Security!

!!!Kujdes!!!
Materiali i meposhtem eshte vetem per qellime informative dhe une nuk mbaj asnjelloj pergjegjesie per ato qe mund te behen me informacionet e meposhtme. Gjithsecili qe i lexon duhet te pranoj kushtin qe nuk do ti perdor ato per qellime keqdashese apo ne kompiutera qe nuk jan nen pronesine tuaj. Ne te kundert ju nuk jeni te autorizuar qe te lexoni materialin e meposhtem!
Nuk lejohet leximi i materialit per personat qe jane nen 18 vjeç dhe personat shume emocional qe nuk kontrollojn vetveten dhe ato qe bejn.

Ose ne shqip, siguria e windows vista.

Pa e prishur shijen e temes po them se developersat e microsoft, si dhe deklaratat per shtyp te Steve Ballmer (nuk u keshilloj te shikoni videot e tij euforike ne youtube) na siguronin me kete sistem operativ nje revolucion te vertet, na garantonin nje papreshkmeri te privacy dhe te personalitetit te klientit dhe na garantonin sistemin operativ me te sigurt te ndertuar ndonjeher.
Nuk po egzagjeroj aspak me theniet .
Atehere si shpjegohet qe kan kaluar pak vite dhe po punojn per sistemin tjeter nderkohe qe eshte shume shpejt per te? (dhe behet fjale per 2 versione vianna dhe windows 7, sepse e pane qe me vista su doli gje keshtu qe njeri eshte testing dhe do te shitet dhe te behet nje eksperienc per tjeterin)
Ne realitet (realitet i hidhur ky) te gjitha keto deklarata nuk jane te verteta, dhe faktet e tregojn kete.

Penetrim (fizik) ne windows brenda 90 sekondave

Me posht do te paraqis nje menyre shume funksionale se si te penetrojm ne nje sistem windows vista, dhe te krijojm nje akont si administrator ne te me te drejta te plota nga nje sistem linux me suport ntfs-3g.
Po zgjedh nje distribucion Debian, po marrim Knoppix 5.5.3
Ç’lidhje ka ntfs-3g?
Nese jeni perdorues i linux , e dini shume mire se ne dual – boot ose me live cd\dvd ne kemi leje te hyjm tek particionet e windows te shohim dhe te kopjojm prej tyre, por jo te shkruajm\levizim file\eliminojm prej tyre (provojeni nese nuk u ka rene rasti) keshtu qe ky nuk eshte asgje tjeter perveç se nje driver i cili na jep ne mundesi per te pasur keto privilegje ne windows..
Dhe ntfs-3g eshte i instaluar by default ne Knoppix versionet 5.5.x
Mund ta instalojm edhe ne ç’faredo sistemi linux dhe ta perdorim.
Ne rregull klikojm tani qe kemi ber boot mbi particionin sda1 apo sda2 (kontrolloni se ku eshte windows/system32)
me te djathten dhe i japim Change Read write permissions dhe do te vihet ne pune draiveri ntfs-3g i cili do te na japi lejet per te modifikuar ne windows.
Shkojm tek Windows\System32 me terminal
Tani qe jemi aty japim

mv Utilman.exe Utilman.lol
cp cmd.exe  Utilman.exe

Ç’fare beme(perveç nje levizjeje te thjesht failesh)?
Kur sistemi windows ben boot dhe na del faqa e bukur e login qe kerkon password ne mund te perdorim butonin e windows dhe klikojm u per te pasur nje dritare prompt qe na ndihmon per loginin keshtu ne fjale te tjere kur sistemi te shkoj te therras Utilman.exe (qe ne realitet eshte cmd.exe pra prompti) nuk do te dali me dritarja e ndihmes por do te dali prompti dhe ne do te jemi system.
Bukur bejm boot dhe shohim faqen e login te windows vista, klikojm tek tasti me shenjen e windows dhe klikojm u dhe do te na dali prompti.
Mbas kesaj shtojm nje user me prompt me komanden

net user /add useriri passwordi

I japim ketij useri privilegje administratori

net usergroup administrators /add useriri

Per te rikthyer ashtu siç ishin ato qe bem , hym perseri me knoppix live dvd dhe japim perseri me te djathten mbi particion change read\write permissions dhe hapim terminalin shkojm tek Windows\System32 dhe japim keto komanda:

rm Utilman.exe
mv Utilman.lol Utilman.exe

Dhe ja ku penetruam ne sistemin “me te sigurt te krijuar ndonjehere” 😛 (dhe i kthyem gjerat ne “normalitet”)

(lol vertet me vjen per te qeshur kur e them )

Rikompilimi i Kernelit

Nese jeni duke “eksploruar” linux kjo eshte gjeja e fundit qe keshilloj te beni.
E para, eshte proçes shume delikat dhe i rrezikshem, kerkon njohje te mira persa i perket sistemit operativ ne te cilin ndodheni dhe kerkon njohje te detajuara te hardware te kompiuterit, pra komponenteve tuaj hardware dhe sherbimeve.
ç’fare dhe pse.
Rikompilimi i kernelit ?
Kerneli eshte zemra e sistemit, dhe eshte pergjegjes per operacionet midis programeve dhe hardware-it te kompiuterit tone.
Rikompilimi?
Normalisht nje kernel eshte i kompiluar sepse ne fund te fundit eshte nje program por ne brendine e tij vjen me nje mori modulesh dhe suport per hardware dhe sherbime qe ne nuk i kemi ne kompiuter dhe as qe na duhen.
Keshtu qe ne shkarkojm kodin e burimit te ketij kerneli, zgjedhim ato qe duam qe ai te permbaj dhe e personalizojm ne maksimum per kompiuterin tone. Mbasi kemi bere te gjith keto ne kompilojm kernelin e ri dhe e perdorim ne kompiuterin tone.
Pse ta bejm diçka te tille?
1.Linux njihet per performancat e tij ekstreme , pra per konsumim minimal proçesesh dhe resursesh, ja pra qe nje rikompilim i kernelit ( i bere ne menyren e duhur dhe ne varesi te hardware qe kemi ) do i kthente keto performanca ne mostruoze dhe nuk po egzagjeroj.
2.Stabilitet akoma me te madh te sistemit, pasi sistemi menaxhon vetem ato qe perdor kompiuteri dhe jo module te tjera qe nuk duhen , keshtu qe sjell nje sistem me stabel, me te leht , dhe me te sigurt.
3.Per ti treguar sistemit tuaj operativ 😛 qe jeni nje perdorues linux i vertet :)
————————————————————-
PS, fedora qe po perdor tani nuk eshte nje sistem qe ta lejon diçka te tille
per shkak te patcheve te shumta :(
E njejta gje nuk ndodh ne slackware, debian, gentoo, openSuse si dhe distro te tjera qe jane bazuar tek keto.
Ne shume distribucione mund te gjeni edhe software te gatshem qe e bejn kete rikompilim per ju.
Keshillohet te shkarkoni versionet 2.6\2.4\2.2 nese nuk jeni developers, sepse versionet 2.3\2.5 jane per developers dhe nuk jane stabel.
Bukur shkarkoj kernelin tone tek:
http://www.kernel.org/pub/linux/kernel/v2.6/
Mbasi e shkarkojm e spostojm dhe e ekstraktojm tek /usr/src/ dhe duhet te krijohet nje direktori linux
I japim nje lexim dokumentacionit perkates.
Prit njehere ç’fare po them shkoni dhe eksploroni pak qe te jeni familjar me kernelin, shikojeni ç’fare eshte dhe si eshte ndertuar
e gjeni tek lib/modules/2.6….. versioni i tij
Beini nje rename direktoris ne .old apo ne menyre qe mos te kete probleme gjate rikompilimit sepse pikerisht aty do te instalohet kerneli i ri.
Normalisht nen usr/src nuk duhet te gjeni direktori linux, nese eshte beni mire ta eliminoni

Shkarkoni kernelin dhe beini extrakt tek usr/src me

tar zxvf kerneli.....tar.gz

Shkojm tek usr/src/linux dhe japim keto komanda

make xconfig (ose make menuconfig)

dhe do te na dali komplet menuja me sherbimet dhe modulet e kernelit qe ne zgjedhim ti perdorim apo jo.
Ketu jeni ju ata qe duhet tja dilni pasi une nuk di se pari hardwarin e kompiuterit tuaj si dhe distribucionin keshtu qe zgjidhni vetem sherbimet qe doni te aktivizoni apo jo.

japim

#make config

dhe lexojm me kudjes pyetjet duke ju pergjigjur

tani u kursejm pak kohe dhe japim:

# make clean dep bzImage modules modules_install

Bukur tani gjetem 2 kartelat vmlinux dhe System.map te cilat do ti kopjojm tek /boot duke i riemeruar te vjeterit me .old
Editojm Boot loaderin Grub ose lilo per te perfshire kernelin e ri ne boot dhe failet e konfigurimit i gjejm tek /etc/lilo.conf ose grub.conf
Dhe duhet te shtojm kernelin e ri ne boot, duke mos harruar qe path te jete i sakt dhe duke e kontrolluar
psh

image = /vmlinuz (duhet kontrolluar qe vmlinuz eshte vertet aty dhe jo tek /boot/vmlinuz
root = /dev/hda (duhet pare nese eshte vertet ky particioni ku ndodhet kerneli i ri)
label = kernelipersonalizuar

———————————————-
Ketu thjesht duhet te shtojm kernelin e ri nuk kemi pse te fshijm te vjetrin dhe ne boot duhet te dali opcioni se me ke kernel deshirojm te karikojm sistemin.
Ps, kjo ishte vetem nje menyre, secili mund te kete metoden e tij per te rikompiluar kernelin.

Lind projekti Java Shqip

Lajmerohen te gjith programatoret per lindjen e ketij projekti te ri.
Behet fjale per source kod te ushtrimeve te ndryshme dhe programeve ne java ne sherbim te te gjith shqiptareve.
Ky kod do te jete free dhe i lire per tu modifkuar nga te gjithe, mund ta shkarkoni dhe ta modifikoni me kusht qe edhe atij qe po ja jepni te modifikuar ta marri me te njejtat te drejta (ne fjale te tjera liçence GPL)
Per te gjith te interesuarit ne kete projekt te cilet duan te kontribuojn dhe ta bejn kodin e tyre java publik per te gjithe, te me kontaktojn ne adresen e-mail qe gjendet tek faqa “RRETH NESH”.
Ju lutem qe kodi te komentohet mire ne menyre qe te jete i kuptueshem edhe per ata qe nuk kane eksperienc ne programim :)
Projekti nis sot dhe nese ç’do gje shkon ne rregull pritet te perfundoj mbas 2 muajve.
Shpresoj ne nje kontribut sa me te gjere qe do te sjelli nje shkembim njohurish dhe nga ana tjeter shpresohet ne nje rritje te ketyre njohurive tek secili prej nesh :)

Binary | BIT | (te verteta dhe sekrete)

Paranteze.
Kjo teme ka lidhje me pyetjen e bere nga drit_oni tek tema e meparshme
http://albanianwizard.org/java-1/
Keshtu qe u keshilloj ta lexoni nese doni te kuptoni me mire se per ç’fare flitet.

E degjojm shpesh ne informatik kete “binar” dhe shpeshhere profesoret mjaftohen me pedantizmin e programit pedagogjik dhe shume gjera ne koken tone mbeten si dogma dhe enigma te pasqaruara..
Psh, drit_oni beri nje pyetje shume interesante, dhe tha, bit-et a kane vlere dhe ç’fare vlere kane?
Binary nuk eshte gje tjeter vetem se nje sistem numerik ose ai i quajtur sistemi binar qe njeh vetem 2 vlera [on] dhe [off] ose 1 dhe 0 ose kalon rrym, dhe skalon rryme.
Me lejoni te hedhim nje veshtrim te shkurter historik persa i perket lindjes se sistemeve binare dhe a kane qene binare sistemet e llogaritjes ne fillimet e informatikes?
Jo :)
Kalkolatoret e pare kane qene MARK dhe ENIAC dhe (1944-1946) dhe per te bere llogaritje perdornin sistemin decimal.
E çuditshme apo jo, me vone  Johann von Neumann sugjeroi perdorimin e sistemit binar, dhe motivi kryesor ishte:
Lehtesi per hardware.
Per te gjithe ata qe mendojn se hardware nuk eshte ne gjendje te bej llogaritje, le ti hedhin nje sy CPU-s dhe akoma me ne brendesi te tij ALU-s dhe normalisht do ndryshojn mendim.
Kjo nuk do te thote se eshte e arsyeshme qe me te te bejm llogaritje shume te veshtira sepse ai suporton vetem llogaritje te thjeshta si ato te + – \ *
Dhe kjo eshte arsyeja se pse u zgjodh pikerisht sistemi binar per llogaritje, sepse eshte shume me e thjesht te paraqitesh nje numer me sekuenca 0110010 se sa me shifrat e sistemit decimal (mos te flasim per shkronjat dhe simbolet :) )
Siç e tham tek introduksion ne java, ne realitet nuk jane numra per kompiutrin por impulse elektrike qe maten ne volt dhe kane mase (do ta shohim me posht) dhe si ç’do impuls ka kohen e vet te egzekutimit dhe amplituden e tij
Ja nje figure per ta pasur me te qart

Dhe per nje pamje me reale se ky mund te perdorim nje O-scope

Akoma me reale?
Ne nje sistem koordinativ me bosht X dhe Y ku tek X realisht eshte koha CLOCK e proçesorit dhe Y eshte madhesia apo vlera e impulsit.
Tani beni nje zhgarravin duke imituar pak figuren me siper por shume me te çrregullt.
Bukur ajo qe shihni eshte ne realitet impulsi bit qe po kalon neper cirkuitet e kompiuterit tuaj 😉
Lind pyetja, po si pra a nuk thame qe kishte nje vlere te caktuar ON dhe OFF, ose 1 dhe 0 ?
Po e thame dhe ja ku po bejm nje shembull :)
Beni nje bosht te ri, dhe tek X-et shkruani 1T ,2T, 3T, etj
Tek Ypsiloni do te shkruani vlerat nga 0 deri ne 3 v dhe nga 3 deri ne 5 v
Besoj se e kuptuat, amplituda qe qendron siper 3v do te thote ON ose 1 ose kalon rryme kurse amplituda e impulsit qe eshte posht 3shit do te thote 0, OFF, skalon rryme.
Ja nje figure per ta pasur te qarte.

Keshtu qe erdhi epoka e binarizimit.
E njejta dukuri ndodhi edhe me kodin mors, pra ne fillim nuk ishte pik viz pik viz, por u zgjodh me vone.
Si ta mendojm nje bit?
Nje bit mund ta mendojm si nje atom, pra eshte njesia me e vogel elektronike, mund ta mendojm si nje pixel :)
Keshtu qe ne baze te shpjegimit me siper ne realitet eshte nje impuls qe eshte ose me vlere nga 0 – 3 v dhe ne kete rast perkufizohet sikur segziston apo skalon rryma apo 0 siç jemi mesuar ta quajm ose mund te jete nje impuls nga 3-5 v qe do te thote se kalon impuls, do te thote 1 , do te thote ON.
———————————
Tani besoj se e kuptoni pse nuk perdoret nje sistem tjeter per llogaritjet hardware por perdoret pikerisht kodi binar.
Psh, per te paraqitur fjalen “shqipe” ne binary do te ishte

011100110110100001110001011010010111000001100101

Ne decimal fjala “shqipe” do te ishte

115 104 113 105 112 101

Dhe ne nje standart tjeter do te ishte diçka tjeter akoma me e komplikuar, (kjo eshte edhe puna e sekreteve tek titulli i temes) a mendoni se do te jete e thjesht per nje llogarites te kuptoj nje kompleksitet aq te madh frekuencash saç mund te krijoj drejtpersedrejti nje hexadecimal apo decimal apo base64 etj?
Pra imagjinoni nje bosht gjigant ku secili simbol te kishte vendin e vet dhe normalisht edhe impulsi duhet te ndryshonte, sepse kompiuteri siç e thame nga 3-5 v njeh qe kalon rrym dhe mbas kombinimit te 01000001 ketij kodi dhe njesise ALU dhe nje sere porçesesh qe do i trajtojm here tjeter nxjerr nje output te deshiruar pra shkronjen A, sa duhet te luhatej amplituda e nje impulsi ne hexadecimal per tu “kutpuar” nga CPU dhe per te nxjerr nje output te deshiurar.
1.Duhet te luhatej shume (dhe ketu kalojm tek tensione jo te perballueshme nga njesia e kontrollit
2.Do te ishte shume e komplikuar (me mire e pamundur dhe e kote) per nje CPU te bente llogaritje te nje niveli  ku mund ti vijn 40000 lloje te ndryshme impulsesh brenda  0,002 sekondave.

Nese ka perseri paqartesi mos hezitoni te pyesni.

OSI Layers

OSI LAYERS
Atehere kam qef te trajtoj kete teme pasi eshte shum e rendesishme persa i perket networkut.
Duke qene se une po studioj CCNA tani dhe shoh qe layerat e networkut sherbejne jashtemase
per te kuptuar se si funksionojne gjerat ne nje rrjet dhe gjithashtu jane me mjaft interes
kur synohet indentifikimi i nje problemi.
OSI(Open Systems Interconnection reference model) layer u krijua si nje sistem i standart
ne 1970 nga IBM. Para se te krijohesh ky sistem kompanite e ndryshme kishin programet e tyre
secili dhe gjithashtu protokolle te vecante kjo krijonte mos kompatibilitet dhe probleme ne
punen e paisje te ndryshme me njeri-tjetrin. Ndersa OSI layerat ben te mundur pikerisht standartizimin.

Ne Network ekzistojne gjithsej 7 layera te cilat jane(OSI layer):
Application Layer
Presentation Layer
Session Layer
Tranport Layer
Network Layer
Data-Link Layer
Physical Layer

Duhet ditur qe te gjitha keto Layera apo shtresa punojne te nderthurura me njeri-tjetrin.
Fillojme me Application layer e cila eshte dhe shtresa me e larte e cila ka te beje pikersiht
me Web aplikacionet e ndryshme, me broweserat pra me pak fjale me pjesen grafike dhe paraqitjen
ne perdorues. Tek kjo shtrese hyjne te dhenat, databaset, printimi, dhe web aplikacionet e ndryshme.
Ne shtresen e dyte qe eshte Presentation Layer kemi te bejme me konvertimin e formateve te
ndryshme dhe paraqitjen e tyre.Kemi te bejme me formatet e ndryshme sic jane:
PICT, JPEG, GIF, TIFF, MIDI, MPEG, Quick Time, RTF. Gjithashtu ketu behet encriptimi i certifikatave
dhe dekriptimi i tyre.
Session Layer perfshin nje shtrese tjeter e cila merret me dialogimet e ndryshme.
Ketu behet te mundura keto lidhje me ane te sistemeve simplex, half-duplex dhe full duplex.
Kjo shtrese permban keto interface:
Xwindow, NFS, SQL, RPC, ASP (AppleTalk Session protocol) dhe DNA SPC.
Transport Layer eshte gjithashtu nje shtrese mjaft me rendesi pasi ketu hyjne shume procese
te ndryshme qe fillojne nga sinkronizimi i lidhjes, krijimin three-way-handshake, flow controllit,
e deri tek Windowing.
Nese marrim three-way-handshake ka te beje me dergimin e kerkesave per te krijuar lidhjen me ane
te Syn dhe pritjen e pergjigjes ack, pasi vjen kjo formohet lidhja dhe me pas behet dergimi i te dhenave.
Nese kalojme tek Windowing eshte koha qe lihet per te derguar te dhena pa marre pergjigje pra ack, nese hosti ekziston apo jo.
Tani kalojme tek Network Layer ku bejne pjese edhe Routerat ketu kemi keto interface:
Data packets te cilat bejne dergimin e paketave nepermjet protokolleve te ndryshme si Ip, IPX ne network.
Route Update packets qe eshte nje sistem i cili ben te mundur nepermjet te protokolleve, qe perdorin routerat per te njohur rrjetin dhe per te krijuar tabela per kete arsye.
Ketu behet edhe perkthimi i protokolleve te ndryshme ne nje gjuhe per tu njohur nga rrjeti.
Data-link layer eshte nje shtrese ne te cilen bejne pjese switchat dhe bridges. Ketu behet adresimi
dhe njohja e networkut te brendshem me adresa te ndryshme. Network layer e njeh networkun me nje adrese te vetme ndersa switchat e ndryshem bejne adresimin dhe ja japin shtreses se mesiperme.
Data-link ka dy interfave LLC 802.2 dhe MAC 802.3 ne LLC behet rregullimi dhe percaktimi i ciles pakete eshte rradha per te kaluar dhe se ku duhet te shkoj nje pakete caktuar per te mos krijuar perplasje ne rrjet ndersa MAC eshte adresimi qe i behet nje kopjuteri nga karta rrjetit me nje adrese qe eshte vene nga shitesi.Kjo e fundit ben ndarjen e bandwithit.
Physical Layer ben kalimin e biteve te ndryshme nga sistemi binar duke i interpretuar me vlera tensioni.
Ne kete shtrese hyjne HUB-et qe jane thjeshte paisje fizike. Keto nuk duan tja dine se si ose ku shkojne
te dhenat vetem jane disa perseritesa ose amplifikues te sinjalit.
Keto ishin 7 shtrsat kryesore te rrjetit shpresoj te keni mesuar dicka te re.

Hello World “ndryshe”

Nje realitet i hidhur sot per universitetet ne pergjithesi, flas edhe per ato jo-shqiptare, eshte se po ta marrim nga nje kenveshtrim BUSSINES , dhe per tregun e punes sot, te mesojn gjera qe ne fund te fundit kane per te te sherbyer shume pak.
Rast konkret, marrim programatoret.
Qe te shesesh nje program duhet qe te pakten te kete nje pamje grafike, (po flasim per programe serioze) pra te kete GUI !  (graphical user interface)
Cili universitet e meson kete?
Se po shkoj te rregjistrohem xD
Normalisht ka qe ti thon disa baza por ne pergjithesi shumica e universiteteve te mesojn programimin ne nivel CLI (command line interface)

Tani po japim nje hello world tipik ne java duke e integruar ate me JavaSwing
Java Swing eshte nje framework per java dhe perfshin GUI + widgets etj.

Interface

Action
BoundedRangeModel
ButtonModel
CellEditor
ComboBoxEditor
ComboBoxModel
DesktopManager
Icon
JComboBox.KeySelectionManager
ListCellRenderer
ListModel
ListSelectionModel
MenuElement
MutableComboBoxModel
Renderer
RootPaneContainer
Scrollable
ScrollPaneConstants
SingleSelectionModel
SwingConstants
UIDefaults.ActiveValue
UIDefaults.LazyValue
WindowConstants

Klasat

AbstractAction
AbstractButton
AbstractCellEditor
AbstractListModel
ActionMap
borderFactory
Box
Box.Filler
BoxLayout
ButtonGroup
CellRendererPane
ComponentInputMap
DebugGraphics
DefaultBoundedRangeModel
DefaultButtonModel
DefaultCellEditor
DefaultComboBoxModel
DefaultdesktopManager
DefaultFocusManager
DefaultListCellRenderer
DefaultListCellRenderer.UIResource
DefaultListModel
DefaultListSelectionModel
DefaultSingleSelectionModel
FocusManager
GrayFilter
ImageIcon
InputMap
InputVerifier
JApplet
JButton
JCheckBox
JCheckBoxMenuItem
JColorChooser
JComboBox
JComponent
JDesktopPane
JDialog
JEditorPane
JFileChooser
JFrame
JInternalFrame
JInternalFrame.JDesktopIcon
JLabel
JLayeredPane
JList
JMenu
JMenuBar
JMenuItem
JOptionPane
JPanel
JPasswordField
JPopupMenu
JPopupMenu.Separator
JProgressBar
JRadioButton
JRadioButtonMenuItem
JRootPane
JScrollBar
JScrollPane
JSeparator
JSlider
JSplitPane
JTabbedPane
Jtable
JTextArea
JTextField
JTextPane
JToggleButton
JToggleButton.ToggleButtonModel
JToolBar
JToolBar.Separator
JToolTip
Jtree
Jtree.DynamicUtiltreeNode
Jtree.EmptySelectionModel
JViewport
JWindow
KeyStroke
LookAndFeel
MenuSelectionManager
OverlayLayout
ProgressMonitor
ProgressMonitorInputStream
RepaintManager
ScrollPaneLayout
ScrollPaneLayout.UIResource
sizeRequirements
sizeSequence
SwingUtilities
Timer
ToolTipManager
UIDefaults
UIDefaults.LazyInputMap
UIDefaults.ProxyLazyValue
UIManager
UIManager.LookAndFeelInfo
ViewportLayout

Dhe tani kalojm tek aplikacioni yne Hello World me interface grafike

import javax.swing.JFrame;
 //importojm swing frame import javax.swing.JLabel; 
// improtojm swing labelin  public class HelloWorldSwing {  
//Japim emrin e klases   public static void main(String[] args) {  
// no coment :p     JFrame frame = new JFrame("WooOOooW do ja them presorit :p"); 
//krijojm nje dritare dhe i japim emrin     
final JLabel label = new JLabel("ça ke bo mire ça ke bo");
 //I fusim edhe pak permbajtje     frame.getContentPane().add(label);
 //paraqisim ate qe shkruajtem me siper      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //I japim mundesi programit qe te mbyllet kur ne klikojm tek X     frame.pack();     frame.setVisible(true);   } }

Dhe ja ku krijuam aplikacionin e pare me pamje grafike :)
Shpresoj se do te keta te tjera per programimin GUI.

Introduksion ne java

Java 1

Ne kete teme do te trajtohet nje teme jo dhe aq introduktive ne java programming.
Po sqarojm shkurtimisht se si funksionon kjo gjuhe, kompilimin, java virtual machine etj.
Atehere, java eshte nje revolucion i vertet ne gjuhet e programimit si per karakterin e saj “object oriented” pra programimin e orjentuar ndaj objekteve por ne pergjithesi veçantia e java eshte se solli portabilitetin ne programim.
Siç e dime, ne pergjithesi kemi 2 ndarje ose 2 kategori gjuhesh programimi..
“Gjuhet e kompiluara” – (gjuhe qe kodi i tyre kompilohet “perkthehet” ne kodin e makines dhe egzekutohet nga proçesori)
“Gjuhe te interpretuara” – (gjuhe qe nuk kane kompilues por interpretues i cili interpreton sintaksen dhe jep nje output te deshiruar)

Ne rastin e gjuheve te kompiluara ndodh ky proçes.
Psh ne shkruajm kete kod

if (columnNumber > 60) {
    wrapToNextLine();
}
else {
    continueSameLine();
}

Normalisht kodi me siper eshte totalisht abstrakt dhe i pakuptueshem per kompiuterin keshtu qe kompilatori e kthen ate kod ne kete

01101001 01100110 00100000 00101000 01100011 01101111 01101100 01110101 01101101 01101110 01001110 01110101 01101101 01100010 01100101 01110010 00100000 00111110 00100000 00110110 00110000 00101001 00100000 01111011 00001101 00001010 00100000 00100000 00100000 00100000 01110111 01110010 01100001 01110000 01010100 01101111 01001110 01100101 01111000 01110100 01001100 01101001 01101110 01100101 00101000 00101001 00111011 00001101 00001010 01111101 00001101 00001010 01100101 01101100 01110011 01100101 00100000 01111011 00001101 00001010 00100000 00100000 00100000 00100000 01100011 01101111 01101110 01110100 01101001 01101110 01110101 01100101 01010011 01100001 01101101 01100101 01001100 01101001 01101110 01100101 00101000 00101001 00111011 00001101 00001010 01111101 00001101 00001010

Kod i cili eshte i kuptueshem ng a kompiuteri, po a egzistojn realisht keto 00101001011 ?
Dikush mund te thote po, e hapa nje file  .class dhe pash ne te 0 dhe 1-sha.
Ne realitet kompiuteri nuk kupton as ato (ça ti besh eshte çun i trash )  ne realitet per kompiuterin nuk jane 0 dhe as 1 por impulse elektrike ku ato qe ne i quajm “1”-sh mund te perkthehen si “kalon rryme” ose “rryme me tension te lart” kurse ato qe ne i quajm “0” jane ” skalon rryme ” ose “rryme me tension te ulet”
Mbasi u qartesua edhe kjo mund te bejm disa pyetje rreth kompilatoreve.
Ok, po kompilatoret pse ndryshojn?
Pse ska vetem nje kompilator?
Pergjigja eshte sepse varet se ne ç’fare sistemi operativ jemi por me e rendesishmja eshte se kemi arkitektura te ndryshme kompiuterash dhe ne baze te arkitektures jane dhe kompiluesit apo kompilatoret.
Te flasim pak per JAVA dhe specifikat e saj.
Me siper thame se java solli portabilitetin e kodit, ç’fare eshte portabiliteti dhe ne ç’kuptim e solli?
Kur folem me siper per kompilatoret e morem vesh se nje program i kompiluar ne nje kompiuter me arkitekture MIPS xD nuk eshte i njejt me nje kod te kompiluar ne nje kompiuter me arkitekture x86_64 dhe kjo eshte me se evidente.
Keshtu qe java mendoj te thyente keto limite 😉
Dhe shpiku JVM (java virtual machine) e cila eshte “interpretuesi i javas”
Nje pyetje natyrale do te ishte, po si atehere java nuk eshte gjuhe e kompiluar?
Jo Java eshte gjuhe e kompiluar por eshte ajo pjeseza qe perfeksionoi gjendjen.
Dhe me kete lindi shprehja : “nje .class file mbetet nje .class file” ose “populli popull mbetet :p” :)
Kur ne shkruajm nje program ne java, krijojm nje file .java
Shembull, po shkruajm hello worldin e famshem ne menyren time.

public class Yeah { /*kjo eshte klass publike dhe emertohet me Yeah (ta dish: emri i klases percakton edhe emrin e failit)
dhe ne kete rast do te formohet nje fail Yeah.java dhe Yeah.class*/
  public static void main ( String args []) //tipike ne java :p kujdes, main eshte metod
  {
	  System.out.print ("Yeah, po programoj ne java"); //Metod per printimin e tekstit ne ekran
  }
}

Ok, ja ku e shkruajtem edhe kodin tone, po me?
Tani do krijohet nje file.java dhe nje tjeter qe do te jet kod binar i quajtur Yeah.class
Kur ndodh proçesi i kompilimit dhe kur ai i interpretimit?

Proçesi i kompilimit apo i “perkthimit te kodit” ndodh kur kody yn java i shkruajtur bukur bukur dhe i kuptueshem nga ne merr pamje makaber :p (pra kodi qe gjendet ne nje class file eshte binar [010010001…])
Dhe ne kete rast shkronjat u perkthyen dhe u kthyen ne impulse elektrike (jemi akoma ne leter)
Proçesi i interpretimit ndodh atehere kur JVM e merr kete kod .class dhe e interpreton ate per ne baze te arkitektures se kompiuterit tone dhe sistemit operativ.

Per ta verifikuar kete mund te merrni nje .class fille te kompiluar ne nje ambjent operativ linux dhe ta çoni ne nje ambjent windows dhe te shikoni a do te punoj :)
Pergjigja eshte PO dhe kjo ne fale te JVM