Pershendetje, kam kohe qe nuk kam shkruar ne blog pasi kam qene shum i zene. Sot do te trajtoj nje teme e cila mendoj se mund te jete e nevojshme per cdo perdorues jo ekspert te linux. Atehere para ca ditesh me doli nje problem me ubuntu me te cilin punoj ne pune pasi pati nje nderprerje dritash dhe une isha duke kryer nje proces kur e rinis sistemin perseri shoh qe sistemi nuk me hapej me. Sistemi me kerkonte nje check disk e lash dy here ta bente dhe sistemi perseri nuk startonte por me dilte nje console per recover e cila te jepte mundesine te veproje me komandat. Duke pare errorin qe me dilte “filesystem error” mendova te perdor nje komande qe quhet :
fsck – check and repair a Linux file system
sic tregon dhe vete emri kjo komande kontrollon filet e sistemit dhe nese gjen gabime i korigjon. Pasi e ekzekutova komanden:
sudo fsck
kontrolli i sistemit filloj dhe me pas gjeti gabime, me pas me kerkoi ti korigjonte mjaftoj qe une ti jepja nje yes dhe cdo error korigjohej. Me pas bera nje restart dhe sistemi u kthye si me pare. Per te pare te gjitha komandat e fsck mjafton te shkruani ne bash:
man fsck
ose per me shume informacion keni kete link:
http://manpages.ubuntu.com/manpages/hardy/man8/fsck.8.html
Ja nje nga pergjigjet e pyetjeve pse te pelqen linux. Nese do te kishim Windows do te duhej te vendosnim diskun dhe ta lenim repair dhe nese gjithmone e bente do te shihnim qe shume programe nuk do te punonin. Imagjinoni sikur sistemi te ishte nje web apo mail server dhe te ishte windows sa kohe te kerkone per riparim ndersa nje linux nuk do te kerkonte me shume se 1 minute.
Shpesh here nje program cilesor ben diferencen, e kam fjalen ne te gjitha aspektet.
Le te permendim disa rregulla te arta qe vertet bejn diferencen:
1. Ne cilen gjuhe ta shkruajm programin?
Shpesh here kjo eshte zgjedhje vendimtare pasi gjuha qe mund te kemi zgjedhur nuk eshte shume e pershtatshme per nje program te caktuar ndersa nje tjeter eshte shume here me e mire, psh te marrim nje rast banal si psh te perdoresh assembly per te koduar nje program me grafik te avancuar ose e kunderta te perdoresh cobol nderkohe qe te duhet nje program shume i shpejt (pra qe mund te kodohej ne assembly ose python qe jane gjuhe qe japin goxha shpejtesi)
Pra ky eshte hap themelor.
2. Dizajni imagjinar i programit
Kjo vertet them se eshte pika kryesore dhe themelore e te gjith kesaj, pasi nese ne e ideojm programin ne koken tone, me te gjitha pjeset e tij pastaj zbatimi eshte thjesht 20% e punes, nderkohe qe nje programator i mire ne UML mund te bente shume pune ne keto raste, njohuri te tilla japin stabilitet, siguri, funksionalitet.
3. Thjeshtesia
Sa me i thjeshte, aq me mire, nje program i thjesht ka fluiditet dhe eshte i thjesht per tu rregulluar ndersa nje program i komplikuar eshte shume i prirur per te pasur bug dhe vulnerabilitete, ndersa nje program i thjesht eshte edhe me i leht per tu rregulluar dhe kjo çon tek nje rregull tjeter qe eshte PAK RRESHTA.
4. Modulariteti
Ketu hyjm tek programimi me objekte, shpesh jane objektet qe na kursejn rreshta kodi dhe na japin thjeshtesi, nje rregull shume i rendesishem ketu eshte:
Mbaje MAIN() me sa me pak rreshta kodi, kjo do te thote qe nese ne bejm nje program (po e zeme ne java) mund te kemi 15 faile.java ku vetem njeri ka main() per te egzekutuar programin, nese ne i ndajm Konstruktoret dhe metodat ne secilin nga failet dhe mainin e mbajm me pak rreshta vetem sa per te egzekutuar objektet e shperndara atehere kjo do japi nje program shume te thjesht per tu shpjeguar edhe njerit qe nuk ja ka idene programimit.
5. Ridizaini
Gjate perfundimit te programit ka shume gjasa qe te na lindin ide te reja, ne keto raste edhe nese duam te bejm nje ridizajn te programit do te jete shume i thjesht pasi objektet klasat jane te ndara secila ne vendin e vet dhe metodat po ashtu keshtu qe duhet te jete shume e thjesht per te “lozur” me programin tone.
6. Algoritmi fitues
Shpesh algoritmi fitues nuk eshte ai me i komplikuar, por ai me i thjeshti, sepse thjeshtesi do te thote dhe fleksibilitet dhe kur kemi perpara nje projekt te perfunduar ku duhet te rregullojm bug-e kjo do te na kursente ore te tera.
Jane dhe shume te tjera, por per momentin po ndalohemi me keto. (jam duke ikur lol, shtoni metoda tek komentet)
Pershendetje, ky eshte nje minitutorial i radhes ku do te shohim se si te instalojm nje windows XP ne linux dhe gjithashtu do te shohim se si te ndajm direktorit (folders) nga linux ne windows ne menyre qe ti kemi te aksesueshem edhe nga Windows.
Fillojm,
Distribucione Linux ka shume, per ta instaluar ne:
Fedora : yum install virtualbox-ose
Debian : apt-get virtualbox-ose
Slackware : installpkg virtualbox-ose
openSuSE : yast2 –install virtualbox-ose
archlinux : pacman -S virtualbox-ose
E keshtu me radhe.
Mbasi e instalojm, startojm virtualbox dhe mbasi regjistrohemi klikojm tek New , pastaj Next dhe fusim emrin psh: Windows dhe Vazhdojm klikojm gjithmon NExt NeXt nExT deri sa te startoj ne ekran, mbas kesaj kemi 2 mundesi instalimi:
a) me ane te diskut ne CD-Drive te kompiuterit
b) me ane te nje imazhi ISO te diskut
Sido qe te jete, nese kemi diskun te masterizuar dhe gati vazhdojm me Next dhe do te instalohet, nese kemi failin ISO atehere i bejm browse, shkojm tek lokacioni ku gjendet psh windows_xp.iso dhe e instalojm.
Per te instaluar windows XP sbesoj se ka nevoj per ndonje tutorial.
Si te ndajm Direktorit ne Windows dhe Linux me ane te VirtualBox
Tani qe kemi dhe windows-in tone ne egzekutim me ane te VirtualBox shkojm tek Windows XP-ja yne, ne te majte te ekranit lart kemi : Machines Devices Help
Klikojm tek Devices dhe selektojm Install Guest Additions, do te na thote qe nuk gjenden ne kompiuter a ti shkarkoj? ne do i themi po, dhe do i shkarkojm nga interneti, do i instalojm me “next next” duke mos harruar te selektojm dhe suportin dhe pershpejtimin 3D e mbas kesaj do i bejm reboot.
Bukur, tani hapim virtualbox, pa ndezur windows shkojm tek Settings>Shared Folders dhe shtojm psh /home/qaniu dhe klikojm OK, mbas kesaj startojm Windows dhe shkojm tek Start>Run dhe japim cmd ose startojm promptin e komandave dhe japim:
net use x: //vboxsvr/qaniu (ose emri i direktoris qe keni shtuar tek Virtual box dhe do na thote qe komanda u egzekutua me sukses, shkojm tek My Computer dhe do te gjejm nje “qaniu on vboxsvr X:” te njohur si drive, ja ku mbaroi.
Suporti 3D dhe Pershpejtimi 3D
Siç e thame i instaluam Sun VirtualBox Guest Additions dhe Pershpejtimin 3D (3D Accelerations) edhe pse eshte ende ne “prove”, keshtu qe tani shkojm tek VirtualBox>Settings te Windows XP>Display dhe klikojm tek 3D Acceleration qe duhet te na dali Enambled me vone.
Startojm Windows,
Mbaroi.
Per te rregulluar maksimalisht pamjen (display) madhesin e ekranit te windowsit pra, nderkohe qe Windows eshte ne egzekutim klikojm siper tek Machine> Adjust Window Size dhe ne restartin tjeter pamja do te jete thjesht perfekte.
FUND.
Cikli While eshte nje pjese e thjeshte e programimit ne pergjithesi, eshte gjeresisht e perdorur dhe mund te perfitojm shume nga perdorimi i tij. Mund te kisha marre shume shembuj per ta ilustruar por zgjodha shumezimin faktorial ne menyre qe te kuptohet me ne gjeresi.
import java.util.Scanner; //Importojm klasen skaner pasi do marrim impute nga tastiera
public class Faktorial
{
public static void main (String [ ]args)
{
Scanner inPuti = new Scanner (System.in); //krijojm objektin inPuti
long N, fakt = 1; //Percaktojm 2 variabila 1 long N dhe tjetren 1 per faktorialin
System.out.println ("Fut nje numer :");
N = inPuti.nextLong();
if (N >= 0 && N < 20)
{
while (N > 1) //Perderisa Numri > 1 vazhdo
{
fakt = fakt * N; // 1 = 1 * Numrin
N = N - 1; //Numri = Numri - 1
} //Numri = Numrin - 1
System.out.println ("Faktoriali eshte :" + fakt); //Printojm faktorialin e numrit.
}
else
{
System.out.println ("Numri duhet te jete 0 ose me i madh.");
System.out.println ("SHENIM: Per numra me te medhenj se 20 perfundimi do jete i gabuar sepse variabila i tejkalon bitet qe mund te mbaj" +
"dhe automatikisht bitet teper i kalon ne kosh, dhe si problem eshte i njohur me \"Overflow\" ne boten e informatikes");
}
}
}
Bukur mbasi i hodhem nje sy ushtrimit shpjegojm se ç’fare ndodhi.
Shembull, po kryejm te gjitha operacionet qe do bej cikli yne while nese merr numrin 4 nga perdoruesi:
Fut nje numer: 4, ky numer shkon dhe depozitohet ne variabilen N
if kontrollon nese nje statement eshte i vertete, dhe meqenese 4 >= 0 dhe me i vogel
se 20 atehere e fut ne cikel while i cili nderkohe qe sheh se 4 > 1:
fakt = fakt * N ==> 1 = 1 * 4 ==> fakt = 4
N = N – 1 ==> N = 4 – 1 ==> N = 3
while ( N > 1 ) ==> 3 > 1
fakt = fakt * N ==> 4 = 4 * 3 ==> fakt = 12
N = N – 1 ==> 3 = 3 – 1 ==> N = 2
while ( N > 1 ) ==> 2 > 1
fakt = fakt * N ==> 12 = 12 * 2 ==> fakt = 24
N = N – 1 ==> 2 = 2 – 1 ==> N = 1
while ( N > 1 ) ==> Tani N = 1 dhe 1 nuk eshte me i madh se 1 keshtu qe cikli mbyllet
nderkohe qe variabila fakt ka vleren 24 ndersa variabila N ka vleren 1
Besoj se eshte e qarte, pra Cikli While ka kete forme, “nderkohe qe : kushti : veprime”
Ne kete ushtrim vihet re dhe nje overflow nese fusim numra me te medhenj se 20 , do te ishte interesante ta trajtonim dhe ne nivelin e sigurise kete problem te njohur por shpresojm se ne raste te tjera do te jete diskutim me i pershtatshem