Category: Computers

IT Security

Ca shpjegime në lidhje me sigurinë e kompjuterëve

Në botën e tanishme shfrytëzimi i kompjuterëve është bërë më se i domosdoshëm në shumë aspekte të jetës saqë çdo moment e shfrytëzojmë kompjuterin për të kryer një pjesë të madhe të punëve ditore. Të lidhurit e kompjuterit me botën e internetit, që ofron një mori të mirash, por edhe një mori të këqijash, hap edhe një portë për infiltrimin e softuerëve keqbërës, që me aktivitetet e tyre të ndryshme për nga natyra e të punuar pengojnë në punën normale të kompjuterit tuaj.

MaxPixel.freegreatpicture.com-It-Security-Cyber-Security-Computer-Security-1784985

Softuerët keqbërës janë të dizajnuar në mënyrë që të punojnë në mënyrë të fshehtë pa u diktuar nga përdoruesi i zakonshëm i kompjuterit. Disa programe keqbërëse në një moment të caktuar nga vet zhvilluesi i tyre aktivizohen dhe bllokojnë punën e kompjuterit. Disa të tjerë e zënë hapësirën e diskut dhe në këtë mënyrë ia zvogëlojnë mundësitë e kompjuterit të punojë si duhet, pasi që një pjesë goxha e madhe në sistemin operativ të Microsoft e përdor si pagefile.sys. Kjo është një memorie punuese dytësore, pasi që memorie punuese parësore është RAM memoria. Kjo memorie përdoret pasi që ta hapni një program të punoni me të, të mbaroni punë me të tani ta mbyllni. Programi në fakt në mbyllet në tërësi por bartet nga RAM memoria në pagefile.sys, pastaj po të ndodh ta hapni për së dyti programin e njëjtë ai do të ekzekutohet më lehtë. E këto programe keqbërëse e zvogëlojnë hapësirën e gatshme kështu që ky pagesfile.sys zvogëlohet dhe në këtë mënyrë kompjuteri punën më ngadalë. Disa programe tjera keqbërëse e ngarkojnë shumë procesorin sa që rëndohet shumë puna. Disa virus janë të specializuar në atë mënyrë që të shpërndahen në tërë rrjetin e brendshëm kështu është më problem heqja e viruseve të tillë.

  • Viruset kompjuterik
  • Krimbat (Worms),
  • Kuajt e Trojës (trojan horses),
  • Vjedhësit e informatave (spyware),
  • Reklama të pandershme (dishonest adware),
  • Vepra dhe vegla kriminale (crimeware) si dhe
  • Vegla rrënjësore (Rootkits)
  • Veglat Ransomware – përfitim ilegal

Virusët kompjuterik

Virusët kompjuterik i hasim kudo, ata zakonisht vijnë si bashkëngjitje në postat elektronike (e-mail), pastaj në pajisjet memorie të largueshme siç mund të jenë CD, DVD, BluRay Disk, USB memorie etj. Në kohërat e hershme disketat kanë qenë burim kryesor i viruseve ndërsa tash janë të paraqitura shumë burime të mundshme të viruseve. Gjatë historisë ka pasur virus të ndryshëm që kanë shërbyer për të kryer vepra të ndryshme që nga bllokimi i sektorit nismëtar – boot sektor deri te fshirja e të gjithë skedarëve që gjenden në disk por jo nëse në diskun e fortë ju keni disa particione – virusët e tillë i fshijnë shënimet veç në particionin e parë.

Krimbat (Worms)

Krimbat janë programe keqbërëse që e zënë hapësirën e diskut si dhe në disa raste janë edhe mass mailer që i marrin të gjitha adresat nga kompjuteri jua dhe i dërgohet një kopje. Rëndom në MSN Messenger, Outlook Express si dhe Outlook kanë shprehur aktivitetin e tyre këto programe keqbërëse pasi që përmes këtyre programeve kryesisht janë shpërndarë, por ka raste që edhe përmes mediumeve tjera të shpërndahen kryesisht me anë të USB memorieve që përmes një skedari të quajtur autorun.inf e ekzekuton virusin dhe krimbin etj.

Kuajt e trojës (trojan horses)

Kuajt e Trojës (trojan horses) – janë programe keqbërëse por puna e tyre e vetme është që pasi që të instalohen në kompjuterin tuaj të hap një port ku personi që e ka dërguar atë të merr kontrollin mbi kompjuterin tuaj. Pastaj, keqbërësi mund të instalojë çfarëdo programe në kompjuterin tuaj e për disa do të flasim më vonë. Eliminimi i këtyre programeve kërkon aftësi të nivelit të lartë pasi që nuk mjafton thjeshtë të hiqet programi keqbërës por edhe mbyllja e portit(eve) që ky program keqbërës mund t’i ketë hapur fillimisht.

Vjedhësit e informatave (spyware)

Vjedhësit e informatave (spyware)– janë programe keqbërëse me efekt në aspektin financiar sidomos për ata persona që bëjnë transaksione bankare. Nëse kompjuteri juaj është i infektuar me të paktën një vjedhës të informatave atëherë nofka dhe fjalëkalimi që përdorni për tu kyçur në ueb faqe të ndryshe për shit-blerje siç është ebay.com. Ky program është i dizajnuar t’i mbledhë të dhënat e bankave në mënyrë që personi që ua ka dërguar të mund të merr para nga llogarit tuaja bankare.

Reklama të pandershme (dishonest adware)

Reklama të pandershme (dishonest adware janë programe që kur bleni një tufë të softuerëve, ju vijnë edhe reklama për programe tjera që nuk iu interesojnë. Nga zhvilluesit kjo shikohet si një mënyrë për shpagimin e punës së tyre duke reklamuar programet e tyre në këtë mënyrë.

Vepra dhe vegla kriminale – Crimeware

Vepra dhe vegla kriminale, këtu përfshihen të gjitha programet keqbërëse që merren me vjedhjen e informatave me anë të keylogger (program për regjistrimin shtypjeve te tasteve në tastierë), me anë të të cilëve zakonisht te postat elektronike (e-mail) vidhet nofka dhe fjalëkalimi për qëllime të caktuara siç mund të jenë presione morale, ekonomike dhe politike, shantazhe, përftimi i fjalëkalimeve nga memoria e përkohshme e sistemit etj. Me një fjalë të gjitha këto veprime janë të sanksionueshme me ligj.

Vegla rrënjësore (Rootkits)

Veglat rrënjësore – këto programe keqbërëse instalohen në kompjuterit tuaj pas hapjes së portit nga ana e kuajve të Trojës dhe shërbejnë për marrjen e funksionalitetit administrativ të kompjuterit në largësi, që do të thotë që keqbërësi mund të jetë në anën tjetër të botës dhe ta ketë kontrollin në nivel administrativ të kompjuterit tuaj. Në këtë mënyrë ai/ajo mund të bëjë çfarë të dojë në kompjuterin tuaj dhe ju nuk mund ta vëreni fare punën e tij.

Veglat Ransomware – përfitim ilegal

Veglat ransomware – përfitim ilegal, janë programe keqbërëse që zakonisht merren përmes bashkëngjitjes në postën elektronike apo përmes klikimit në vjegëza që në mënyrë direkte e shkarkon programin keqbërës. Programi funksionalitetin e tij e ka të tillë që i enkripton skedarët e kompjuterit dhe tani kërkohet që të paguhet një shumë e caktuar kryesisht me monedha virtuale siç është Bitcoin. Por, edhe nëse kryhet pagesa e tarifës së kërkuar nuk të garantohet se mund t’i rikthesh të dhënat e tua që janë të enkriptuara.

Kështu që për tu mbrojtur nga këto të këqija ne duhet që çdo kompjuter ta pajisim me programe për mbrojtje nga virusët si dhe të pajisur me murin e zjarrtë (Firewall). Si sisteme më të sigurta paraqiten ato programe që janë të integruara edhe si Firewall edhe si Antivirus. Këto programe na mbrojnë edhe nga sulmet e hakerëve të ndryshëm si dhe bëjnë mbrojtje ndaj infektimit të kompjuterit tuaj me anë të USB Memorieve. Gjithashtu është e rëndësishme që përditësimi i sistemit operativ si dhe i sistemeve të sigurisë të jetë në nivel të lartë pasi që në këtë mënyrë eliminohen disa lëshime të mundshem në pjesë të ndryshme të sistemeve operative që i kemi në dispozicion.

Advertisements
Computers

Programimi në Python

Përshëndetje ky është një mësim i thjeshtë se si të përdorim klasë e Python dhe të ruajmë të dhëna në bazën e të dhënave MySQL ose MariaDB.

Kodi:

 
# coding=utf8
 # importimi i ndërlidhësit të mysql dhe riemërtimi i saj si mariadb
import mysql.connector as mariadb 
 

# Klasa Person
class Person():
 cursor = 0; # ndryshore globale kursori i bazës së të dhënave
 sleeping = 0; # ndryshore globale ndryshore e cila e ruan gjendjen e fjetur
 
 mariadb_connection = 0; # deklarimi i ndryshorës globale për lidhjen me bazën e të dhënave
 
 def __init__(self): # konstruktori i klasës 
 self.sleeping = 0; #rivendosja e gjendjes së zgjuar
 self.personalID = ""; # pastrimi i ndryshores 
 self.employeeName = "";# pastrimi i ndryshores 
 self.employeeJobDescription = "";# pastrimi i ndryshores 
 self.employeeAddress = "";# pastrimi i ndryshores 
 self.employeeCity = "";# pastrimi i ndryshores 
 self.employeePhone = "";# pastrimi i ndryshores 
 
 #konstruktori i plotë
 def __init__(self, personalID= None, employeeName= None, employeeJobDescription= None, employeeAddress= None, employeeCity= None, employeePhone= None): 
 self.personalID = personalID; #pasimi i vlerës 
 self.employeeName = employeeName;#pasimi i vlerës 
 self.employeeJobDescription = employeeJobDescription;#pasimi i vlerës 
 self.employeeAddress = employeeAddress;#pasimi i vlerës 
 self.employeeCity = employeeCity;#pasimi i vlerës 
 self.employeePhone = employeePhone;#pasimi i vlerës 
 self.mariadb_connection = mariadb.connect(user='root', password='', database='flowershop'); # krijimi i lidhjes me db
 self.cursor = self.mariadb_connection.cursor(); # krijimi i kursorit dhe bartja në ndryshoren globale


 def insert(self): # metodë për futjen e të dhënave në bazën e të dhënave
 try: # provon ta ekzekutojë strukturën
 
 self.cursor.execute("INSERT INTO employee( "+
 " personalID, "+
 "employeeName, "+
 "employeeJobDescription,"+
 " employeeAddress, "+
 "employeeCity, "+
 "employeePhone) VALUES (%s, %s, %s, %s, %s, %s)", (
 self.personalID, 
 self.employeeName, 
 self.employeeJobDescription, 
 self.employeeAddress, 
 self.employeeCity, 
 self.employeePhone));
 self.mariadb_connection.commit(); # rëndom auto_commit është e pasivizuar dhe duhet bërë commit
 print("Data are stored perfectly.");
 except ValueError:
 self.mariadb_connection.rollback(); # nëse ka ndodhur ndonjë problem transaksioni dështon
 print("Data are not stored.");
 return ; 
 
 def sleep(self): # metodë për të nisur fjetjen
 if(self.sleeping == 0): #kontrollon nëse personi është i zgjuar
 print("Person " + self.employeeName + " is sleeping"); 
 self.sleeping = 1; # e vë gjendjen 1 te self.sleeping që do të thotë personi është duke fjetur
 else:# përndryshe
 print("Person " + self.employeeName + " is already sleeping"); 
 return;
 
 def wakeup(self):# metodë për të nisur zgjimin
 if(self.sleeping == 1): #kontrollon nëse personi është i fjetur
 self.sleeping = 0; # e vë gjendjen 0 te self.sleeping që do të thotë i zgjuar
 print("Person " + self.employeeName + " is awake."); 
 else:# përndryshe
 print("Person " + self.employeeName + " is not sleeping to be woken up");
 
 def walk(self): # metodë për të nisur zgjimin
 if(self.sleeping == 0):# kontrollon nëse personi është i zgjuar
 print("Person " + self.employeeName + " is walking"); 
 else:# përndryshe
 print("Person " + self.employeeName + " can't walk he is sleeping");
 return;
 
 def run (self):# metodë për të nisur vrapimin
 if(self.sleeping == 0):# kontrollon nëse personi është i zgjuar
 print("Person " + self.employeeName + " is running"); 
 else:# përndryshe
 print("Person " + self.employeeName + " can't run he is sleeping");
 return;
 
 # inicializimi i ndryshores p me instancën e klasës Person
p = Person(employeeName="Ahmet");
 # ekzekutimi i metodave të klasës Person
p.sleep(); 
p.walk();
p.wakeup();
p.walk();
p.run();

Nëse duam t’i ruajmë të dhënat e një punëtori të ri atëherë duhet t’i inicializojmë të gjitha parametrat e konstruktorit si në vijim:

p = Person("131213123123", "Ahmet Murati", "Software Developer", "Murati Road 1", "Murati", "+38349000000"); 
p.insert();

Dhe dalja nga ekzekutimi:
Person Ahmet is sleeping
Person Ahmet can’t walk he is sleeping
Person Ahmet is awake.
Person Ahmet is walking
Person Ahmet is running

Projekti është i bërë me Netbeans 8.2 dhe me Python 3.4
Person in Python

Computers

Programi im i parë komplet i bërë në Turbo Pascal 1999

(****************************************************************************)
{ Ahmet Murati, Detyra 1, Kursi 1d}
{ Punuar me TPX.EXE p‰r shkak se Turbo.exe jep k‰t‰ mesazh: }
{ Not enough memory to run program }
(****************************************************************************)
program Detyra;
(****************************************************************************)
{ Librarit‰ q‰ is shfryt‰zon programi }
uses Graph,Crt, TutConst, Drivers, Objects, Views, Menus, App, MsgBox;
(****************************************************************************)
{ Blloku p‰r deklarimin i Tipeve }
TYPE
DetyraApp = Object(TApplication)
Constructor Init;
PROCEDURE Shto;
PROCEDURE Permbajtja;
PROCEDURE kerkesa_a;
PROCEDURE kerkesa_b;
PROCEDURE DoAboutBox;
PROCEDURE HandleEvent(VAR Event: TEvent); virtual;
PROCEDURE InitMenuBar; virtual;
PROCEDURE InitStatusLine; virtual;
END;
VEND =1..5;
gjinia =(m,f);
pergjigje=RECORD
emer,mbiemer: STRING [15];
mosha:INTEGER;
g:gjinia;
zgjedhja: ARRAY [1..5] OF VEND;
END; { Fundi i Bllokut t‰ deklarimeve t‰ tipeve }

(****************************************************************************)

CONST n=30; {Konstatet}

(****************************************************************************)

PROCEDURE Ngj(tc,tb:word);FORWARD; {Deklarimi FORWARD i procedurave}
PROCEDURE DESKTOPI;FORWARD; {q‰ kan‰ vler‰ t‰ nj‰t‰ p‰rdorimi}
PROCEDURE box(x1,y1,x2,y2:INTEGER);FORWARD;

(****************************************************************************)

PROCEDURE INTRO;
{Kjo PROCEDURE Intro ‰sht‰ krijuar si uvertyr‰ e programit.}
LABEL PA_GRAFIK;
CONST pr=’presents’; th= ‘D.J. ThemA’; dItem= ‘Detyr‰ Kursi 1′;
VAR i,j,grDriver,wid,VAR1,leng,x,y:INTEGER;
ErrorCode:INTEGER;
Begin
grDriver:=detect;
InitGraph(grdriver,VAR1,”);SetTextStyle(7,0,4);
ErrorCode:=GraphResult;
if ErrorCode <> grOk then goto pa_grafik;
SetTextJustify(1,1); x:=GetMaxX div 2 ;Y:=GetMaxY div 2; Delay(2000);
FOR i:= 1 TO 63 DO
Begin SetRGBPalette(2, 0, i, i); Setcolor(2);delay(15);outtextxy(x,y,th);
SetColor(2); DELAY(10); OutTextXY(x,200,’Ahmet Murati’);
END; DELAY(850);
FOR i:= 60 DownTO 0 DO
Begin SetRGBPalette(2, 0 , i, i); SetColor(2);DELAY(15);OutTextXY(x,y,th);
END;
ClearViewPort;
DELAY(500);
SetRGBPalette(2, 63, 0,63);SetTextStyle(10,0,5);
SetColor(2);OutTextXY(x,y,pr);
VAR1 := TextWidth(pr) div 2;
j:=TextHeight(‘a’)div 2;
DELAY(2500);
FOR i:= 1 TO VAR1 DO
Begin DELAY(10);
SetColor(11);
LINE (x-VAR1+i-1,y-10,x-VAR1+i-1,y+49);
LINE (x+VAR1-i+1,y-10,x+VAR1-i+1,y+49); SetColor(0);
LINE (x-VAR1+i-2,y-10,x-VAR1+i-2,y+49);
LINE (x+VAR1-i+2,y-10,x+VAR1-i+2,y+49);
LINE (x-VAR1+i,y-10,x-VAR1+i,y+49);
LINE (x+VAR1-i,y-10,x+VAR1-i,y+49); END;
FOR i:= 1 TO 36 DO
Begin DELAY(10);
LINE (318,225+i,320,225+i); LINE (318,300-i,320,300-i);
END;
FOR i:= 262 DownTO 100 DO
Begin DELAY(1);
PutPixel(318,i,11); PutPixel(320,i,11);
PutPixel(318,i+5,0); PutPixel(320,i+5,0);
END;
SetColor(0);
LINE (318,101,318,105); LINE (320,101,320,105);
FOR i:= 0 TO 100 DO
Begin DELAY(10);
PutPixel(319-i,100,11); PutPixel(319+i,100,11);
END;
FOR i:= 0 TO 100 DO Begin DELAY(3); PutPixel(319-i,100,11);
PutPixel(319+i,100,11); END;
FOR i:= 0 TO 80 DO Begin DELAY(3); PutPixel(219,100+i,11);
PutPixel(419,100+i,11); END;
FOR i:= 0 TO 100 DO Begin DELAY(3); PutPixel(219+i,180,11);
PutPixel(419-i,180,11); END; DELAY(500);
FOR i:= 1 TO 60 DO Begin SetTextStyle(7,0,1);
SetRGBPalette(2, 0, i, i);
SetColor(2);DELAY(10);OutTextXY(x,y-100,dItem);
END; DELAY(850);
FOR i:= 60 DownTO 0 DO
Begin
SetRGBPalette(2, 0, i, i);SetTextStyle(7,0,1);
SetColor(2);DELAY(10);OutTextXY(x,y-100,dItem);
LINE (219,100,219,180); LINE (419,100,419,180);
LINE (219,100,419,100); LINE (219,180,419,180);
END; closegraph; PA_GRAFIK: END;
(****************************************************************************)
FUNCTION kenga(n:BYTE):STRING;
Begin CASE n OF
1:kenga:=(‘When a man loves a woman ‘); 2:kenga:=(‘E kam emrin kosovar ‘);
3:kenga:=(‘Krah p‰r krah me U€K-n‰ ‘); 4:kenga:=(‘Unchain my heart ‘);
5:kenga:=(‘Dov”‚ l”amore ‘);6:kenga:=(‘Amore erotique ‘);
7:kenga:=(‘Said I loved but I lied ‘); 8:kenga:=(‘Marshi i U€K-s‰ ‘);
9:kenga:=(‘Give it To me baby… ‘); 10:kenga:=(‘Wind of change ‘);
11:kenga:=(‘Twister faith ‘); 12:kenga:=(‘Oxygen 1O ‘);
13:kenga:=(‘What a falling in love ‘); 14:kenga:=(‘Ushtarit tim ‘);
15:kenga:=(‘Born to touch your feelings ‘); 16:kenga:=(‘Fr Elize ‘);
17:kenga:=(‘Big Big Girl ‘); 18:kenga:=(‘Harroj ‘);
19:kenga:=(‘Would you… ‘); 20:kenga:=(‘Equador ‘);
21:kenga:=(‘Iho de la luna ‘); 22:kenga:=(‘You and me ‘);
23:kenga:=(‘Get freaky ‘); 24:kenga:=(‘Sound of music ‘);
25:kenga:=(‘Time to say goodbay ‘); 26:kenga:=(‘Out of dark ‘);
27:kenga:=(‘Rock me Amadeus ‘); 28:kenga:=(‘Jeany ‘);
29:kenga:=(‘Emotional ‘); 30:kenga:=(‘Naked ‘);
ELSE kenga:=’—————————‘;
END;END;
(****************************************************************************)
FUNCTION singer(n:BYTE):STRING;
Begin
CASE n OF
1:singer:=(‘Michael Bolton ‘); 2:singer:=(‘Shkurte Fejza ‘);
3:singer:=(‘Mjellma ‘); 4:singer:=(‘Joe Cocker ‘);
5:singer:=(‘Cher ‘); 6:singer:=(‘Carolina Marquez ‘);
7:singer:=(‘Michael Bolton ‘); 8:singer:=(‘Arif Vlladi ‘);
9:singer:=(‘OffSpring ‘);10:singer:=(‘Scorpions ‘);
11:singer:=(‘Emilia ‘);12:singer:=(‘Jean Michel-Jarr‚ ‘);
13:singer:=(‘Chris Rea ‘);14:singer:=(‘Edona Llalloshi ‘);
15:singer:=(‘Scorpions ‘);16:singer:=(‘Johan Sebastian Bach ‘);
17:singer:=(‘Emilia ‘);18:singer:=(‘Burhan Halili ‘);
19:singer:=(‘Touch & Go ‘);20:singer:=(‘Sash ‘);
21:singer:=(‘Mejan¢ ‘);22:singer:=(‘Scorpions ‘);
23:singer:=(‘Music Instructor ‘);24:singer:=(‘Jean Micheal-Jarr‚ ‘);
25:singer:=(‘A. Bocello & S.Brightmen’);26:singer:=(‘Falco ‘);
27:singer:=(‘Falco ‘);28:singer:=(‘Falco ‘);
29:singer:=(‘Falco ‘);30:singer:=(‘Falco ‘);
ELSE singer:=’———————–‘;
END;END;
(****************************************************************************)
{ Procedura spc mbush nj‰ varg t‰ caktuar me hapsira boshe }
PROCEDURE spc(n:BYTE); VAR i:INTEGER; Begin FOR i:= 1 TO n DO WRITE(#32); END;
{ Fundi i procedur‰s SPC }
(****************************************************************************)
{ Funksioni Merr_str merr nj‰ varg t‰ caktuar me shkrojna dhe disa
shenja t‰ caktuara.}
FUNCTION Merr_Str(n:BYTE;VAR abort:BOOLEAN):STRING;
VAR poz,x,y,i: INTEGER; ch:char; str1:STRING; LABEL a1;
Begin abort:=FALSE; x:=WhereX;y:=WhereY; poz:=1;
str1:=”; GoToXY(x,y); FOR i:=1 TO n DO WRITE(‘ú’);GoToXY(x,y);
a1: ch := ReadKey;
CASE ch OF ‘ ‘,’A’..’Z’,’a’..’z’,’0′..’9′,’‰’,’‡’,’€’:Begin
If poz <= n then Begin str1 := str1 + ch; poz := poz + 1; WRITE(ch);
END; goto a1; END;
chr(8) : Begin if length(str1) < 2 THEN str1 :=”; IF poz > 1 THEN Begin
delete(str1,length(str1),1); WRITE(#8,’ú’,#8); poz := poz – 1; END;
goto a1;END;
#27:Begin merr_str:=”;abort:=true;END;
chr(13): Merr_str:=str1; ELSE goto a1;
{Fundi i Funksionit Merr_Str.}END;END;
(****************************************************************************)

(****************************************************************************)
{ Funksioni Merr_Num merr num‰r t‰ plot‰}
FUNCTION merr_num(n:BYTE; abort:BOOLEAN):longint;
VAR x,y,poz:BYTE; c:char; m:real; i,code:INTEGER;
LABEL a1;
Begin
x:=WhereX; y:=WhereY;
poz:=1; Merr_num := 0; m:= 0;
GoToXY(x,y); FOR i:=1 TO n DO
Write(‘ú’); GoToXY(x,y);
a1: c:= ReadKey; m := Trunc(m);
CASE c OF
‘0’: Begin
IF ((poz > 1) and (poz <= n)) THEN Begin
m := m * 10; Write(c); poz := poz + 1;
END; Goto a1; END;
‘1’..’9′: Begin
IF poz <= n THEN Begin
val(c,i,code); m := (m * 10) + i; WRITE(c);
poz := poz + 1; END;
goto a1;
END;
#8: Begin IF poz > 1 THEN Begin WRITE(#8,’ú’,#8); poz:=poz-1;
m := m/10; END; GoTo a1; END;
#27: Begin abort := true;END;
#13: Begin merr_num := trunc(m); END; ELSE GoTo a1;
END END; { P‰rfundimi i procedur‰s Merr_Num }
(****************************************************************************)

(****************************************************************************)
{ Procedura Desktop kthen pamjen e desktopit.}
PROCEDURE Desktopi; VAR i,j:INTEGER;
Begin Ngj(1, 7);
FOR i:=1 TO 80 DO FOR j:= 2 TO 24 DO Begin
GoToXY(i,j); WRITE(‘°’); END; END;
{ Fundi i PROCEDUREs DESKTOPI }
(****************************************************************************)

(****************************************************************************)
PROCEDURE prit; {Procedura prit}
VAR c:char; Begin c:=ReadKey; END; {Fundi i procedur‰s prit}
(****************************************************************************)

(****************************************************************************)
{ Procedura Ngj b‰n rregullimin e ngjyrave n‰ vEND se t‰ shkruhen
dy intruksionet e bibliotek‰s CRT, TextColor dhe TextBackground }
PROCEDURE Ngj(tc,tb:WORD); Begin textcolor(tc); textbackground(tb);END;
(****************************************************************************)

(****************************************************************************)
{ Procedura BOX vizaton nj‰ Kuti nd‰rmjet koordinatave t‰ dh‰na.}
PROCEDURE box{(x1,y1,x2,y2:INTEGER)}; VAR boxwdth,i,j:INTEGER;
Begin BoxWdth := x2 – x1 + 1; GoToXY(x1,y1);Write(‘Ú’);
FOR i:= 1 TO BoxWdth – 2 DO Write(‘Ä’);Write(‘¿’);
FOR i := y1 +1 TO y2 -1 DO Begin GoToXY(x1,i);Write(‘³’);
FOR j := 1 TO boxwdth – 2 DO WRITE(‘ ‘);WRITE(‘³’); END;
GoToXY(x1,y2);WRITE(‘À’); FOR i:= 1 TO (boxwdth – 2) DO WRITE(‘Ä’);
WRITE(‘Ù’); END; { Fundi i PROCEDUREs BOX }
(****************************************************************************)

(****************************************************************************)
{CONSTRUCTOR-i ‰sht‰ metod‰ speciale q‰ inicializon nj‰ objekt q‰ p‰rmban
metoda virtuale.}
CONSTRUCTOR DetyraApp.Init;
Begin INHERITED Init; END;
{Fundi i CONSTRUCTOR-it.}
(****************************************************************************)
{Kjo procedur‰ shfaq list‰n e t‰ anketuar‰ve}
PROCEDURE Te_anketuarit;
VAR rest,i,l:INTEGER; rec:pergjigje; f1: FILE OF pergjigje;
zgj,delta:BYTE; ch: CHAR; abort:BOOLEAN;
LABEL a1,a2,a4,fundi;
Begin ngj(1,7); box(05,6,75,19);
GoToXY(30,6);WRITE(‘Lista e t‰ anketuar‰ve’);
Begin ASSIGN (f1,’a:\Anketa.ahm’); RESET(f1); zgj:=1; l:=FileSize(f1);
a4: ;GoToXY(25,2);
GoToXY(15,7);WRITE(‘ Emri Mbiemri Mosha Gjinia’);
GoToXY(11,8);WRITE(‘ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ’);
a1: SEEK(f1,zgj-1);
READ (f1, rec);
GoToXY(11, 9); WRITE(zgj:2,’.’);
GoToXY(15, 9);WRITE(rec.emer);FOR rest := length(rec.emer) TO 15 DO WRITE(‘ ‘);
GoToXY(35, 9);WRITE(rec.mbiemer);FOR rest := length(rec.mbiemer) TO 15 DO WRITE(‘ ‘);
GoToXY(54, 9);WRITE(rec.mosha:3,’ vje‡’:5);
GoToXY(58, 9);
CASE rec.g OF
m:Begin WRITE(‘Mashkull’);END;
f:Begin WRITE(‘Fem‰r ‘);END;
END;
GoToXY(67,17); WRITE(zgj:2,’/’,l);
GoToXY(8,17);WRITE(‘Gjithesej ndodhen ‘,l:3,’ rekorde ne skedarin kryesor. ³’);
GoToXY(8,11);WRITE(‘Pref. 1: ‘,kenga(rec.zgjedhja[1]),’ úúú ‘,singer(rec.zgjedhja[1]));
FOR i:= length(kenga(rec.zgjedhja[1])) TO 25 DO WRITE(‘ ‘);
GoToXY(8,12);WRITE(‘ 2: ‘,kenga(rec.zgjedhja[2]),’ úúú ‘,singer(rec.zgjedhja[2]));
FOR i:= length(kenga(rec.zgjedhja[2])) TO 25 DO WRITE(‘ ‘);
GoToXY(8,13);WRITE(‘ 3: ‘,kenga(rec.zgjedhja[3]),’ úúú ‘,singer(rec.zgjedhja[3]));
FOR i:= length(kenga(rec.zgjedhja[3])) TO 25 DO WRITE(‘ ‘);
GoToXY(8,14);WRITE(‘ 4: ‘,kenga(rec.zgjedhja[4]),’ úúú ‘,singer(rec.zgjedhja[4]));
FOR i:= length(kenga(rec.zgjedhja[4])) TO 25 DO WRITE(‘ ‘);
GoToXY(8,15);WRITE(‘ 5: ‘,kenga(rec.zgjedhja[5]),’ úúú ‘,singer(rec.zgjedhja[5]));
FOR i:= length(kenga(rec.zgjedhja[5])) TO 25 DO WRITE(‘ ‘);
a2: ch:=READKey;
CASE ch OF
‘H’:Begin IF zgj > 1 THEN Begin zgj := zgj – 1; GoTo a1; END; GoTo a2;END;
‘P’:Begin IF zgj < l THEN Begin zgj := zgj + 1; GoTo a1; END; GoTo a2;END;
#27:Begin exit; ;END ELSE GoTo a2; END; fundi: close(f1); END; END;
{ Fundi i procedur‰s q‰ liston t‰ anketuarit}
(****************************************************************************)

(****************************************************************************)
{Kjo procedur‰ liston k‰nget q‰ marin pjes‰ n‰ konkurrim}
{Fillimi i procedur‰s lista_Kenge}
PROCEDURE lista_Kenge;
CONST
a = ‘ Nr.Rend. Titulli K‰ndon’;
b1 = ‘ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ’;
type str = RECORD Kg:BYTE; kendon:BYTE; END;
VAR i:BYTE; c: CHAR; LABEL poz1,poz2,fill,fundi,lex;
Begin DESKTOPI;Ngj(1,7);
box(10,12,79,20);GoToXY(40,12);
GoToXY(37,12);WRITE(‘ Lista e k‰ng‰ve ‘);
GoToXY(12,13);WRITE(a);GoToXY(12,14);WRITEln(b1); i:=1;
GoToXY(15,15); WRITE((1):2,’.’,kenga(1):30,’ úúúú ‘,singer(1):20);
GoToXY(15,16); WRITE((2):2,’.’,kenga(2):30,’ úúúú ‘,singer(2):20);
GoToXY(15,17); WRITE((3):2,’.’,kenga(3):30,’ úúúú ‘,singer(3):20);
GoToXY(15,18); WRITE((4):2,’.’,kenga(4):30,’ úúúú ‘,singer(4):20);
GoToXY(15,19); WRITE((5):2,’.’,kenga(5):30,’ úúúú ‘,singer(5):20);
fill:
c:=readkey;
case c of
#72:BEGIN IF i=26 THEN GOTO POZ1;
Inc(i);
GoToXY(15,15); WRITE((i):2,’.’, kenga(i):30,’ úúúú ‘, singer(i):20);
GoToXY(15,16); WRITE((i+1):2,’.’,kenga(i+1):30,’ úúúú ‘,singer(i+1):20);
GoToXY(15,17); WRITE((i+2):2,’.’,kenga(i+2):30,’ úúúú ‘,singer(i+2):20);
GoToXY(15,18); WRITE((i+3):2,’.’,kenga(i+3):30,’ úúúú ‘,singer(i+3):20);
GoToXY(15,19); WRITE((i+4):2,’.’,kenga(i+4):30,’ úúúú ‘,singer(i+4):20);
poz1:
END;
#80:begin IF i=1 THEN GOTO POZ2;
IF i=2 THEN GOTO POZ2;
Dec(i);
GoToXY(15,15); WRITE((i):2,’.’, kenga(i):30,’ úúúú ‘, singer(i):20);
GoToXY(15,16); WRITE((i+1):2,’.’,kenga(i+1):30,’ úúúú ‘,singer(i+1):20);
GoToXY(15,17); WRITE((i+2):2,’.’,kenga(i+2):30,’ úúúú ‘,singer(i+2):20);
GoToXY(15,18); WRITE((i+3):2,’.’,kenga(i+3):30,’ úúúú ‘,singer(i+3):20);
GoToXY(15,19); WRITE((i+4):2,’.’,kenga(i+4):30,’ úúúú ‘,singer(i+4):20);
POZ2:
end;
#27: GOTO FUNDI;
END;
GOTO FILL;
FUNDI:
DESKTOPI; END; {Fundi i procedur‰s lista_Kenge}
(****************************************************************************)

(****************************************************************************)
{Procedura p‰r b‰rjen Kutis‰ s‰ InFORmatave mbi programin}
PROCEDURE DetyraApp.DOAboutBox;
Begin DESKTOPI;
MessageBox(#3’Detyr‰ kursi 1’#13 + #3’E drejte e kopjes 1999’#13#3’Ahmet Murati’, nil, mfInFORmation or mfOKButton); END;
{Fun i procedur‰s DOAboutBox}
(****************************************************************************)

(****************************************************************************)
(****************************************************************************)
{Kjo PROCEDURE shfaq p‰rgjigjen p‰r k‰rkes‰n a t‰ detyr‰s 1 s‰ kursit}
PROCEDURE DetyraApp.kerkesa_A; {SHFAQ Kenget simbas rENDit te preferencave }
CONST
a = ‘ Vendi Titulli K‰ndon Pik‰t Nr.’;
b = ‘ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ’;
type str = RECORD Kg:BYTE; piket:BYTE; END;
VAR de:STRING; W,i,j,gama: INTEGER; rec:pergjigje; f1: FILE OF pergjigje;
delta:BYTE; ch: CHAR; vektor:ARRAY [1..n]OF BYTE; vek:ARRAY [1..n]OF str;
temp:str;
LABEL poz1,poz2,fill,fundi,lex,lart,poshte,poz3;
Begin ASSIGN (f1,’a:\anketa.ahm’);
RESET(f1);Ngj(1,7); box(2,15,78,23);
FOR i:= 1 TO n DO
Begin vektor[i] := 0; vek[i].piket := 0; vek[i].kg := 0;
END;{Pastrohen vektorin VEKTOR }
while not eOF(f1) DO
Begin
READ (f1,rec);
FOR j:= 1 TO 5 DO
Begin gama:= rec.zgjedhja[j];
IF (gama > 0) and (gama <= 30) THEN
vektor[gama]:= vektor[gama] + 1; END; END;
close(f1);
FOR i:= 1 TO n DO
Begin vek[i].piket := vektor[i];vek[i].kg:=i;END;
FOR i:= 1 TO n DO
FOR J:= i+1 TO n DO
Begin IF vek[i].piket < vek[j].piket THEN
Begin temp.piket:=vek[i].piket;temp.kg:=vek[i].kg;
vek[i].piket:=vek[j].piket;vek[i].kg:=vek[j].kg;
vek[j].piket:=temp.piket;vek[j].kg:=temp.kg;
END; END;
Begin
GoToXY(25,15); WRITE(‘ K‰rkesa (a). Lista e k‰ng‰ve Fituese ‘);
GoToXY(04,16); WRITE(a);GoToXY(4,17);WRITEln(b); i:=1;
GoToXY(04,18); WRITE((1):2,’.’,kenga(vek[1].kg):30,’ úú ‘,singer(vek[1].kg):20,’ úú ‘,vek[1].piket:2,'(‘:3,vek[1].kg:2,’)’);
GoToXY(04,19); WRITE((2):2,’.’,kenga(vek[2].kg):30,’ úú ‘,singer(vek[2].kg):20,’ úú ‘,vek[2].piket:2,'(‘:3,vek[2].kg:2,’)’);
GoToXY(04,20); WRITE((3):2,’.’,kenga(vek[3].kg):30,’ úú ‘,singer(vek[3].kg):20,’ úú ‘,vek[3].piket:2,'(‘:3,vek[3].kg:2,’)’);
GoToXY(04,21); WRITE((4):2,’.’,kenga(vek[4].kg):30,’ úú ‘,singer(vek[4].kg):20,’ úú ‘,vek[4].piket:2,'(‘:3,vek[4].kg:2,’)’);
GoToXY(04,22); WRITE((5):2,’.’,kenga(vek[5].kg):30,’ úú ‘,singer(vek[5].kg):20,’ úú ‘,vek[5].piket:2,'(‘:3,vek[5].kg:2,’)’);

W:=1;
fill:
ch:=readkey;
case ch of
#72:BEGIN IF W<1 THEN GOTO POZ2; IF W=26 THEN GOTO POZ1;if vek[W+5].piket=0 then goto poz2;
Inc(W);
GoToXY(04,18); WRITE((W):2,’.’, kenga(vek[W].kg):30,’ úú ‘, singer(vek[W].kg):20,’ úú ‘, vek[W].piket:2,'(‘:3,
vek[W].kg:2,’)’);
GoToXY(04,19); WRITE((W+1):2,’.’,kenga(vek[W+1].kg):30,’ úú ‘,singer(vek[W+1].kg):20,’ úú ‘,vek[W+1].piket:2,'(‘:3,
vek[W+1].kg:2,’)’);
GoToXY(04,20); WRITE((W+2):2,’.’,kenga(vek[W+2].kg):30,’ úú ‘,singer(vek[W+2].kg):20,’ úú ‘,vek[W+2].piket:2,'(‘:3,
vek[W+2].kg:2,’)’);
GoToXY(04,21); WRITE((W+3):2,’.’,kenga(vek[W+3].kg):30,’ úú ‘,singer(vek[W+3].kg):20,’ úú ‘,vek[W+3].piket:2,'(‘:3,
vek[W+3].kg:2,’)’);
GoToXY(04,22); WRITE((W+4):2,’.’,kenga(vek[W+4].kg):30,’ úú ‘,singer(vek[W+4].kg):20,’ úú ‘,vek[W+4].piket:2,'(‘:3,
vek[W+4].kg:2,’)’);
poz1:
END;
#80:begin IF W<3 THEN GOTO POZ2 ;
IF vek[W+4].piket <> 0 THEN Begin
Dec(W);
GoToXY(04,18); WRITE((W):2,’.’,kenga(vek[W].kg):30,’ úú ‘,singer(vek[W].kg):20,’ úú ‘,vek[W-4].piket:2,'(‘:3,
vek[W].kg:2,’)’);
GoToXY(04,19); WRITE((W+1):2,’.’,kenga(vek[W+1].kg):30,’ úú ‘,singer(vek[W+1].kg):20,’ úú ‘,vek[W+1].piket:2,'(‘:3,
vek[W+1].kg:2,’)’);
GoToXY(04,20); WRITE((W+2):2,’.’,kenga(vek[W+2].kg):30,’ úú ‘,singer(vek[W+2].kg):20,’ úú ‘,vek[W+2].piket:2,'(‘:3,
vek[W+2].kg:2,’)’);
GoToXY(04,21); WRITE((W+3):2,’.’,kenga(vek[W+3].kg):30,’ úú ‘,singer(vek[W+3].kg):20,’ úú ‘,vek[W+3].piket:2,'(‘:3,
vek[W+3].kg:2,’)’);
GoToXY(04,22); WRITE((W+4):2,’.’,kenga(vek[W+4].kg):30,’ úú ‘,singer(vek[W+4].kg):20,’ úú ‘,vek[W+4].pIket:2,'(‘:3,
vek[W+4].kg:2,’)’);END;
POZ2:
end;

#27: GoTo FUNDI;END;GoTo FILL;END;fundi:DESKTOPI;END;
{Fundi i procedur‰s q‰ liston k‰ng‰t fituese}
(****************************************************************************)

(****************************************************************************)
PROCEDURE DetyraApp.kerkesa_b; {SHFAQ Kenget simbas rENDit te preferencave }
CONST
c = ‘ Emri Mbiemri Mosha Nr.Rekordit ‘;
d = ‘ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ’;
ma =’1.Meshkuj (t‰ anketuar) ‘; fe= ‘2.Femra (t‰ anketuara) ‘;
mbi=’Mbi 25 vje‡’; nen=’N‰n 25 vje‡’;
type str = RECORD Kg:BYTE; piket:BYTE; end;
fit = ARRAY [1..3] OF BYTE;
VAR i:BYTE; rec:pergjigje; f1: FILE OF pergjigje;
FlSize:BYTE; ch,ch2: CHAR; Fituese:fit;
flag_mbi,flag_nen,enter_flag:BOOLEAN;
LABEL lart,poshte,fundi,lex,ask,ask2,ask3,go;

(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *)

Procedure mM25(fituese:fit);
VAR i,k,lr,j:INTEGER; rec:pergjigje; f1: FILE OF pergjigje;
pr,tmp,fll,fnd:BYTE; Personi:ARRAY [1..n]OF BYTE;
what: CHAR; Flag:BOOLEAN;
LABEL fund,lex,sss;
BEGIN ASSIGN (f1,’a:\anketa.ahm’); Ngj(0,11); box(10,3,70,23); GoToXY(22,2);
for i:= 1 to n do personi[i]:=0; pr:=0;j:=0;
reset(f1);
while not eOF(f1) do begin
READ (f1,rec); pr:=pr+1;
IF ((rec.g = m) and (rec.mosha > 25) ) THEN begin flag := true;
for k:= 1 to 5 do for lr:= 1 to 3 do IF (flag=true) THEN
IF rec.zgjedhja[k] = fituese[Lr] THEN
begin j:=j+1;personi[j]:= pr;flag:=FALSE; end; end; end;
pr:=0; Ngj(0,11); GoToXY(11,4);write(c);GoToXY(11,5);write(d); Ngj(1,11);
begin for i := 1 to j do begin
SEEK(f1,personi[i]-1);READ (f1,rec); GoToXY(11,5+i);
Write(rec.Emer:15,’ ‘,rec.mbiemer:15,’ úúú ‘);
write(rec.mosha:3,’ úúú ‘,personi[i]:3);
end; sss:what:=READKey;if (what <> #27) THEN GoTo sss;
GoTo fund; end;
lex: what:=READKey;
CASE what OF #27: begin DESKTOPI; GoTo fund; end;
ELSE GoTo lex; end; fund: end; {fundi i procedures mM25}

(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *)

Procedure mN25(fituese:fit);
VAR i,k,lr,j:INTEGER; rec:pergjigje; f1: FILE OF pergjigje;
pr,tmp,fll,fnd:BYTE; Personi:ARRAY [1..n]OF BYTE;
what: CHAR; Flag:BOOLEAN;
LABEL fund,lex,sss;
BEGIN ASSIGN (f1,’anketa.dat’); Ngj(0,11); box(10,3,70,23); GoToXY(22,2);
for i:= 1 to n do personi[i]:=0; pr:=0;j:=0;
reset(f1);
while not eOF(f1) do begin
READ (f1,rec); pr:=pr+1;
IF ((rec.g = m) and (rec.mosha < 25) ) THEN begin flag := true;
for k:= 1 to 5 do for lr:= 1 to 3 do IF (flag=true) THEN
IF rec.zgjedhja[k] = fituese[Lr] THEN
begin j:=j+1;personi[j]:= pr;flag:=FALSE; end; end; end;
pr:=0; Ngj(0,11); GoToXY(11,4);write(c);GoToXY(11,5);write(d); Ngj(1,11);
begin for i := 1 to j do begin
SEEK(f1,personi[i]-1);READ (f1,rec); GoToXY(11,5+i);
Write(rec.Emer:15,’ ‘,rec.mbiemer:15,’ úúú ‘);
write(rec.mosha:3,’ úúú ‘,personi[i]:3);
end; sss:what:=READKey;if (what <> #27) THEN GoTo sss;
GoTo fund; end;
lex: what:=READKey;
CASE what OF #27: begin DESKTOPI; GoTo fund; end;
ELSE GoTo lex; end; fund: end; {fundi i procedures mM25}

(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *)

Procedure fM25(fituese:fit);
VAR i,k,lr,j:INTEGER; rec:pergjigje; f1: FILE OF pergjigje;
pr,tmp,fll,fnd:BYTE; Personi:ARRAY [1..n]OF BYTE;
what: CHAR; Flag:BOOLEAN;
LABEL fund,lex,sss;
BEGIN ASSIGN (f1,’anketa.dat’); Ngj(0,11); box(10,3,70,23); GoToXY(22,2);
for i:= 1 to n do personi[i]:=0; pr:=0;j:=0;
reset(f1);
while not eOF(f1) do begin
READ (f1,rec); pr:=pr+1;
IF ((rec.g = f) and (rec.mosha > 25) ) THEN begin flag := true;
for k:= 1 to 5 do for lr:= 1 to 3 do IF (flag=true) THEN
IF rec.zgjedhja[k] = fituese[Lr] THEN
begin j:=j+1;personi[j]:= pr;flag:=FALSE; end; end; end;
pr:=0; Ngj(0,11); GoToXY(11,4);write(c);GoToXY(11,5);write(d); Ngj(1,11);
begin for i := 1 to j do begin
SEEK(f1,personi[i]-1);READ (f1,rec); GoToXY(11,5+i);
Write(rec.Emer:15,’ ‘,rec.mbiemer:15,’ úúú ‘);
write(rec.mosha:3,’ úúú ‘,personi[i]:3);
end; sss:what:=READKey;if (what <> #27) THEN GoTo sss;
GoTo fund; end;
lex: what:=READKey;
CASE what OF #27: begin DESKTOPI; GoTo fund; end;
ELSE GoTo lex; end; fund: end; {fundi i procedures mM25}

(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *)

Procedure fN25(fituese:fit);
VAR i,k,lr,j:INTEGER; rec:pergjigje; f1: FILE OF pergjigje;
pr,tmp,fll,fnd:BYTE; Personi:ARRAY [1..n]OF BYTE;
what: CHAR; Flag:BOOLEAN;
LABEL fund,lex,sss;
BEGIN ASSIGN (f1,’anketa.dat’); Ngj(0,11); box(10,3,70,23); GoToXY(22,2);
for i:= 1 to n do personi[i]:=0; pr:=0;j:=0;
reset(f1);
while not eOF(f1) do begin
READ (f1,rec); pr:=pr+1;
IF ((rec.g = f) and (rec.mosha < 25) ) THEN begin flag := true;
for k:= 1 to 5 do for lr:= 1 to 3 do IF (flag=true) THEN
IF rec.zgjedhja[k] = fituese[Lr] THEN
begin j:=j+1;personi[j]:= pr;flag:=FALSE; end; end; end;
pr:=0; Ngj(0,11); GoToXY(11,4);write(c);GoToXY(11,5);write(d); Ngj(1,11);
begin for i := 1 to j do begin
SEEK(f1,personi[i]-1);READ (f1,rec); GoToXY(11,5+i);
Write(rec.Emer:15,’ ‘,rec.mbiemer:15,’ úúú ‘);
write(rec.mosha:3,’ úúú ‘,personi[i]:3);
end; sss:what:=READKey;if (what <> #27) THEN GoTo sss;
GoTo fund; end;
lex: what:=READKey;
CASE what OF #27: begin DESKTOPI; GoTo fund; end;
ELSE GoTo lex; end; fund: end; {fundi i procedures mM25}

(* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *)

Procedure jep_fit(VAR fituese:fit;VAR flsize:BYTE);
VAR i,j,gama:INTEGER; vektor:ARRAY [1..n]OF BYTE; vek:ARRAY [1..n]OF str;
temp:str;
begiN ASSIGN (f1,’anketa.dat’); reset(f1);
for i:= 1 to n do begin {Pastrohet vektori VEKTOR }
vektor[i] := 0; vek[i].piket := 0; vek[i].kg := 0; end;

while not eOF(f1) do begin READ (f1,rec);
for j:= 1 to 5 do begin
gama:= rec.zgjedhja[j]; IF (gama > 0) and (gama <= N) THEN
vektor[gama]:= vektor[gama] + 1; end; end;
close(f1);
for i:= 1 to n do begin
vek[i].piket := vektor[i];vek[i].kg:=i;end;
for i:= 1 to n do for J:= i+1 to n do
begin IF vek[i].piket < vek[j].piket THEN begin
temp.piket:=vek[i].piket;temp.kg:=vek[i].kg;
vek[i].piket:=vek[j].piket;vek[i].kg:=vek[j].kg;
vek[j].piket := temp.piket; vek[j].kg:=temp.kg;
end; end; for i:= 1 to 3 do fituese[i]:= vek[i].kg; end;
begin
go: desktopi; Ngj(7,1); box(16,8,65,16);
GoToXY(22,11);Write(‘ Zgjidhni kategorin‰ q‰ ju intereson.’);
GoToXY(22,12);Write(‘* * * * * * * * * * * * * * * * * * *’);
ask: GoToXY(30,13);Ngj(12,1);Write(ma); GoToXY(30,14);Write(fe);Ngj(0,15);
ch:=READKey;CASE ch OF
‘1’,’m’,’M’:begin Ngj(12,1);GoToXY(25,14);Write(fe);
Ngj(1,white); GoToXY(25,13);Write(ma);
box(49,13,63,16);Ngj(white,red); GoToXY(51,14);Write(nen);Ngj(1,7);
GoToXY(51,15);Write(Mbi);GoToXY(52,15);
flag_mbi:=true;Flag_nen:=FALSE;GoToXY(1,25);
ask2:ch2:=READKey;
CASE ch2 OF
#32:begin IF (flag_mbi=true) THEN begin
flag_mbi:=FALSE;flag_nen:=true;;Ngj(15,red);
GoToXY(51,15);Write(Mbi);GoToXY(52,15); Ngj(1,7);
GoToXY(51,14);Write(Nen);Ngj(1,7);GoToXY(1,1);
GoTo ask2;end
ELSE begin flag_mbi:=true;flag_nen:=FALSE; Ngj(1,7);
GoToXY(51,15);Write(Mbi);GoToXY(52,15); Ngj(15,red);
GoToXY(51,14);Write(Nen);GoToXY(1,1);GoTo ask2;
end; end;

#13:begin jep_fit(fituese,flsize);
IF (flag_mbi=FALSE) THEN begin mM25(fituese); GoTo go;end
ELSE begin mN25(fituese); GoTo go;end; end;

#27:begin desktopi; Ngj(7,1); box(16,8,65,16);
GoToXY(22,11);Write(‘ Zgjidhni kategorin‰ q‰ ju intereson.’);
GoToXY(22,12);Write(‘* * * * * * * * * * * * * * * * * * *’);
GoToXY(30,13);Ngj(12,1);Write(ma);
GoToXY(30,14);Write(fe);Ngj(0,15);
GoTo ask;end;
ELSE GoTo ask2;end;
end;
‘2’,’f’,’F’:begin;
Ngj(1,7);
GoToXY(25,14);Write(fe);
box(49,14,63,17);Ngj(white,red);
GoToXY(51,15);Write(nen);Ngj(1,7);
GoToXY(51,16);Write(Mbi);GoToXY(52,15);
flag_mbi:=true;Flag_nen:=FALSE;GoToXY(1,25);

ask3:ch2:=READKey;
CASE ch2 OF
#32:begin IF (flag_mbi=true) THEN begin
flag_mbi:=FALSE;flag_nen:=true; Ngj(15,red);
GoToXY(51,16);Write(Mbi);Ngj(1,7);
GoToXY(51,15);Write(Nen);Ngj(1,7);GoToXY(1,1);
GoTo ask3;end
ELSE begin flag_mbi:=true;flag_nen:=FALSE;Ngj(1,7);
GoToXY(51,16);Write(Mbi);Ngj(15,red);
GoToXY(51,15);Write(Nen);GoToXY(1,1);GoTo ask3;
end; end;
#13:begin jep_fit(fituese,flsize);
IF (flag_mbi=FALSE) THEN begin fM25(fituese);
GoTo go;end
ELSE begin fN25(fituese); GoTo go;end;end;
#27:begin
DESKTOPI; Ngj(7,1); box(16,8,65,16);
GoToXY(22,11);Write(‘ Zgjidhni kategorin‰ q‰ ju intereson.’);
GoToXY(22,12);Write(‘* * * * * * * * * * * * * * * * * * *’);
GoToXY(30,13);Ngj(12,1);Write(ma);
GoToXY(30,14);Write(fe);Ngj(0,15);
GoTo ask;end;
ELSE GoTo ask3;end;
end;
#27:GoTo fundi;
ELSE exit;end;
fundi: end; { Fundi i procedures Pergjigje_B. }
(****************************************************************************)

(****************************************************************************)
{Procedura p‰r shtimin e t‰ dhenave}
PROCEDURE DetyraApp.shto;
CONST
a = ‘Nr.Rendor Titulli K‰ndon’;
b = ‘ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ’;
type str = RECORD Kg:BYTE; kendon:BYTE; END;
LABEL poz1,poz2,fill,fundi,lex,fp,b1,a1,a2,a3,funi;
VAR i,l:INTEGER; emri,mbiemri:STRING [15]; f1: FILE OF pergjigje;
rec,rec2:pergjigje; ch: CHAR; abort:BOOLEAN; ik,kk:BYTE; ch1: CHAR;
Begin
ASSIGN (f1,’Anketa.dat’); box(3,2,33,12); Ngj(1,7); a3:
GoToXY(5,3);WRITE(‘Emri….: ‘);
GoToXY (15,3); rec.emer:=Merr_str(15,abort);
IF (abort=true) THEN GoTo fundi;
GoToXY(5,4); WRITE(‘Mbiemri.: ‘);
GoToXY (15,4);rec.mbiemer:=Merr_str(15,abort);
if (abort=true) THEN GoTo fundi;
GoToXY(5,5);WRITE(‘Mosha…: ‘);
GoToXY (15,5);rec.mosha:=Merr_num(2,abort);
if (abort=true) THEN GoTo fundi;
GoToXY(5,6);WRITE(‘Gjinia..: ‘);
a1: ch:= READKey;GoToXY(15,6);
CASE upCASE(ch) OF
‘M’:Begin rec.g := m;WRITEln(‘Mashkull’);GoTo a2;END;
‘F’:Begin rec.g:= f ;WRITEln(‘Fem‰r ‘);GoTo a2;END;
ELSE GoTo a1; END;
a2: FOR i:= 1 TO 5 DO Begin GoToXY (5,6+i);WRITE(‘Preferenca ‘,i,’: ‘);
rec.zgjedhja[i]:=merr_num(3,abort);END;RESET(f1); l:=FileSize(f1);
SEEK(f1,l);
WRITE(f1,rec);
close(f1);
FUNDI:DesktopI;
END;
{Fundi i procedur‰s p‰r shtimin e t‰ dh‰nave}
(****************************************************************************)

(****************************************************************************)
{PROCEDURE e ndihm‰s}
PROCEDURE DetyraApp.Permbajtja;
LABEL poshte,lart;
VAR Help_File:text;Help_Context:STRING [70];b:BYTE;
Begin DESKTOPI;
ASSIGN (Help_File,’Ahm_Det.HLP’); RESET(Help_File);
Ngj(1,7); box (3,3,77,24); lart: FOR b:= 1 TO 20 DO
Begin READln(Help_File, Help_Context);
GoToXY(5,3+b); WRITE(Help_Context); END;
poshte: prit; desktopi; END;
{Fundi i procedur‰s s‰ Ndihm‰s}
(****************************************************************************)

(****************************************************************************)
{PROCEDURE e Aplikacioneve t‰ Programit}
PROCEDURE DetyraApp.HandleEvent(VAR Event: TEvent);
LABEL a1;
VAR R: TRect;
Begin INHERITED HandleEvent(Event); IF Event.What = evCommand THEN
Begin
CASE Event.Command OF
cmNew: Begin shto; ClearEvent(Event); DESKTOPI END;
cmAbout: Begin DOAboutBox; ClearEvent(Event); DESKTOPI;END;
cmHelp: Begin Permbajtja; ClearEvent(Event); DESKTOPI;END;
cmUnDO: Begin Te_anketuarit; ClearEvent(Event); DESKTOPI;END;
cmPaste: Begin Write(‘Ahmet’); ClearEvent(Event); DESKTOPI;END;
cmCut: Begin Kerkesa_a; ClearEvent(Event); DESKTOPI;END;
cmClear: Begin kerkesa_b; clearEvent(Event); desktopi; END;
cmSave: Begin lista_kenge; clearEvent(event); DESKTOPI;END;
cmCloseAll: Begin ClearEvent(Event);END;
cmClose: Begin clearEvent(event)END;
END; END; END; {Fundi i procedur‰s s‰ Aplikacioneve t‰ Programit}
(****************************************************************************)

(****************************************************************************)
{Procedura p‰r inicializimin e menys‰}
PROCEDURE DetyraApp.InitMenuBar;
VAR R: TRect; d:STRING;
Begin
GetExtent(R); R.B.Y := R.A.Y + 1;
MenuBar := New(PMenuBar, Init(R, NewMenu(
NewSubMenu(‘~S~kedar‰’, hcNoContext, NewMenu(
NewSubMenu(‘~A~nketimi’, hcNoContext, NewMenu(
NewItem(‘Sh~t~o rekord’,’Alt+T’, kbAltT, cmnew, hcnocontext,
NewItem(‘T‰ a~n~ketuarit’,’Alt+N’, kbAltN, cmUnDO, hcnocontext,
nil))),
NewItem(‘~L~ista e k‰ng‰ve’,’Alt+L’,kbAltL,cmSave,hcnocontext,
NewItem(‘O~S~ Shelli’,’F9′, kbf9, cmDosShell, hcnocontext,
NewItem(‘~D~alja’,’Alt+x & F1O’, kbAltX, cmQuit, hcnocontext,
nil))))),
NewSubMenu(‘~K~‰rkesa’, hcNoContext, NewMenu(
NewItem(‘K‰rkesa ~A~’,’Alt A’, kbAltA, cmCut,hcNoContext,
NewItem( ‘K‰rkesa ~B~’,’Alt+B’,kbaltB,cmClear,hcNoContext,nil))),
NewSubMenu(‘Nd~i~hma’, hcNoContext, NewMenu(
NewItem(‘~P~‰mbajtja’,’ F1′, kbF1, cmHelp, hcNoContext,
NewItem(‘~R~reth…’,’ F2′, kbF2, cmAbout, hcNoContext,nil))),nil))))));
END; {Fundi i procedur‰s p‰r inicializimin e menys‰}
(****************************************************************************)

(****************************************************************************)
{Procedura p‰r inicializimin e rreshtit t‰ statusit}
PROCEDURE DetyraApp.InitStatusLINE ;
VAR R: TRect;
Begin
GetExtent(R); R.A.Y := R.B.Y – 1;
New(StatusLINE , Init(R,
NewStatusDef(0, $EFFF,
NewStatusKey(‘~F1~ Ndihma’,kbF1,cmHelp,
NewStatusKey(‘~F2~ Rreth’,kbF2,cmAbout,
NewStatusKey(‘~F10~ Dalja’,kbF10,cmQuit,
NewStatusKey(‘~Alt+A~ K‰rkesa a’,kbAltA,cmCut,
NewStatusKey(‘~Alt+L~ K‰ng‰t’,kbAltA,cmSave,
NewStatusKey(‘~Alt+T~ Shto’,kbAltA,cmNew,
StdStatusKeys(nil))))))), NewStatusDef($F000, $FFFF,nil,nil))));
END;
{Fundi i procedur‰s p‰r inicializimin e rreshtit t‰ statusit}
(****************************************************************************)

(****************************************************************************)
{Deklarimi i Variablave global}
VAR Detyre: DetyraApp;
Rec:pergjigje;
{Fundi i bllokut t‰ deklarimit t‰ Variablave}
(****************************************************************************)

(****************************************************************************)
{Trupi i programit}
Begin
{ intro;}
ShowMouse;
Detyre.Init;
Detyre.Run;
Detyre.Done;
END.
{Fundi i programit}
(****************************************************************************)

(****************************************************************************

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Programi u punua nga studenti i Kursit t‰ I-r‰ D Ahmet Murati *
* 1999-2000 *
* UT Tiran‰ *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

(****************************************************************************)

Computers

Problems with Gmail password in Chrome – Solution.

Initially posted on LinkedIn under my account on October 31, 2016.

Since over several weeks I had to change the passwords because due to many long days I did not remember the password. Nor the Google Chrome.

Last night, after a long day, I decided to check on internet if there is a solution to resolve this issue with Gmail and Google Chrome. Apparently, no clear solution or any recipe to resolve this issue did worked in my case. But, many of the threads of messages in Google message boards were locked on so no one could reply.

I tried to add my account using SQLite Browser but now way to set the password into a blob. I disconnected my account from Chrome and logged in again and no luck.

About two hours after midnight I decided to open my account in Mozilla Firefox and I saved the password there. And then I opened the Chrome and clicked Menu -> Settings

And then clicked Import and waited a bit and the process was finished. I opened the Saved Passwords and my new pass was there.

So, no third party tools needed just Mozilla Firefox and Chrome and issue is resolved.

Computers

Gjeokodim i mbrapshtë me Google dhe Excel

Ky tutorial i shkurtë do t’iu mundësojë se si të punoni me skedarët Excel direkt nga C# përmes librarisë interop të Excel që ofrohet nga Microsoft. Pastaj, në të shkruan edhe si të shkruhet në qeliza të dëshiruara të skedarit Excel.

Gjithashtu, në këtë tutorial do të mësohet se si të konsumohet një JSON dhe të parsohet në objekt të C#.

Nëse ju lind nevoja të kërkoni informata të ndryshme nga Google Maps si për shembull e keni emrin e qytetit por nuk e dini se nga cili vend vjen atëherë ekziston mundësia që të ndërlidhet kodi i C# me Google Maps dhe të bësh kërkimin e të dhënave të vendit.

Së pari e përgatit një listë në Excel
Imazhi1

Pastaj duhet të shkarkohet NewtonJson pakoja që mund të instalohet edhe përmes PowerShell por edhe në mënyrën manuale por duhet të keni parasysh që kur e zgjidhni librarinë (DLL) përkatëse duhet të përkojë me versionin e .Net kornizës në të cilën punohet aplikacioni.

Instalimi përmes PowerShell Nuget. Së pari përmes menysë Tools e zgjedhni NuGet Package Manager dhe pastaj Package Manager Console

image2
Dhe më pas paraqitet pamja si në vijë dhe duhet shkruar teksti ”

Install-Package Newtonsoft.Json"

image3

Dhe pastaj e shtypni Enter.

Pas shkarkimit të pakos duhet të shkoni te “References” te Project edhe pastaj “Add Reference”

image5

Pasi që të klikojmë te ky opsion te kutia e kërkimit e kërkojnë për libraritë me emrin Excel por libraria duhet të jetë interop që do të na lejojë mundësinë e ndërveprimit mes skedarit Excel dhe  punëve tona.

 

Image6

Pastaj na del kështu pasi që të kemi zgjedhur versionin e fundit të librarisë interop dhe shtypin pullën OK. Pastaj na listohet në këtë mënyrë.
Nëse edhe libraria Newtonsoft.Json mungon nga këtu atëherë vazhdohet si në hapin paraprak por këtu klikojmë Browse dhe pastaj e zgjedhim librarinë e kompiluar në versionin përkatës. Në këtë projekt është përdorur korniza e punës .Net 4.5.2.

image7

Kodimit të projektit.

Për të na lehtësuar punën e kodimit së pari e marrim JSon-in dhe e kthejmë në C#.

https://maps.googleapis.com/maps/api/geocode/json?address=Tiran%C3%AB&sensor=false&key={për ta pasur të lehtë punën e gjeneroni një qelës nga Google Maps API dhe e aktivizoni Geocoding te një projekt të juajin ose e krijoni një projekt aty}

Krijimi i qelësit për shërbimit të Google Geocoding bëhet në këtë mënyrë

Së pari hapet adresa

https://console.developers.google.com/apis/dashboard?

Pastaj, ju kërkon të kyçeni me llogari të Gmail dhe pastaj mund të shkoni te projektet tuaja ose të krijoni projekt të ri.

image8

Pastaj ju paraqitet kjo pamje dhe duhet të klikoni te “Credentials”

image9

Pasi të kemi klikuar Credentials na paraqitet një formë me ca shpjegime por ju duhet të klikoni te Create Credentials dhe pastaj ta zgjedhin API key

image10

Dhe pastaj duhet të klikoni Browser Key.image11

Na paraqitet pamja në vijim:

image12

Dhe këtu duhet të klikojmë Create dhe na gjenerohet si në vijim:

image13

Kodin e gjeneruar duhet ta kopjojmë e kjo mund të bëhet përmes ikonës në të djathtë të qelësit. Pastaj ky kod duhet të vendoset te pjesa e key=

https://maps.googleapis.com/maps/api/geocode/json?address=Tiranë&sensor=false&
key=AIzaSyDqSlwh58jd8dbz18h5qn15v59sqYR-3vc

Dhe pastaj mund të bëjmë kërkesa që të na jep të dhënat e duhura:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Tiranë",
               "short_name" : "Tiranë",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Tiranë",
               "short_name" : "Tiranë",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Qarku i Tiranës",
               "short_name" : "Qarku i Tiranës",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "Shqipëria",
               "short_name" : "AL",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Tiranë, Shqipëria",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 41.366841,
                  "lng" : 19.8820781
               },
               "southwest" : {
                  "lat" : 41.2951234,
                  "lng" : 19.7535681
               }
            },
            "location" : {
               "lat" : 41.3275459,
               "lng" : 19.8186982
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 41.366841,
                  "lng" : 19.8820781
               },
               "southwest" : {
                  "lat" : 41.2951234,
                  "lng" : 19.7535681
               }
            }
         },
         "place_id" : "ChIJ28X6cAQxUBMRIDdlEK-SAAQ",
         "types" : [ "locality", "political" ]
      }
   ],
   "status" : "OK"
}

Shënim: Që të mund ta merrni këtë së pari duhet të aktivizoni API e Geocoding

image14image15

Pjesa e dytë:
Këtu e kthejmë objektin JSON në klasa të C# me anë të uebfaqes

http://json2csharp.com/

Dhe fitohet kjo

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace ReversGeoCodeByCity
{


public class AddressComponent
{
public string long_name { get; set; }
public string short_name { get; set; }
public List<string> types { get; set; }
}


public class Northeast
{
public double lat { get; set; }
public double lng { get; set; }
}


public class Southwest
{
public double lat { get; set; }
public double lng { get; set; }
}


public class Bounds
{
public Northeast northeast { get; set; }
public Southwest southwest { get; set; }
}


public class Location
{
public double lat { get; set; }
public double lng { get; set; }
}


public class Northeast2
{
public double lat { get; set; }
public double lng { get; set; }
}


public class Southwest2
{
public double lat { get; set; }
public double lng { get; set; }
}


public class Viewport
{
public Northeast2 northeast { get; set; }
public Southwest2 southwest { get; set; }
}


public class Geometry
{
public Bounds bounds { get; set; }
public Location location { get; set; }
public string location_type { get; set; }
public Viewport viewport { get; set; }
}


public class Result
{
public List<AddressComponent> address_components { get; set; }
public string formatted_address { get; set; }
public Geometry geometry { get; set; }
public string place_id { get; set; }
public List<string> types { get; set; }
}


public class RootObject
{
public List<Result> results { get; set; }
public string status { get; set; }
}


}

Këtë e ruajmë për shembull si skedarë .cs me merin Objects.cs.

 

Dhe rezultati

image16

I tërë kodi mund të shkarkohet nga këtu:

Kodi i projekti

ComputersLajme

VoCore: Kompjuteri Mini Linux

Burimi: https://deals.geekwire.com/sales/vocore-dock-a-coin-sized-linux-computer?utm_source=geekwire.com&utm_medium=referral&utm_campaign=vocore-dock-a-coin-sized-linux-computer

a21aee697d974dc9893d683674ffc5a194390a90_main_hero_imagePërshkrimi

Pllakat mini kompjuter po bëhen dita ditës më të popullarizuara—por asnjëra nuk ka qenë kaq e vogël dhe eevolitshme si VoCore. Me këtë mini makinë Linux, ju mund ta bëni një router të vogël, të shpikni pajisje të reja, ndërtoni një pllakë amë, ose ripërdorni altoparlantët tuaj në një version të mençur pa tela. Dimensionet e vogla të saj ju mundëson: ta përdorni si një pajisje e veçantë që e shfrytëzon OpenWrt ose përdore si një komponentë e ngulitur e një sistemi më të madh. Me pak njohuri në elektronikë dhe me dokun që e zgjerohet në  Eternet dhe porte USB, bota elektronike e jua është perla juaj.

  • Punon në hardver me kod të hapur
  • Ofron 20 GPIO linja
  • Shfrytëzon OpenWRT Linux
  • Përfshinë një adapter në pllakë Wi-Fi ashtu që juve nuk iu duhet një i jashtëm
  • Lidhet lehtësisht në pajisje periferike
  • Dimensionet e vogla e aftëson atë si në pajisje e ngulitur
  • Zgjerohet në ndërfaqës Eternet & USB me dokun
  • Operon si në  router Wi-Fi i plotë 2.4GHz
  • Aktron si një kompjuter me energji të ultë për IoT aplikacione
  • Përfshinë dizajnit e plotë harduerik dhe kodin burimin
  • Integron 802.11n MAC, baseband, radio, FEM & 5-port 10/100Mbps Ethernet switch

Specifikat

  • Dimensione: 2.49 cm gjatësi, 2,49 cm gjerësi (0.98″L x 0.98″W)
  • Sistemi operativ: OpenWrt
  • Memoria e sistemit: 32 MB RAM
  • Kapaciteti: 8MB SPI Flash (për firmware)
  • Rangu i voltazhës hyrëse-dalëse: 3.3V deri 6V
  • Konsumimi i energjisë : 200-220mA
  • Procesori: Ralink/Mediatek 360 MHz RT5350 MIPS
  • Transferi: deri në 150Mbps
  • Dual band 802.11n Wi-Fi
  • Ndërfaqësit përfshijnë:
    • 5-port 10/100M Ethernet switch
    • USB
    • UART
    • Software I2C
    • Hardware SPI
    • I2S, PCM
    • JTAG
    • Over 20 GPIO links

Shënim: I duhet furnizim stabil i energjisë ; mbushës telefoni 5.0V USB rekomandohet. Temperatura e lartë dhe elektriciteti statik do të shkaktojnë dëmtim permanent. Maksimumi i salduesit është 260C në 6 sekonda.

Përfshinë:

  • VoCore computer
  • Dock
  • Dizajnin e plotë harduerik
  • Kodi i plotë duke përfshirë edhe ngarkuesin fillestar (boot loader)

Posta

  • Dërgim falas
  • Dërgohet: Vetëm në SHBA
Dërgesa i pritur: Apr 21 – Apr 24
Dërgesa ndërkombëtare e pritur: Apr 21 – Apr 24

Termet

  • Të gjitha shitjet janë finale
ComputersIT SecurityLajme

Nëse keni parë reklama të padëshiruar në Skype

Nëse keni pas rast të shihni reklama të padëshiruara në dritaren e Skype një nga mënyrat më të lehta për ta bllokuar këtë është ta hapni skedarin hosts nga
C:\Windows\System32\drivers\etc\hosts
por me privilegje administrative pasi që nuk ju lejon ta ruani

 

Aty e shtoni rreshtin në vijim

127.0.0.1:8084 https://apps.skype.com

edhe me këtë sa herë që skype tenton të kyçet te kjo adresë kompjuteri ia referon adresën e dhënë dhe nuk merr asnjë përgjegjje dhe rrjedhimisht reklamat e padëshiruara më nuk dalin.

 

Computers

Adobe konfirmon cënueshmëri te madh në Flash . Mënyra e vetme të jeni të sigurt largojeni Adobe Flash nga kompjuteri

Vetëm pas një ditë që Adobe plasoi përditësime për programet e veta është gjetur një lëshim serioz në Adobe Flash Player për më shumë

“Një cënueshmëri kritike (CVE-2015-7645) është identifikuar në Adobe Flash Player 19.0.0.207 si dhe në versioniet paraprake  për  Windows, Macintosh dhe Linux,” Adobe shkroi në një bulletin sigurie të postuar në uebfaqene. “Eksploatim i suksesshëm mund të shkaktojë një prishje dhe potencialisht të lejojë një sulmues ose më shuml që të marrin kontrollin e sistemit të prekur.”

Rekomandohet ta largoni, deinstaloni apo ta fshini nga kompjuteri juaj menjëherë. Videot në internet si Youtube, Video etj. përcaktojeni t’i shfaq në HTML Video.

Unë për vete, e kam hequr Adobe Flash nga kompjuter të paktën para 8 muajsh. Kështu që ju rekomandoj menjëherë ta hiqni gjersa nuk është bërë vonë e të humbisni jo vetëm qasjen në kompjuter por edhe të dhënat si për shembull të e-banking etj.