Ç’do te thote public static void main?

Titulli i temes e shpjegon me mire permbajtjen.
Eshte “kodi” [ne gjuhe profesionale eshte deklarimi i metodes se aplikacionit] me i perdorur ne aplikacionet java, shumica e tyre perdorin “public static void main” , pra ç’do te thote ky kod, ose me sakt secila nga perberesit e kesaj “fraze” ne java?
Pse perdoret aq shpesh?
Po te mungoj ndonjeri nga keto komponent ç’fare ndodh?
Po e fillojm nga
Public
Vertet kur jemi ne fillimet e programimit nuk eshte qe na shqeteson shume se pse quhet public apo pse jo private dhe po te quhet private ç’fare ndodh dhe po te quhet public ç’fare ndodh por eshte diçka shume me rendesi sidomos ne OOP (object oriented programming).
Pse?
Dihet qe ne OOP perdoren “objektet e gatshme” te cilat i krijojm ne dhe i perdorim ne klasat tona apo ne failet e tjera .java \ .class (te kompiluara)
Kete po e them pikerisht sepse nese eshte “public” atehere kjo kok (header) dhe vet aplikacioni qe pason mund te perdoret nga aplikacionet e tjera rast konkret kur kemi 2 klasa te ndryshme ku njera krijon nje objekt qe perdor aplikacionin e nje klase tejter dhe ne kete rast nese tek klasa tjeter eshte private ne vend te public atehere aplikacioni nuk lejon perdorimin apo “thirrjen” e tij nga aplikacione te tjera java.
Kemi dhe protected dhe default qe perdoren edhe ato jo pa qellim.
Nga kjo themi qe :
public do te thote qe aplikacioni eshte PUBLIK dhe perberja e tij eshte publike , mund te thirret dhe perdoret nga te gjithe.  Pra PUBLIC eshte nje modifikues aksesi
Metoda static ka te beje shume me permbajtjen e variabilave qe do te kete aplikacioni dhe me vet permbajtjen e aplikacionit.
Pra ç’do te thote kjo “static”?
Dhe une nuk e pata te thjesht ta kuptoja ashtu siç eshte, shume libra me shume te komplikojn mendimet se sa ta sqarojn tamam..
Static do te thote 1 per 1.
Dhe 1 per 1 ne java ka nje shpjegim pak me te gjate 😉
Ne OOP siç e dime ka shume rendesi “thirrja” e metodave te tjera qe jane jasht klases sone dhe ne realitet ky eshte edhe themeli i OOP. Keshtu qe kur themi 1 per 1 do te thote qe te gjitha variabilat, qe krijohen ne aplikacion jane GLOBALE dhe ato mund te therriten  nga klasat apo aplikacionet qe jane jasht failit tone , pra ato mund te thirren ne menyre te drejtperdrejt pa pasur nevoje per futjen e objekteve tamam ne klasen tone dhe percaktimin e tyre pedant.
Ne fjale te tjera kur e perdorim metodat dhe variabilat behen globale qe kur e analizojm si nje pentester do te thote “mish per kasapin” sepse eshte shume e pasigurt ne perdorim.
Kalojm tek VOID
Sa here qe ta perdorni duhet tju vij ne mendje “no return” pra rruge pa kthim, njehere qe nisemi nuk mund te kthehemi me mbrapa.
Void nga ana tjeter eshte i pari qe jep mandatin per “il punto di non ritorno” pra per piken ku s’ka me kthim mbrapa.
Kjo normalisht eshte edhe diçka qe mund ta gjejm gjithandej por ne realitet ç’fare duam te themi me kete “pa kthim”?
Ç’fare eshte void ne fund te fundit?
Eshte thjesht nje metod, po sa metoda mund te perdorim ne ne nje aplikacion java?
Vertet qe mund te perdorim shume metoda, dhe kjo eshte nje prej tyre default qe e ka vet java por ne ndryshim nga ato te tjerat ne nuk mund ta therrasim kete ne aplikacione te tjera ja nje shembull i nje metode qe mund ta therrasim ne aplikacione te tjera.
Shohim pak kete shembull banal te OOP qe e kemi postuar ne fourm
http://albanianwizard.org/diskutime/gjuhe_te_kompiluara/programim_me_objekte_java-t20.0.html
Kemi krijuar nje metod paraqitMesazhin() te cilen e therrasim nga krahu tjeter me aplikacionin TestimiObjektit.java
Pra nuk mund te bejm te njejten gje me void.
Besoj e u qartesua dhe kjo.
Per main kemi shume pak per te thene, nuk mund te quhet aplikacion diçka.java nese nuk ka kete metod ne te.
Pra nese mungon main atehere kompiluesi nuk e shikon si nje aplikacion dhe thote mos eshte applet?
Nese ka paqartesi mund te pyesni.

Opera 10 vjen me presto 2.2

Opera vertet qe po na habit,
Nuk ka pak kohe qe ka dale opera 10 (versioni alfa) dhe eshte testuar dhe motorri rendering i ri Opera Presto 2.2.
Nuk mu durua dhe e instalova edhe pse eshte thjesht nje alfa (rasti i pare qe instaloj nje program ne stad alfa)
dhe vertet ngela shume i impresionuar sidomos nga shpejtesia..
E preseris vertet shume shume browser i shpejt.

Developersat e saj normalisht ne kete version alfa nuk thone se kane futur te gjitha opcionet si update automatike , selektoreve API, SVG improvements etj keshtu qe keshillohet te prisni versionin perfundimtar.
Vertet nje eksperienc e re navigimi.
Ne webin ku testohen browserat ka dale me 100% te fuqise, duke e lene firefox versionin e fundit tek 71%
Nuk e besoni?
Provojeni vet tek:
http://acid3.acidtests.org/
PS, dikush ta provoj me internet explorer, jam shume kurioz te di se sa do te arris lol 😀

Hapet forumi.

Sapo perfundoi forumi i albanianwizard qe hyn ne pune menjehere.
Ne te mund te diskutojm ato qe nuk i diskutojm dot ne blog, mund te njihemi me shume me njeri-tjetrin dhe mund te kemi kontakte akoma me te “gjalla”.

Mund te qendroni thjesht si vizitor ose te beheni pjesmarres i tij.
Normalisht do te kishim deshire qe te kishte sa me shume pjesmarres, sa me shume shkembime idesh dhe sa me shume bashkpunim.

Mund te rregjistroheni duke klikuar ne linkun e meposhtem
http://albanianwizard.org/diskutime/index.php?action=register
Uroj qe tja kalojm sa me mire sebashku :)

Display holografik (ekrani ne ajer)

Ketu dua tju tregoj ekranin e se ardhmes, ato ekrane pa monitor fare, ku imazhi shihet ne ajer dhe mund te komandohet me prekje + imazh 3d. Shihni kete video te nje paisje te realizuar nga nje grup research dhe do te mendoni qe ato qe po shohim neper filma po kthehen dita dites ne realitet….

httpv://www.youtube.com/watch?v=XOSx7v87JCA

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 :)