Você está na página 1de 33

e ditorial

Evol
uo

Entre tanto, o nosso proje cto continua a cre sce r, tanto e m


nm e ro de participante s com o e m contrib uie s. Num a re vista
de ste tipo, q ue vive das contrib uie s dos m e m b ros e da
varie dade de stas, se m pre im portante m ante r um grupo
activo de re dactore s e outro grupo de m e m b ros q ue
participam ocasional
m e nte . Este ob je ctivo te m sido cum prido
at agora, re sul
tando num a pub l
icao se m pre com posta por
conte dos variados, re q ue sito ne ce ssrio num a re a to vasta
com o a da program ao de com putadore s.
Espe ram os q ue as al
te rae s e fe ctuadas se jam do vosso
agrado e prom e te m os continuar a prosse guir os nossos
ob je ctivos principais: ch e gar a cada ve z m ais program adore s e
atrair cada ve z m ais ge nte para o nosso m undo.

<2>

Srgio Santos

Este proje cto continua e m e vol


uo e ne sta e dio isso se r
m ais visve lq ue nunca. Um a m udana de visualfoi al
go q ue
nos e ra pe dido nos com e ntrios sob re as ante riore s e die s.
Para auxil
iar e sta m udana, usm os um
program a
propriam e nte de stinado a pub l
icae s, o Scrib us. Tam b m
ope n-source e , e m b ora possua ainda al
guns de fe itos, com o na
e dio de te xto, possib il
itou-nos a re vol
uo grfica de sta
e dio, para m e l
h or ou pior de pois sab e re m os, m as gostm os
dos re sul
tados.

notcias

SH IFT
Vai re al
izar-se na Unive rsidade Nova de Lisb oa, e ntre os dias 27 e 29 de
Se te m b ro de 2006, o Congre sso "Sh ift Socialand H um an Ide as for Te ch nol
ogy"
ce ntrado nas te cnol
ogias e m e rge nte s e no se u im pacto na vida das pe ssoas e
re spe ctivas com unidade s.
Sh ift um a confe rncia sob re o pape le as im pl
icae s da te cnol
ogia na
socie dade actual
, se rvios ce ntrados no util
izador, m ovim e ntos sociais q ue criam
novas re l
ae s sociais e te cnol
ogia q ue m e l
h ora a nossa vida diria. Te m com o
pb l
ico-al
vo, e urope us e ntusiastas da te cnol
ogia, com principalincidncia para o
pb l
ico portugus e e spanh ol
.
Te m as propostos para e ste ano:
- A re l
ao e ntre Pe ssoas e Te cnol
ogia
- Ge sto do Conh e cim e nto
- O s Bl
ogs e as novas form as de participao cvica
- Lib e rdade s e Privacidade nos m e ios digitais
M ais inform ae s:
w w w .sh ift.pt

Bugs e ncontrados nos


proce ssadore s da Inte l

novos

Num docum e nto disponib il


izado h
poucos dias, a Inte l inform ou os
util
izadore s q ue q ual
q ue r um dos
proce ssadore s Inte lCore 2 D uo re cm
ch e gados, possue m m ais de 60 b ugs
ide ntificados.
A pe nas 20 dos 60 b ugs te ro corre co
a curto-prazo, o q ue garante q ue
ne nh um dos outros, se gundo a Inte l
,
pre judicar o util
izador e m te rm os de
util
izao do siste m a, e xce po do
A I39 , q ue pode corrom p-l
o.

<3>

Googl
e aproxim a-se de novo m e rcado
Com o re ce nte l
anam e nto do novo
se rvio Googl
e , q ue possib il
ita util
izar o
dom nio do util
izador com o dom nio de e m ailnas contas Gm ail
, a e m pre sa norte am e ricana aproxim a as suas sol
ue s de
um pacote de produtividade O ffice .
R e ce b e ndo ainda grande parte dos se us
l
ucros de se rvios pub l
icitrios, a Googl
e j
l
anou dive rsos se rvios, com o fol
h as de
cl
cul
o, cal
e ndrios, conve rsao, q ue
possib il
itam
sol
ue s
sim pl
es
para
individuais e pe q ue nas e m pre sas.
Em b ora a e m pre sa ainda no te nh a
de cl
arado as suas inte ne s, cada ve z m ais
surge a ide ia q ue a Googl
e pre te nde
atingir um a nova re a de ne gcio, de sta
ve z com sol
ue s total
m e nte b ase adas e m
pl
ataform as w e b . R e sta-nos e spe rar pe l
o
q ue pode r surgir futuram e nte e ve rificar
se se tornar num a opo vive l ne ste
im portante m e rcado.

te m a de capa
e s m dicas, para l
e r sinais e l
ctricos
prove nie nte s de se nsore s (ECG, TAC) e
m e diante o proce ssam e nto de sse sinal
(transform adas Z , transform adas Fourie r,
fil
tros) ge rar dados q ue transm itam
inform ao tilaos Profissionais M dicos.

M icrocontrol
adore s
Este artigo te m com o ob je ctivos a
apre se ntao de M icrocontrol
adore s e a
de pe ndncia q ue h oje e m dia a e l
e ctrnica
no ge ral(R ob tica, D om tica, El
e ctrnica
Industrial
/R e side ncial
,
Te l
e com unicae s) te m dos m e sm os.
O s m icrocontrol
adore s so unidade s q ue
pode m se r program as e m l
inguage ns de
al
to nve l
, com o por e xe m pl
o C. Existe m
l
inguage ns de m ais b aixo nve l(asse m b l
y),
e m b ora se ja m ais difcilde de scre ve r um
al
goritm o, do ponto de vista do proje ctista
do circuito. Esta program ao confe re aos
circuitos
digitais
constitudos
por,
m icrocontrol
adore s/m icroproce ssadore s,
um a autonom ia e inte l
igncia, q ue de outra
m ane ira se ria m uito difcil
. Graas a e sta
inte l
igncia com e aram a se r usados e m
circuitos q ue re q ue re m al
gum a autonom ia
e capacidade de de ciso m e diante factore s
e xte rnos.
Estas
e norm e s
vantage ns
originaram o apare cim e nto de circuitos
inte l
ige nte s e capaze s de proce ssar e
re l
acionar a m ais variada inform ao.
Num sim pl
e s autom ve l
, a ce ntral
ina
(m icrocontrol
adore s e m paral
el
o) capaz
de
ao m e sm o te m po control
ar: a
com b usto, a e ne rgia consum ida, o ABS, o
ESP e as m ais variadas fune s. O uso de
m icrocontrol
adore s num R ob confe re -l
he
a capacidade para se de sviar de ob je ctos,
re conh e ce r a voz e outros sons, faze r
m ovim e ntos q ue vise m um ob je ctivo. Um
m icrocontrol
ador pode se r usado e m apl
ica-

<4>

Um
Microcontrol
ador um
circuito
inte grado, e m q ue num nico dispositivo
contm al
guns dos principais com pone nte s
ne ce ssrios re al
izao de Siste m as D igitais
Program ve is (m e m ria e o m ais variado
tipo de pe rifricos). Por sua ve z os
Microproce ssadore s, so fundam e ntal
m e nte
constitudos por um a ALU (arith m e tic and
l
ogic unit), re gistos de dados, TCU (tim e and
controlunit) e ne ce ssitam q ue a m e m ria e
os
pe rifricos
se jam
adicionados
e xte rnam e nte , com unicando com o CPU
custa de trs b arram e ntos (data, addre ss e
control
).
A vantage m de pode r te r um grande
nm e ro de pe rifricos disponve is de ntro
de um ch ip, torna os m icrocontrol
adore s
m uito atractivos e m proje ctos e l
e ctrnicos.
Ne ste e xe m pl
o se r usado o PIC 16F877
q ue um M icrocontrol
ador de se nvol
vido
pe l
a M icroch ip Te ch onol
ogy.

Este M icrocontrol
ador te m disponve is:
- Tim e rs/Counte r com Pre scal
er
- M dul
os de com parao, Pw m , captura
- AD C de 10 b its
- Synch ronous Se rialPort(SSP) com SPI e I2C
- Usart
- Portas I/O
- ...

te m a de capa
Q uando se com pra um PIC, o conte do da
sua m e m ria EPR O M S ve m vazia. Se r
ne ce ssrio re corre r a um Program ador
(e x: PicSTAR T da M icroch ip), afim de
e nviar para a EPR O M o cdigo do b ootl
oade r. O b oot-l
oade r o program a q ue
corre im e diatam e nte aps o "re se t" do PIC.
Q uando corre , vai te star a l
inh a srie e
ve rificar se e st al
gum program a "do outro
l
ado da l
inh a" a te ntar contactar com e l
e.
Caso e xista com unicao pe l
a l
inh a
srie /usb com o Program ador e nto e sse
cdigo se r e scrito na m e m ria EPR O M .
Este tipo de softw are (M PLAB e ntre outros)
disponib il
izado pe l
os fab ricante s a troco
de
al
guns
e uros
tal com o
os
program adore s, m as e xiste m al
te rnativas
tanto para program adore s com o para o
softw are , nom e adam e nte o PICP.
A m e m ria do PIC ir e star dividida. D uas
de ssas divise s dize m re spe ito m e m ria
onde e st o b oot-l
oade r e a outra onde ir
se r arm aze nada o cdigo re sponsve lpe l
o
funcionam e nto do PIC talcom o dados q ue
se jam guardados durante o m e sm o.

D EVICE-D R IVER S
Ne ste artigo se ro ab ordados os principais
de vice drive rs para um PIC. Este s de vice drive rs se ro a b ase para futuros proje ctos,
de sde os m ais sim pl
e s at aos m ais
com pl
e xos. Por e xe m pl
o, no control
o de
te m pe ratura de um proce sso trm ico, os
de vice -drive s te ro q ue :
- Faze r l
e itura da te m pe ratura indicada pe l
o
se nsor (te rm opar)
- Ligar e de sl
igar a re sistncia de aq ue cim e nto
- Le r e e scre ve r de inte rface s com o util
izador
(e x: te cl
ado do PC, displ
ay)
Assum indo q ue o PIC j te m de vidam e nte
o b oot-l
oade r configurado, passa-se ao
de se nvol
vim e nto do Softw are q ue se r
de se nvol
vido e m C e poste riorm e nte
com pil
ado (M PLAB) no form ato Inte l
-H e x.

<5>

Para um a m e l
h or com pre e nso do cdigo
de se nvol
vido aconse l
h ve l consul
tar o
D atash e e tdo PIC e m causa.
Mais um a ve z para sim pl
ificar o raciocnio
vam os assum ir q ue se e sto a re al
izar
de vice -drive rs para o control
o de um
proce sso trm ico. Assim a te m pe ratura se r
dada por um Te rm opar. O s Te rm opare s
ne ce ssitam de um a com pe nsao da sua
juno fria, aq ui ir-se assum ir q ue e l
a
fe ita por h ardw are e q ue e ntrada do PIC
ch e ga um sinalanal
gico com val
ore s e ntre
0 e 5 V.
Para control
ar a re sistncia ir-se re corre r a
um PW M (Pul
se w idth m odul
ation) com
duty-cycl
e varive l e sincronizado com a
re de .
Para sim pl
ificar a l
e itura, no se ir faze r
re fe rncia a todos os b its dos re gistos de
configurao, para talsuge re -se a consul
ta
do datash e e t afim de ve rificar o significado
dos b its de cada re gisto e m causa.
#DEVICE DRIVERS - PAP
#include <pic.h>
#include <stdlib.h>
#include "sci.h"
//////////CONSTANTES//////////
#define TermCh 0 //canal termopar
#define MEDIA 6 //N de leituras da ADC
#define T1_10MS 0xC350 //t1 value at
10ms

Todos os re gistos e portos do PIC so


tratados com o varive is, funcional
idade
pe rm itida pe l
o fich e iro pic.h , pois e ste indica
ao com pil
ador q uais os re gistos do PIC e e m
q ue e nde re o e b ancos de m e m ria e sto.
O fich e iro sci.h disponib il
izado pe l
a
Microch ip e onde e sto de scritos os
prottipos
das
fune s
usadas
nas
com unicae s pe l
a porta srie (R S-232).
A prim e ira tare fa a re al
izar se r configurar
os portos I/O
(PO R T_X e
TR IS_X),
e spe cificando se so portos de sada de
dados ou de e ntrada. O s portos usados com o

te m a de capa

e ntrada das AD C, inte rrupts de ve m se r


configurados com o e ntradas, ou se ja, os b its
dos re gistos de ve m ficar com o val
or de 1.
A m icroch ip disponib il
iza um conjunto de
fune s para uso e inicial
izao da USAR T.
// Function Prototypes:
void Sci_Init();
void Sci_PutChar(unsigned char);
unsigned char Sci_GetChar(void);
unsigned char Sci_GetFERR(void);
unsigned char Sci_CheckOERR(void);
void Sci_PutStr(const char* );
void Sci_PutNum (unsigned int num,
unsigned char n, unsigned char comma);

Estas fune s pode m se r usadas e m


q ual
q ue r parte do cdigo, e xce po da
Sci_Init, funo para re sponsve l pe l
a
inicial
izao da USAR T. Esta funo te m
q ue se r invocada ante s de q ual
q ue r um a
das outras, visto todas as outras faze re m
uso da USAR T.
void Sci_Init()
// 19.2kbps
{
BRGH = 1; /*high baud rate*/
SPBRG = 64; /*set the baud rate*/
SYNC = 0; /*asynchronous*/
SPEN = 1; /*enable serial port
pins*/
CREN = 1; /*enable reception*/
SREN = 0; /*no effect*/
TXIE = 0; /*disable tx interrupts*/
RCIE = 0; /*disable rx interrupts*/
TX9 = 0; /*8-bit transmission*/
RX9 = 0; /*8-bit reception*/
TRISC7 = 1; /*RX*/
TRISC6 = 0; /*TX*/
TXEN = 1; /*enable the transmitter*/
}
Um a das parte s m ais im portante s a
ob te no de dados e xte rnos, prove nie nte s
de
se nsore s
(te m pe ratura,
pre sso,
h um idade ,
al
ongam e ntos,
posio,
pie zoe l
ctricos, q um icos ). A apl
icao

<6>

dos se nsore s to vasta q ue vai de sde a


m e dicina at indstria autom ve l
. Os
grande s avanos ne stas re as de ve m -se
constante e vol
uo e dive rsificao dos
se nsore s. M as a m aioria de l
e s produz sinais
de
am pl
itude s
m uito
b aixas. Se r
ne ce ssrio
o
se u
corre cto
acondicionam e nto para q ue e ste s possam
se r
proce ssados
e
usados
por
M icroproce ssadore s. ne sta fase q ue
e ntram as AD Cs (Anal
ogic to D igital
Conve rte r)
pois
conve rte m
sinais
anal
gicos e m sinais digitais. O s PICs tm
AD Cs inb utidas, o q ue facil
ita e m m uito o
proje cto de h ardw are (custo, e spao,
consum o potncia )
void adc_read(unsigned char channel)
// L uma entrada analogica
{
ADCON0 = (channel << 3) + 0x81;
//Enable ADC No canal Cannel
//Acquisition time = 19.72uS
delay_uS(22); /*Espera 22us
(definida em delay.h) para carregar
completamente Chold e depende da
impedncia da fonte do sinal.*/
ADGO = 1;
}

Para dim inuir os e rros ine re nte s m e dio,


norm al
m e nte
faz-se
um a m dia de
conse cutivas l
e ituras da AD C. Supondo
q ue o sinalprove nie nte do te rm opar j
e st
de vidam e nte
acondicionado
e
dim e nsionado e nto um a possve lfuno
para aq uisio de dados da AD C se r:

te m a de capa
Assim , ne ce ssrio um de te ctor de
passage ns
por
ze ro,
circuito
e sse
im pl
e m e ntado custa de um sim pl
es
transstor. Este e ve nto pode se r idntico a
m uitos outros, tais com o, o e nch im e nto de
um a fil
a de e spe ra de um b uffe r de um
route r, control
o de pe rifricos num PC

void read_term(void)
{
unsigned char i;
adc_val=0;
ADCON1=0x00; //left justified

for(i=0;i<MEDIA;i++)
{
adc_read(TermCh);
while(ADGO); //espera pela
concluso da converso
adc_val +=ADRESH; // formata o
resultado
}
adc_val/=MEDIA; //return value
}

No caso do PIC 16f877 e xiste m 8 canais


para AD C (AN0..AN7). A AD C usada ne ste
caso de 8 b its = 2^8 = 256. Supondo q ue
se te m um sinalanal
gico, e ntrada da
AD C, varive le ntre 0 e 5 vol
ts, garantidos
pe l
o acondicionam e nto do sinal
, e nto
para 0Vte m -se adc_val
= 0 e para 5Vte m -se
adc_val
= 255. Este s val
ore s te ro q ue se r
tratados, se for ne ce ssrio, para q ue
te nh am um a corre spondncia com a
grande za m e dida.
No caso de se e star a actuar sob re um a
re sistncia, e nto o PW M te r q ue e star
sincronizado com a te nso de re de . Este
PW M te r um duty-cycl
e varive l e
proporcional ao te m po de actuao da
re sistncia. A tcnica do PW M m uito
pode rosa
para
control
ar
circuitos
anal
gicos (m otore s) atravs de circuitos
digitais (PIC).
Para q ue e xista sincronizao do PW M
com
a re de
(a m e nos
de
uns
nanosse gundos de dife re na) ne ce ssrio
q ue o PIC saib a q uando q ue e xiste um a
passage m por ze ro da te nso de re de .

<7>

O control
o do duty cycl
e do PW M se r
varive l(0.01% a 9 9 ,9 9 % ) e de pe nde nte da
te m pe ratura (ne ste caso). O val
or do duty
cycl
e e star de pe nde nte de um al
goritm o
de control
o (ram pa, PI, PI-D ). Para q ue se
possam usar e ste s al
goritm os ne ce ssrio
conh e ce r a dinm ica do sinal(ove rsh oot,
te m po sub ida, te m po e stab e l
e cim e nto),
pois os actuadore s tm nature zas fsicas
distintas e re age m de m ane iras dife re nte s.
Assim de ntro do program a, com os dados
ob tidos das conve rse s da AD C, cal
cul
a-se o
val
or corre cto, para q ue o actuador
ob e de a aos re q uisitos.
Ento um a possve lrotina de ate ndim e nto
s inte rrupe s, faze ndo uso do m dul
o de
PW M e xiste nte no PIC, se r:

time = T1_10MSdutycycle*(T1_10MS/100); // duty_cycle


em percentagem

void interrupt isr (void)


{
(1) if (INTF)
{
(2)
TMR1L =0;
(3)
TMR1H =0;
(4)
CCP1CON=0b00000000;
(5)
CCP1CON=0b00001000;
(6)
TMR1ON=1;
(7)
CCPR1H= time>>8;
(8)
CCPR1L= time;
(9)
INTF=0;
}
(10)else if (CCP1IF)
{
(11)
TMR1ON=0;
(12)
CCP1IF=0;
}
}

te m a de capa
(1) Te sta a orige m da inte rrupo. Com o a
inte rrupo e st a ocorre r no pino INT
e nto a cada e ve nto ge rado pe l
o Z CD
(ze ro cross de te ctor) ir se r ge rada um a
inte rrupo.
(2)(3) Inicial
iza o tim e r1 a ze ro.
(4) Ne ce ssrio para faze r o re se t ao pino ccp,
pois a nica m ane ira de col
ocar o pino a
ze ro aps o inte rrupt.
(5) Configura o tim e r 1 a funcionar e m
com pare m ode e a cada m atch o pino ccp
activado (5v).
(6) Activa o tim e r1 (incio de contage m ).
(7)(8) Val
or a se r com parado com o tim e r 1
ao q ualse r ge rado um m atch
(9 ) Lim pa o b it q ue indica a orige m do
inte rrupt.
(10)(11)(12) No caso de ausncia de um
e ve nto no pino INT, e vita-se q ue o ccp e ste ja
inde finidam e nte activo.

Concl
uso

- Nos autom ve is o se gre do da re l


ao
pe rform ance /e conom ia, e st no corre cto
control
o
do
com b ustve l usado
na
com b usto. O cl
cul
o da q uantidade usada,
de pe nde nte de m uitos factore s, com o a
conce ntrao de com b ustve lde spe rdiado
durante a com b usto. Esse de spe rdcio
pode r se r m e nsurve l sada do m otor.
Assim , graas a um se nsor q um ico q ue m e a
a q uantidade de com b ustve l
, pode r-se -
optim izar a com b usto. Esta optim izao
se r fe ita pe l
a ce ntral
ina, q ue e m b ora se ja
um a unidade com pl
e xa, visto te r q ue
control
ar vrios m e canism os (ABS, ESP, ),
pode
se r
vista
com o
vrios
m icroproce ssadore s e m paral
el
o

R icardo R och a

Tirando os porm e nore s da inte rface com o


util
izador, e ste s de vice -drive rs, pode ro se r
usados e m m uitas apl
icae s:

- Para a m e dida de um a distncia a q ue um


rob e st de um ob je cto, pode -se usar ul
trasons.
Conh e cida
a
ve l
ocidade
de
propagao (de pe nde nte das condie s do
m e io), pode -se cal
cul
ar a distncia, sab e ndo
o te m po q ue o sinalde m orou a atingir o
ob je cto e a vol
tar (re fl
e xo). Para o cl
cul
o
de sse te m po pode -se , aps o l
anam e nto do
ul
tra-som , iniciar a contage m num tim e r e
q uando se re ce b e r a re fl
e xo e nto o
de te ctor ir ge rar um a inte rrupo.
Conh e cido e ste te m po o rob sab e r a
distncia at ao ob je cto e tom ar as de vidas
pre caue s.

<8>

a program ar
4
5
6
7
8
9
10

Cl
asse s
Ne ste artigo vam os ab ordar as to
te m idas cl
asse s de ph p, b e m com o
os se us construtore s, de strutore s e
h e rana. Vam os te ntar de m onstrar
de um a form a sim pl
e s e com pl
e ta
com o criar e util
izar as cl
asse s e m
ph p (ve rso 5).
Com e am os por criar a nossa cl
ass, para
isso vam os e scre ve r o se guinte cdigo.
1
2
3
4
5
6
7
8
9

<?php
class User{
public $nome = "guest";
function printNome(){
print($this->nome);
}
}
?>

Vam os agora anal


isar o q ue foi fe ito, na
l
inh a 2 foi de cl
arada um a cl
ass de nom e
Use r, e ssa cl
ass contm um a varive l
nom e , com o val
or gue st com o se pode
ve r na l
inh a 3, na l
inh a 5 de finida a
funo printNom e () q ue ao se r ch am ada
ir im prim ir o val
or da varive lnom e . A
re fe rncia $th is util
izada para dize r q ue a
varive la usar se r a varive lde finida na
cl
ass, m ais fre nte vam os ve r m e l
h or e sta
re fe rncia.
Agora ve jam os com o usar a cl
ass q ue
criam os, para isso adicionam os o se guinte
cdigo fora da cl
ass, ate no q ue o cdigo
adicionado no pre cisa de se r col
ocado
de ntro do fich e iro da cl
ass, pode e at
de ve se r col
ocado noutro fich e iro e
im portando a cl
ass atravs do incl
ude .
1
2
3

<?php
class User{
public $nome = "guest";

<9 >

function printNome(){
print($this->nome);
}
}
$obj = new User();
$obj->printNome();
?>

Com o pode m os ve r na l
inh a 8 vai se r criado
atravs do com ando ne w um ob je cto de
nom e ob j, e ste nom e pode se r q ual
q ue r
um talcom o se tratasse de um a varive l
norm al
. Na l
inh a 9 se r pe dido ao ob je cto
ob j q ue e xe cute o m todo printNom e ()
de finido na cl
ass Use r, e ste pe dido fe ito
atravs da se guinte sintaxe O b je cto ->
Mtodo.
Agora q ue j sab e m os com o criar um a cl
ass
sim pl
e s vam os agora ve r com o funcionam e
para q ue se rve m os construtore s e
de strutore s de cl
asse s.
Para isso vam os usar o se guinte cdigo.
1 <?php
2 class User{
3
public $nome;
4
public $email;
5
public $pass;
6
7
function __construct($nome,
$email, $pass){
8
$this->nome = $nome;
9
$this->email = $email;
10
$this->pass = $pass;
11
}
12
function getNome(){
13
return $this->nome;
14
}
15
function printNome(){
16
print($this->nome);
17
}
18
function getEmail(){
19
return $this->email;
20
}

21
function getPass(){
22
return $this->pass;
23
}
24 }
25
26 $obj=new User("guest",
"guest@pap.pt", "123456");

a program ar
$user = $obj->getNome();
$mail = $obj->getMail();
$pass = $obj->getPass();
}
?>

Com o pode m os ve r de finida um a cl


ass
Use r, com as varive is nom e , e m ail
e
pass. Foram tam b m de finidos os m todos
ge tNom e (), ge tEm ail
() e ge tPass() q ue
re torna cada um um a varive l da cl
ass.
Agora a novidade , a funo __construct(),
l
inh a 7. Esta funo de ve se r nom e ada da
form a com o se e ncontra aq ui pre se nte .
A funo __construct() e xe cutada
autom aticam e nte q uando um ob je cto de
cl
ass criado, todo o cdigo pre se nte
de ntro de sta funo se r e xe cutado q uando
for criado o ob je cto, ne ste caso o m todo
__construct() foi de finido para re ce b e r trs
argum e ntos nom e ,e m ail
e pass e
atrib uir e sse s val
ore s s varive is de cl
ass
de finidas ante riorm e nte . Com o pode m os
ve r nas l
inh as 8, 9 e 10 util
izada a
re fe rncia $th is e o q ue o $th is vai faze r e m
Portugus dize r q ue a varive lnom e para
a q uale l
e aponta a varive lde cl
ass e no
as varive is q ue foram dadas com o
argum e ntos. Basicam e nte o $th is de ve se r
util
izado se m pre q ue nos re fe rim os a um a
varive l
, constante ou funo de finidas na
cl
ass.
Nas l
inh as 26 a 29 pode m os ve r com o
util
izar e sta cl
ass, prim e iro criam os o ob je cto
com os val
ore s dados ou se ja na l
inh a 26 vai
se r criado um ob je cto e m q ue as varive is
nom e , e m ail
e pass vo te r os val
ore s
gue st, gue st@pap.pt e 123456, l
inh as
se guinte s ve m os com o util
izar os m todos
para re tornar os val
ore s das varive is de
cl
ass.
Para al
m da funo __construct() te m os
tam b m a funo __de struct(), q ue ao
contrrio da funo __construct(), e sta
e xe cutada q uando o ob je cto de strudo, ou
se ja q uando apagado, no vam os e ntrar
e m m aior de tal
h e visto se r um m todo de
b aixa im portncia.

<10>

O utra parte im portante a h e rana. Um a


cl
asse pode h e rdar m todos e varive is de
um a outra cl
asse usando a pal
avra e xte nds
na de cl
arao com o pode m os ve r a b aixo.
Um a cl
asse ape nas pode h e rdar de um a
outra cl
assa. No possve lte r um a cl
asse a
h e rdar de vrias cl
asse s, m as possve lte r
vrias cl
asse s a h e rdar um a s cl
asse . O s
ob je ctos h e rdados pode m se r re de finidos ou
util
izados na sua form a original
, atravs da
util
izao da cl
ausul
a pare nt:: para fune s e
se l
f:: para varive is. Um e xe m pl
o:
<?php
class ClassPrincipal{
public $nome = "guest";
function printNome(){
print($this->nome);
}
}
class SubClass extends ClassPrincipal{
public $email = "guest@pap.pt";
function printAll(){
print($this->email);
parent::printNome();
}
function printNome(){
parent::printNome();
}
}
$obj = new SubClass();
$obj->printAll();
$obj->printNome();
?>

Foram de finidas duas cl


asse s a cl
asse
Cl
assPrincipal
e a cl
asse Sub Cl
ass. A cl
asse
Sub Cl
ass te m ace sso a todos os ob je ctos da
cl
asse Cl
assPrincipal
. A funo printal
l
()
util
iza a funo printNom e () de finida e m
Cl
assPrincipal
assim printAl
l
(), para al
m de
im prim ir o val
or da varive l m ail
, vai
tam b m im prim ir o val
or da varive lnom e
com o e st de finido na Cl
assPrincipal
.
Pode m os tam b m ve r um e xe m pl
o de
sob re carre gam e nto de fune s e m q ue se
cria um a funo com o m e sm o nom e do
de finido na Cl
assPrincipal
e q ue vai
e xe cutar a printNom e () da Cl
assPrincipal
.

Fb io Corre ia

27
28
29
30
31

a program ar
require 'gtk2'
Gtk.init
window = Gtk::Window.new(
Gtk::Window::TOPLEVEL )
window.show
Gtk.main

Basta copiar o cdigo acim a, guardar o


fich e iro com o gtk .rb , por e xe m pl
o, e
e scre ve r na l
inh a de com andos 'rub y
gtk .rb '. Se tudo corre r b e m , pode ro ve r
um a jane l
a de 200x200 de tam anh o. Agora
a e xpl
icao de tal
h ada.

R ub y + GTK 2
Introduo criao
de GUIs
Ne ste artigo ire m os dar um a
pe q ue na introduo criao de
GUIs, usando R ub y e a b ib l
iote ca
GTK 2.
R ub y um a l
inguage m de scripting ope nsource inte rpre tada q ue , e m b ora pouco
usada, possui um grande pote ncial
. Possui
al
gum as se m e l
h anas com Pyth on e Java,
se ndo orie ntada a ob je ctos. Ganh ou
grande notab il
idade atravs do R ub y on
R ail
s, um a fram e w ork de stinada criao
de pl
ataform as w e b , b ase adas e m b ase de
dados. Usare m os GTK 2 para a criao do
GUI, b ib l
iote ca b ase do am b ie nte grfico
Gnom e ,
dos
siste m as
ope rativos
GNU/Linux. M as a b ib l
iote ca pode se r
instal
ada noutros siste m as, com o o
W indow s. Para instal
ar e sta b ib l
iote ca
convm se guir as instrue s da pgina
oficial
: h ttp://rub y-gnom e 2.source forge .jp.
Existe m vrios pacote s para dife re nte s
distrib uie s GNU/Linux e a possib il
idade
de com pil
ar atravs do cdigo-fonte .
Escusado se r dize r q ue ne ce ssria a
instal
ao prvia de R ub y, j incl
uda e m
al
gum as distrib uie s.
Prim e iro ire m os criar ape nas um a jane l
a,
com todas as ope s norm ais, com o
re dim e nsionar m inim izar, m axim izar, e m
q ue ape nas fe ch ar a jane l
a no possve l
,
se m final
izar o proce sso.

<11>

require 'gtk2'

Esta l
inh a ir carre gar a b ib l
iote ca rub yGTK 2, para pode rm os usar os se us
m todos.
Gtk.init

Este com ando ir inicial


izar a API, de m odo
a pre par-l
a para se r usada. A partir de
agora pode m os com e ar a criar os ob je ctos
q ue iro com por o GUI.
window = Gtk::Window.new(
Gtk::Window::TOPLEVEL )
window.show

Aq ui criada a jane l
a principal
, sob o
nom e de w indow . O argum e nto passado
funo, Gtk ::W indow ::TO PLEVEL, indica
q ue
a jane l
a criada ir usar as
caracte rsticas norm ais das jane l
as do
am b ie nte grfico, b ordas, de corae s, ... O
com ando se guinte ir m ostrar a jane l
a no
e cr.

a program ar
Atrib uam um nom e ao program a e corram no. O re sul
tado de ve r se r se m e l
h ante a e ste :

Gtk.main

Esta ch am ada ir indicar q ue o program a


ir e spe rar agora e re col
h e r todos os
e ve ntos q ue ocorre re m , com o o carre gar
de um b oto, o arrastar da jane l
a, ...
No e xe m pl
o se guinte , ire m os j criar um
b oto, adicion-l
o nossa jane l
a e
e xe cutar um com ando cada ve z q ue e ste
for pre ssionado. O com ando se r e scre ve r
O l
! na l
inh a de com andos. O program a
passar tam b m a e nce rrar se m prob l
e m as.
require 'gtk2'

def delete_event( widget )


return false
end

def delete_event( widget )


return false
end

def destroy( widget )


Gtk.main_quit
end

def destroy( widget )


Gtk.main_quit
end

Estas duas fune s iro pe rm itir o


e nce rram e nto e de struio da jane l
a.
Ape nas ne ce ssitam de sab e r q ue a funo
de l
e te _e ve nt de ve r re tornar fal
se , de
m odo a proce de r-se de struio da jane l
a.
Esta funo pode r se r usada para e vitar
q ue a jane l
a fe ch e l
ogo, e pe rguntar ao
util
izador se de se ja m e sm o sair.

Gtk.init
window = Gtk::Window.new(
Gtk::Window::TOPLEVEL )
window.set_default_size( 200, 200 )

window.set_default_size( 200, 200 )


window.signal_connect(
"delete_event" ) do
delete_event( window )
end

Este com ando ir de finir o tam anh o da


jane l
a para 200 por 200 pixe l
s. Este
com ando ne ce ssrio de sta ve z porq ue ,
se m e ste , a jane l
a iria tom ar o tam anh o
m nim o do b oto q ue ire m os adicionar.

window.signal_connect( "destroy" ) do
destroy( window )
end
button = Gtk::Button.new( "Ol!" )
window.add( button )

window.signal_connect(
"delete_event" ) do
delete_event( window )
end

button.signal_connect( "clicked" ) do
puts "Ol!"
end

window.signal_connect( "destroy" ) do
destroy( window )
end

button.show
window.show

A funo signal
_conne ct pe rm ite capturar
um e ve nto q ue te nh a ocorrido e m al
gum
ob je cto. Ne ste caso o ob je ctivo capturar
os e ve ntos de fe ch o e de struio da jane l
ae
ch am ar as fune s ante riorm e nte criadas.

Gtk.main

<12>

a program ar

button = Gtk::Button.new( "Ol!" )


window.add( button )
window.set_default_size( 200, 200 )

Criam os um ob je cto do tipo Button, com a


e tiq ue ta de O l
!. O com ando a se guir
adiciona o b oto criado nossa jane l
a.

window.title = "Hello World"


window.border_width = 5

button.signal_connect( "clicked" ) do
puts "Ol!"
end

Usam os
novam e nte
a
funo
signal
_conne ct, m as de sta ve z com o nosso
b oto, para ve rificarm os q uando e ste
pre ssionado. Se m pre q ue for pre ssionado,
o com ando puts ir e scre ve r na l
inh a de
com andos O l
!.

window.signal_connect( "delete_event"
) do
delete_event( window )
end
window.signal_connect( "destroy" ) do
destroy( window )
end
box = Gtk::VBox.new( false, 0 )

button.show
window.show

window.add( box )

Gtk.main

button = Gtk::Button.new(
"Cumprimentar" )

Final
m e nte , m ostram os os dois ob je ctos
criados no e cr e e spe ram os para q ue
ocorram os e ve ntos e spe rados.

text = Gtk::Label.new( "" )


button.signal_connect( "clicked" ) do
text.label = "Ol!"
end

Para te rm inar, ne ste l


tim o e xe m pl
o ir
de m onstrar o uso de caixas para conte r e
organizar dive rsos ob je ctos e o uso de um
novo tipo de ob je cto, o Lab e l
.

box.pack_start( button, true, true, 5 )


box.pack_start( text, true, true, 5 )
button.show
text.show
box.show
window.show

require 'gtk2'
def delete_event( widget )
return false
end

Gtk.main

def destroy( widget )


Gtk.main_quit
end

D e sta ve z de finim os m ais al


gum as
proprie dade s da jane l
a, q ue so te is e m
m uitos casos. O re sul
tado de ve r se r
se m e l
h ante a e ste :

Gtk.init
window = Gtk::Window.new(
Gtk::Window::TOPLEVEL )

<13>

a program ar
box.pack_start( button, true, true, 5 )
box.pack_start( text, true, true, 5 )

window.title = "Hello World"


window.border_width = 5

O prim e iro com ando de fine o nom e da


jane l
a, q ue ir apare ce r na b arra de ttul
o.
O se gundo com ando de fine um a b orda
inte rna de 5 pixe is, ou se ja, a distncia a
q ue os ob je ctos se de ve ro e ncontrar da
b orda e xte rior da jane l
a.
box = Gtk::VBox.new( false, 0 )
window.add( box )

Criam os um ob je cto do tipo VBox, ou se ja,


um a caixa ve rtical
. Este tipo de caixas
organiza os
ob je ctos
q ue
contm
ve rtical
m e nte , e nq uanto as H Box o faze m
h orizontal
m e nte . O prim e iro argum e nto
de fine se o e spao q ue cada ob je cto ir
ocupar de ve r se r h om ogne o ou no,
com os re stante s ob je ctos da caixa. O
se gundo argum e nto de fine o e spaam e nto
q ue os ob je ctos iro te r e ntre si, e m pixe l
s.
O se gundo com ando adiciona a caixa
jane l
a. Assim a jane l
a pode r conte r
ob je ctos de ntro da caixa.

Agora adicionam os o b oto e a e tiq ue ta


caixa, usando a funo pack _start. Esta
funo vai adicionando os ob je ctos um a
se guir ao outro, pre e nch e ndo a caixa, ao
contrrio de pack _e nd, q ue faz o oposto. O
prim e iro argum e nto indica o ob je cto a
adicionar. O se gundo argum e nto indica se
os ob je ctos de ve ro e xpandir-se , de m odo
a q ue a caixa ocupe o m xim o de e spao
possve l
. O te rce iro argum e nto funciona se
o se gundo for ve rdade iro, e de fine se o
e spao ganh o pe l
a e xpanso da caixa
de ve r se r ocupado pe l
os ob je ctos, ou
ape nas por e spaam e nto. O q uarto e
l
tim o argum e nto de fine o e spaam e nto
q ue o ob je cto de ve r te r, e m pixe l
s, vol
ta
de l
e , de ntro da caixa.
E aq ui te rm ina e sta introduo criao de
GUIs usando o GTK 2. Se ficaram
inte re ssados pe l
os e xe m pl
os q ue viram ,
pode ro ir ao site oficial (h ttp://rub ygnom e 2.source forge .jp) e procurar m ais
inform ae s sob re dife re nte s ob je ctos e os
se us atrib utos. Esta , se m dvida, um a das
mel
h ore s e m ais sim pl
e s b ib l
iote ca para a
criao de GUIs.

button.signal_connect( "clicked" ) do
text.label = "Ol!"
end

Criam os o ob je cto de tipo Lab e l


, se m nada
e scrito, com o pode m ve r pe l
o argum e nto
forne cido. D e pois al
te ram os o com ando q ue
ocorre q uando o b oto pre m ido, para
e scre ve r al
go na e tiq ue ta q ue crim os: O l
!.

<14>

Srgio Santos

text = Gtk::Label.new( "" )

a program ar

O s re cursos b sicos para q ue m q ue r


program ar e m JavaScript so um e ditor de
te xto sim pl
e s para e scre ve r o cdigo e um
b row se r para o te star.

JavaScript
Introduo
JavaScript um a l
inguage m m uito sim pl
es
e de fcil apre ndizage m . Possui um a
sintaxe (form a de e scrita) se m e l
h ante ao
Java, C, C+ + , PH P. Foi criada para te r um a
util
izao w e b b ase d por Bre ndan Eich da
Ne tscape e m 19 9 5, com o um a e xte nso
para o b row se r Navigator v2.0, com o
principal propsito de pe rm itir um a
inte ractividade
supe rior

q ue
se
conse guia com o H TM L e para ate nde r
principal
m e nte s se guinte s ne ce ssidade s:
- Val
idao de form ul
rios e m cl
ie ntside ;
- Inte rao com a pgina. Assim , foi fe ita
com o um a l
inguage m de script.
Existe m
vrias
im pl
e m e ntae s
JavaScript, com l
ige iras dife re nas e ntre
o standard de finido pe l
a ECM A,
im pl
e m e ntao
da
Ne tscape
e
im pl
e m e ntao da M icrosoft.

de
si:
a
a

A principalcaracte rstica do JavaScript a


form a com o inte rage com o b row se r,
pode ndo ace de r a ob je ctos. Assim , para
um a b oa program ao e m JavaScript
ne ce ssrio conh e ce r o D O M (D ocum e nt
O b je ct Mode l
) de cada b row se r. D e vido aos
b row se rs
te re m
DO M
dife re nte s

ne ce ssrio conh e c-l


os e spe cificam e nte ,
da ve m as dive rsas im pl
e m e ntae s do
JavaScript.
sua unio com o CSS ch am a-se de
D H TML, assim usando o JavaScript
possve lm odificar dinam icam e nte os e stil
os
das pginas. A l
inguage m ActionScript da
Macrom e dia b ase ia-se no standard do
JavaScriptcriado pe l
a ECMA.

<15>

O JavaScript um a l
inguage m e m b e b ida
no se io do H TM L, orie ntada a ob je ctos e
a e ve ntos q ue ace de do D O M do b row se r.
um a l
inguage m
inde pe nde nte da
pl
ataform a onde corre . um a l
inguage m
q ue no com pil
ada e inte rpre tada pe l
o
b row se r, b ase ando-se e m ob je ctos.

Pote ncial
idade s do JavaScript a te r
e m conta:
- ge rar cdigo H TM L;
- re agir conform e as ace s do visitante ;
- ge rar conte dos dinm icos;
- val
idar form ul
rios;
- criar e fe itos grficos.

Vantage ns
JavaScript:

da

util
izao

do

- fcilapre ndizage m ;
- no e xige re cursos se rve r side ;
- rpida por se r inte rpre tada no b row se r;
- e xiste m m uitos re cursos na Inte rne t.

D e svantage ns
JavaScript:

da

util
izao

do

- o cdigo pode se r facil


m e nte copiado pois
fica e xposto;
- no um a b oa fe rram e nta para inte ragir
com b ase de dados;
- m e nos ve rstilq ue outras l
inguage ns
ge nricas.

Estrutura dos
JavaScript

program as

em

O JavaScript norm al
m e nte inse rido e m
fich e iros H TM L e col
ocado de ntro das
m arcas <script> </script>.
O cdigo te m de e star ou e ntre as tags
<h e ad> </h e ad> ou e ntre as tags <b ody>
</b ody>.

a program ar
Q ue ste s de Sintaxe
O JavaScript se nsve l a m aiscul
as e
m inscul
as, de sta form a e scre ve r 'Nom e ' e
'nom e ' no a m e sm a coisa e vo se r l
idas
com o inde pe nde nte s um a da outra.
O s e spaos no pre e nch idos so ignorados,
por isso de ixar e spaam e nto ape nas um a
q ue sto de e nte ndim e nto pois o JavaScript
no vai notar dife re nas.
Todas as instrue s de ve m te rm inar com
um ponto e vrgul
a (;).
aconse l
h ve l de sde o incio a col
ocar
com e ntrios no cdigo para o tornar de
m ais fcil l
e itura e e dio. Para inse rir
com e ntrios pode
e scre ve r e ntre
os
de l
im itadore s '/*' e '*/' ou e nto '//' e
e scre ve r at ao fim da l
inh a, te nh a e m
ate no q ue os com e ntrios vo se r
ignorados pe l
o JavaScript, por isso no
convm col
ocar cdigo de ntro de um
com e ntrio pois e ste no se r l
ido.
Se pre te nde q ue o script q ue e stive r a
de se nvol
ve r e m
JavaScript s
se ja
apre se ntado na pgina caso o b row se r e m
q ue sto e ste ja b e m configurado e suporte
JavaScript col
oq ue o se u cdigo de ntro de
'<!--' e '-->', com o m ostra o e xe m pl
o:
<html>
<head>
<title>Inserir cdigo seguro</title>
</head>
<body>
<script type="text/javascript">
<!-document.write("bla bla bla")
//escreve bla bla bla na pgina
-->
</script>
</body>
</html>

se guir as se guinte s re gras:


1 - a e xte nso do fich e iro te m de se r .js
2 - de ve se r invocado a partir de um
fich e iro H TM Lcom a se guinte form a <script
src= "oTal
Exte rno.js"></script>
3 - de ntro do fich e iro e xte rno no se de ve
incl
uir a tag <script> ne m a tag </script>
D e sta form a um fich e iro e xte rno de ve te r
e sta form atao:
document.write("bla bla bla")

Tipos de dados
Existe m vrias possib il
idade s de tipos de
dados e m JavaScript e ntre e l
e s de stacam se os num ricos, os l
gicos, as strings, o
nul
le o unde fine d. O s num ricos com o o
nom e indica pode m arm aze nar val
ore s
inte iros e com ponto fl
utuante e pode m
faze r parte de ope rae s de arite m tica
com o a som a, a sub traco, a m ul
tipl
icao
e a diviso. O s val
ore s l
gicos ape nas
pode m arm aze nar dois val
ore s o true
(ve rdade iro) e o fal
se (fal
so). O s val
ore s
strings so cade ias de caracte re s, o m aior
nm e ro q ue um a string pode conte r
de pe nde do b row se r e m q ue stoe os
val
ore s strings so de l
im itados por
apstrofe (') ou por aspas("). Val
ore s nul
l
so val
ore s e spe ciais, re pre se nta um
ob je cto nul
o, no de ve se r confundido
com um a varive lno inicial
izada, pois o
val
or nul
le xiste e e xiste e m m e m ria. O
val
or unde fine d significa q ue a varive l
no foi criada, inicial
m e nte todas as
varive is se e ncontram ne ste e stado.

M ode l
o
de
D ocum e nto

Fich e iros Exte rnos


Q uando pre te ndido util
izar um cdigo
por vrias pginas ou, por um a q ue sto de
organizao, possve l e conve nie nte
col
oc-l
o num fich e iro e xte rno q ue de ve

<16>

O b je ctos

do

O D O M (D ocum e nt O b je ct M ode l
) de um a
pgina um a re pre se ntao h ie rrq uica,
e m form ato de rvore . D e sta form a, a raz
a jane l
a do b row se r, da ram ifica-se e m
pargrafos, tab e l
as, form ul
rios, e ntre
outros.
O JavaScript pe rm ite ace de r de um a form a
dinm ica aos vrios ram os, l
e ndo-os e , se
ne ce ssrio, al
te rando os se us val
ore s.

a program ar
Existe m vrios standards dos D O M, o da
W 3C, o da Ne tscape e o do Inte rne t
Expl
ore r. O D O M do IE im pl
e m e nta as
re com e ndae s do W 3C m as m ais vasto
q ue e ste .

As fune s s so e xe cutadas no m om e nto


e m q ue e stas so invocadas, por isso as
fune s pre se nte s no e xe m pl
o 3 s so
e xe cutadas no onl
oad do b ody e no
onunl
oad do b ody re spe civam e nte .

Eve ntos

Eve ntos de util


izador

O JavaScript um a l
inguage m orie ntada
principal
m e nte a e ve ntos e ob je ctos. O s
e ve ntos pode m se r produzidos de duas
form as: pe l
o siste m a ou pe l
o util
izador. Pe l
o
siste m a q uando re sul
tam do facto de
carre gar ou de scarre gar um a pgina, pe l
o
util
izador na m e dida e m q ue pode inte ragir
com as suas ace s, atravs de sob re por o
rato ou carre gar num b oto, e ste s so os
e xe m pl
os m ais com uns ape sar de e xistire m
m uitos m ais.

O s e ve ntos pode m se r util


izados para
inte ragir com o util
izador, de sta form a s
so invocados por aco de ste , assim
possve ltornar a pgina m ais atractiva e
m ode l
ada para cada util
izador pois no
apre se nta tudo m as s o q ue o util
izador
pre te nde .

Eve ntos do Siste m a


Um e xe m pl
o de re sposta a e ve ntos do siste m a:
<html><head>
<script language="JavaScript">
<!-function entra(){
window.alert("Bem vindo");
}
function sai(){
window.alert("Volte sempre");
}
-->
</script>
</head>
<body onload="entra();"
onunload="sai();">
<p>Texto da pgina...</p>
</body></head>

<head>
<script language="Javascript">
function skin1()
{
document.bgColor='red';
}
function skin2()
{
document.bgColor='green';
}
function skin3()
{
document.bgColor='yellow';
}
function skin4()
{
document.bgColor='#FFFFCC';
}
</script>
</head>
<body>

No <h e ad> de fine m -se duas instrue s, a


"e ntra()" e a "sai()". Na prim e ira funo
(function), "e ntra()", faz surgir um a jane l
a
de aviso no ce ntro do e cr q uando a pgina
carre gada q ue m ostra um a m e nsage m ,
"Be m vindo, e xe m pl
o de um a re accao a um
e ve nto do siste m a". Na se gunda funo
(function), "sai()", faz surgir um a jane l
a de
aviso q uando se sai da pgina com a
m e nsage m "Vol
te se m pre ".

<17>

<form name="cores">
<input type="radio" name="campo"
onclick="skin1();">Fundo vermelho<br>
<input type="radio" name="campo"
onclick="skin2();">Fundo verde<br>
<input type="radio" name="campo"
onclick="skin3();">Fundo amarelo<br>
<input type="radio" name="campo"
onclick="skin4();">Fundo amarelo<br>
</form>
</body>

a program ar

Varive is
Varive l um a posio de m e m ria onde
possve larm aze nar ce rtas inform ae s. As
varive is so re pre se ntadas por nom e s
de nom inados ide ntificadore s q ue tm um a
e strutura de finida:
1. D e ve m iniciar ob rigatoriam e nte por um a
l
e tra ou pe l
o sm b ol
o "$";
2. A partir da al
m de l
e tras, "$" pode
conte r dgitos(0 at 9 ).
D e se guida vai se r m ostrado um e xe m pl
o
de m anipul
ao de varive is:
<html><head></head>
<body>
<script type="text/javascript">
var mensagem="Aqui est a mensagem";
//define a varivel mensagem
document.write(mensagem);
document.write(
"<p>"+mensagem+"</p>");
</script></body></html>

D e cl
arao de Varive is
possve lde cl
arar um a varive lde duas
form as m as s ire m os ab ordar um a de l
as, a
m ais util
izada, q ue consiste e m util
izar um a
pal
avra re se rvada "var". Um a varive lq ue
no te nh a sido inicial
izada, possui o val
or
de "unde fine d", e te nh a e m ate no q ue o
JavaScript se nsve l a m aiscul
as e
m inscul
as, ou se ja, l
e tras m inscul
as e
m aiscul
as
so
dife re nte s,
portanto,
unde fine d e nul
lde ve m se r e scritos se m pre
em l
e tra m inscul
as. Se um a varive l
de cl
arada ape nas, com o com ando "var", o
se u conte do "unde fine d" ou NaN (Not a
Num b e r), caso e ste ja num
conte xto
num rico.

<18>

D e cl
arar um a varive l m uito sim pl
e s,
com o pode r ve r no e xe m pl
o se guinte .

var nome;
var idade;
var pais="Portugal";

Com o pode ob se rvar no e xe m pl


o ante rior
de cl
arar um a varive l b astante sim pl
e s.

Tipos de Varive is
Em JavaScript no ne ce ssrio indicar o
tipo de varive lcom a q ualse vai trab al
h ar
de vido s varive is e m JavaScript pode re m
arm aze nar dife re nte s tipos de dados.

Concl
uso
Ne sta prim e ira parte do artigo de JavaScript
foram ab ordados te m as b sicos e iniciais da
program ao com JavaScript. No e ntanto,
no ficam os por aq ui pois de vido grande
e xte nso do artigo, e ste vai se r dividido e m
duas parte s um a de l
as. A prim e ira parte a
q ue acab aram de l
e r, a se gunda parte sair
na prxim a e dio da re vista, na q ual
vam os
ab ordar ope radore s,
fune s,
instrue s
condicionais
(if,
sw itch ),
instrue s ite rativas (for, w h il
e , do-w h il
e,
continue , b rak e ), program ao orie ntada a
ob je ctos (PO O ) e ve ctore s.

Joo Pe re ira

Ne ste e xe m pl
o o visitante da pgina pode
e scol
h e r q ue cor q ue r dar ao b ack ground.
No e ntanto se o util
izador sair da pgina a
sua e scol
h a se r pe rdida. D e sta form a
m ostrado um a form a de o JavaScript
inte ragir com o visitante .

tutorial

Ex:
Dim nomeArray(,) As String

Visual
Basic.NET
3 Parte
Arrays
Um array conh e cido com o um a l
ista, no
caso de se r uni-dim e nsional
, ou um a m atriz
no caso de se r b i-dim e nsional
, e um a das
m ais im portante s e struturas de dados e
tam b m um a das m ais sim pl
e s. Um array
constitudo por um nom e e por um
nm e ro, de nom inado de ndice . Em
VB.NET, a prim e ira posio do array
se m pre no ndice 0, ao contrrio do q ue
aconte cia no VB6, podia-se de finir se a
posio 0 ou 1 se ria a inicial
.
- nom e Array(ndice )
- nom e Array(0) Prim e ira posio
- nom e Array(Ub ound(nom e Array))
l
tim a posio

D e cl
arao de arrays
- Uni-dim e nsional

OU
Dim nomeArray(10, 10) As String
'Array com duas dimenses de 10x10'

- Mul
ti-dim e nsional
D im nom e Array(num e ro totalde e l
e m e ntos
1, num e ro totalde e l
e m e ntos 1, num e ro
totalde e l
e m e ntos 1, e tc) as Tipo de D ados
(num e ro totalde e l
e m e ntos 1) te r q ue
se r o val
or totalde e l
e m e ntos m e nos 1,
razo pe l
a q ual indicada com o prim e ira
posio, a posio 0. Um array de cl
arado
com o nom e Array(9 ) ir suportar 10
posie s, ou se ja, de 0 a 9 .
Q uando trab al
h am os com arrays, por ve ze s
ve m o-nos ob rigados a re dim e nsiona-l
o, pois
no pode m os de finir um a dim e nso fixa
para o m e sm o. Para faze rm os e sta
ope rao, util
izam os o R e D im . O R e D im
usado para al
te rar o tam anh o de cada
dim e nso do array, m as nunca pode al
te rar
o nm e ro de dim e nse s ou tipo de dados
do m e sm o. O q ue o R e D im faz apagar o
array actuale criar um novo array com as
de finie s indicadas no R e D im .
Dim nomeArray(10, 10) As String
'Array com duas dimenses de 10x10'

D im nom e Array(num e ro totalde


el
e m e ntos 1) as Tipo de D ados

Ex:

ReDim nomeArray(10, 15)


'Redimensiona o array para 15
elementos na 2 dimenso'

Dim nomeArray(3) As String 'Declara


o array com 4 elementos'

OU
Dim nomeArray() As String =
{"elemento1", "elemento2",
"elemento3", "elemento4"} 'Declara o
array e atribui valores'

- Bi-dim e nsional
D im nom e Array(num e ro totalde
el
e m e ntos 1, num e ro totalde e l
e m e ntos
1) as Tipo de D ados

<19 >

Com o o array actual apagado, toda a


inform ao contida igual
m e nte e l
im inada.
Para pode rm os m ante r e ssa inform ao,
te rm os de usar juntam e nte com o R e D im , o
Pre se rve . Um
dos inconve nie nte s na
util
izao do Pre se rve , q ue ape nas pode r
se r al
te rada a ul
tim a dim e nso do array,
te ndo q ue m ante r o nm e ro de e l
e m e ntos
das outras.

tutorial
Cre ate Instance

Inicial
iza um a nova instncia da cl
asse
array.

ReDim Preserve nomeArray(15, 10)


'Redimensiona o array para 15
elementos na 1 dimenso e mantem a
informao armazenada'

Eq ual
s (h e rdado de O b je ct)

O s arrays possue m com o q ual


q ue r outra
cl
asse do VB.NET um conjunto de m todos
e proprie dade s.

Proprie dade s

D e te rm ina se duas instncias de ob je ctos


so iguais.

Ge tLe ngth

O b tm o num e ro de e l
e m e ntos de um a
dim e nso e spe cificada de um array.

Ge tLow e rBound

IsFixe dSize

O b tm o m e nor ndice infe rior da


dim e nso e spe cificada e m um array.

Indica se o array te m um tam anh o fixo.

IsR e adO nl
y

Ge tType (h e rdado de O b je ct)

Indica se o array som e nte l


e itura (re adonl
y).

O b tm o tipo da instncia actual


.

Ge tUppe rBound (Eq uival


e ao
UBound do VB6)

IsSynch ronize d
Indica se o ace sso ao array sincronizado
(th re ad-safe ).

O b tm o ndice supe rior da dim e nso


e spe cificada num array.

Le ngth

Ge tVal
ue

O b tm o totalde e l
e m e ntos e m todas as
dim e nse s do array.

O b tm o val
or de um e l
e m e nto de finido
no array.

R ank

Inde xO f

O b tm o nm e ro de dim e nse s do array.

SyncR oot

R e torna o ndice da prim e ira ocorrncia de


um val
or e m um array de um a dim e nso.

O b tm um ob je cto q ue pode se r usado


para sincronizar o ace sso ao array.

Initial
ize

Mtodos

R e ve rse

Inicia cada e l
e m e nto de um array
ch am ando o construtor padro.

Cl
e ar

Inve rte a orde m dos e l


e m e ntos de um
array de um a dim e nso.

D e fine o inte rval


o dos e l
e m e ntos de um
array para ze ro, para fal
se ou para nul
l
.

Se tVal
ue
D e fine o e l
e m e nto e spe cificado e m um
array para um val
or de finido.

Cl
one
Cria um a copia do array.

Sort
O rde na os e l
e m e ntos de um array de um a
dim e nso.

Copy
Copia a se co de um array para outro
array e re al
iza o casting e o b oxing
re q ue rido.

ToString (inh e rite d from O b je ct)


R e torna um a string q ue re pre se nta o
ob je cto actual
.

CopyTo
Copia todos os e l
e m e ntos de array de um a
dim e nso para outro array.

<20>

(inform ae s re tiradas de w w w .m acoratti.ne t)

tutorial
Fich e iros

Le r um fich e iro

Para trab al
h arm os com fich e iros e m
VB.NET re corre m os q uase se m pre s
cl
asse s do Syste m .IO , e para isso, te m os
q ue faze r o im portde ste .

Aps faze rm os o im portdo nam e space IO ,


te m os disponive is as cl
asse s para a
m anipul
ao de fich e iros. Para faze r a l
e itura
de um fich e iro ire m os re corre r cl
asse
Stre am R e ade r. Esta cl
asse possui m todos
com o o R e adLine (pe rm ite -nos l
e r o fich e iro
l
inh a a l
inh a), o R e adToEnd (pe rm ite -nos l
er
o fich e iro do se u inicio at ao fim e carre gl
o num a variave lou ob je cto), e ntre outros.

Import System.IO

Para m anipul
arm os um fich e iro, ante s
ne ce ssitam os de criar um canalpara e sse
m e sm o fich e iro, e para isso usam os o
Fil
e Stre am . O Fil
e Stre am pe rm ite -nos e nto
a criao de sse canal
, e pode r se r de finido
o m odo de ab e rtura do fich e iro, ou se ja, se
ir se r de l
e itura e /ou e scrita.
Dim ficheiro as New FileStream
(Nfich,FileMode,FileAccess,FileShare)

Para indicarm os o m odo de ab e rtura do


canalutil
izam os o e num e rador Fil
e Mode . O
Fil
e Mode constituido pe l
os se guinte s
m e m b ros:

Appe nd
Ab re o fich e iro para e scrita e posiciona-se
no fim do m e sm o. Caso no e xista o fich e iro
e nto cria um novo.

Cre ate
Ab re o canalpara e scrita ou l
e itura e e scrita
e apaga o conte do caso o fich e iro e xista,
se no cria um novo.

Cre ate Ne w
Cria um novo fich e iro para e scrita.Caso
e xista d um e rro.

O pe n
Ab re o fich e iro para e scrita ou l
e itura e
posiciona-se no inicio do m e sm o. Caso no
e xista d um e rro.

O pe nO rCre ate
Ab re o fich e iro se e l
e e xistir, se no cria-o.

Truncate
Ab re o fich e iro e re m ove todo o conte udo.

<21>

Imports System.IO
Module Module1
Sub Main()
Dim strFicheiro As String =
"C:\ficheiro.txt"
'Abre o ficheiro'
'Modo = Abertura | Tipo de Acesso
= Leitura | Acesso de outros processos
= Leitura'
Dim fs As New
FileStream(strFicheiro, FileMode.Open,
FileAccess.Read, FileShare.Read)
'Carrega o stream no StreamReader'
Dim sr As New StreamReader(fs)
'Imprime o conteudo do ficheiro no
ecra'
Console.Write(sr.ReadToEnd)
'Liberta o ficheiro'
sr.Close()
Console.ReadLine()
End Sub
End Module

Escre ve r um fich e iro


Para e scre ve r num fich e iro util
izam os a
cl
asse Stre am W rite r. Com e sta cl
asse
pode m os e scre ve r num fich e iro usando
vrios tipos de codificao (UTF-8, ASCII,
UNICO D E, e tc). O s m todos W rite e
W rite l
ine so os util
izados para a e scrita
e m fich e iros. O Fl
ush e o Cl
ose so tam b m
m todos
im portante s
da
cl
asse
Stre am W rite r. Com o os dados e sto
arm aze nados
em
b uffe rs
e
no
dire ctam e nte no fich e iro, de ve -se invocar o
m todo fl
ush para q ue se ja e scritos no
fich e iro, ou e nto o m todo Cl
ose para q ue
fore a e scrita e fe ch e a stre am .

tutorial

Private Sub ler_ficheiro()


Dim strFicheiro As String =
"C:\ficheiro.txt"
'Abre o ficheiro indicado na
variavel com os atributos'
'Modo = Abertura | Tipo de
Acesso = Leitura | Acesso de outros
processos = Leitura'
Dim fs As New
FileStream(strFicheiro,
FileMode.Open, FileAccess.Read,
FileShare.Read)
'Carrega o stream no
StreamReader'
Dim sr As New StreamReader(fs)
'Imprime o conteudo do
ficheiro no ecra'
Console.Write(sr.ReadToEnd)
'Liberta o ficheiro'
sr.Close()
Console.WriteLine()
End Sub

<22>

Na prxim a e dio ire m os continuar e ste


tutorial
. O te m a da prxim a e dio
continuar a se r m anipul
ao de
fich e iros e m Visual
Basic.NET. Iro se r
ab ordadas novas cl
asse s com o D ire ctory,
D ire ctoryInfo, Fil
e Info, Fil
e A ttrib ute s,
Path , e tc... q ue vos iro pe rm itir um
m aior control
o e inte raco sob re os
vossos fich e iros. No pe rcam a prxim a
e dio...

Tiago Sal
gado & M arce l
o M artins

Imports System.IO
Module Module1
Sub Main()
Dim texto As String
'chama a funcao para ler o
ficheiro'
ler_ficheiro()
Console.WriteLine()
Console.WriteLine()
Console.WriteLine("Insira um
texto para adicionar ao ficheiro:")
texto = Console.ReadLine
Console.Clear()
'chama a funcao para escrever
no ficheiro o texto inserido'
escrever_ficheiro(texto)
'imprime no ecra o ficheiro ja
actualizado'
ler_ficheiro()
Console.ReadLine()
End Sub

Private Sub
escrever_ficheiro(ByVal texto As
String)
Dim strFicheiro As String =
"C:\ficheiro.txt"
'Abre o ficheiro indicado na
variavel com os atributos'
'Modo = Adicionar | Tipo de
Acesso = Escrita | Acesso de outros
processos = Leitura'
Dim fs As New
FileStream(strFicheiro,
FileMode.Append, FileAccess.Write,
FileShare.Read)
'Carrega o stream no
StreamReader'
Dim sw As New StreamWriter(fs)
'Escreve no ficheiro o texto
inserido pelo utilizador'
sw.WriteLine()
sw.Write(texto)
sw.Close()
End Sub
End Module

gnu/l
inux
util
izador, o nico dire ctrio no q ual um
util
izador norm alte m pe rm isse s totais, visto
q ue l
h e pe rte nce , te ndo a m aioria dos outros
dire ctrios pe rm isse s re stritivas e scrita, e
de sta form a al
te rao ou re m oo.
O
siste m a de
pe rm isse s
de m onstrado num a tab e l
a:

Se gurana e m
siste m as GNU/Linux
Introduo
M uita ge nte pe rgunta a si m e sm a porq ue
q ue aq ue l
e s tipos dize m q ue GNU/Linux
m ais se guro?. Ne ste artigo pre te ndo q ue
pe ssoas q ue nunca usaram GNU/Linux e
q ue te nh am dvidas e m re l
ao
se gurana de ste siste m a, as e scl
are am .

Pe rm isse s
O control
o de se gurana m ais b sico do
siste m a, m as ainda assim b astante e ficaz,
fe ito ao nve ldo siste m a de pe rm isse s.
Estas
consiste m
num a
e strutura
h ie rrq uica, na q ual h vrios tipos de
util
izadore s
com
vrios
tipos
de
pe rm isse s, pode ndo e stas se r de finidas
conform e o de se jado. Pode m os dar
pe rm isse s para o vizinh o do l
ado ve r os
m e us
fich e iros,
m as
tam b m
dar
pe rm isse s para outro vizinh o no ve r
nada. Isto m uito im portante e e sta um a
das raze s pe l
a q ual um vrus no se
e spal
h a facil
m e nte e m GNU/Linux (tal
com o e m M ac, q ue te m o m e sm o siste m a,
am b os b ase ados no Unix).
Para um e ve ntualvrus atacar um de ste s
siste m as com vista a faze r q ual
q ue r tipo de
e strago, te ria q ue se r o prprio util
izador a
e xe cutar o vrus, e ainda assim (caso e m
m odo no-root) o nico e strago q ue
de ve ria re sul
tar da e xe cuo se ria a
possve lpe rda dos fich e iros da H O M E do

<23>

pode

se r

A tab e l
a de m onstra e xe m pl
ifica o siste m a de
pe rm isse s. O 0 significa de sl
igado/pe rm isso
no activa, o 1 l
igado/pe rm isso activa. O 'r'
sim b ol
iza a l
e itura, o 'w ' a e scrita e o 'x' a
e xe cuo.
Estas pe rm isse s corre sponde m a trs
grupos de 3 b its, cada b it corre sponde ndo
l
e itura, e scrita e e xe cuo e trs grupos,
de sse s tais trs b its, re fe rindo-se ao dono
(do fich e iro), ao grupo, e aos outros. Para
se pe rce b e r m e l
h or o siste m a de pe rm isse s
convm se parar cada grupo de trs b its
individual
m e nte .
D e sta
form a,
se
q uissse m os te r um fich e iro com pe rm isse s
totais para o dono do fich e iro, e pe rm isso
de l
e itura e de e xe cuo tanto para o Grupo
com o para os outros te ria-m os al
go com o:

Para q ue se ja m ais fcil


, apre se ntam os
tam b m um a tab e l
a de conve rso de
b inrio para de cim al
:
b inrio
000
001
010
011
100
101
110
111

de cim al
0
1
2
3
4
5
6
7

gnu/l
inux

O utra m ane ira, tal


ve z m ais sim pl
e s de
e xe m pl
ificar o proce sso dando val
ore s aos
tipos de pe rm isso. D e ste m odo, o r val
e 4, o
w val
e 2 e , por fim , o x val
e 1. Se q uise rm os
dar pe rm isse s totais te re m os r+ w + x = 4 + 2
+ 1 = 7, se ndo e ste o nm e ro q ue
util
izare m os, para o util
izador e m q ue sto.

D icas
-No te r um a conta com um a passw ord q ue
se ja adivinh ada facil
m e nte . Passw ords de sse
tipo so por e xe m pl
o a data de nascim e nto, o
nom e , 123456
-Nunca forne ce r passw ords a outras pe ssoas.

# chmod -R 777 ~/

-Instal
a, se m pre q ue h ouve r, actual
izae s de
se gurana. Por ve ze s h b ugs e m distrib uie s
q ue
pode m
se r fatais. Fe l
izm e nte
a
com unidade da grande parte das distros
b astante
rpida a e ncontr-l
os
e
a
disponib il
izar patch s de actual
izao.

Notas:

-Lim ita o nm e ro de proce ssos na m q uina.

Caso q ue iram os apl


icar a pe rm isso a um a
pasta e a todos os se us sub -fich e iros,
util
izare m os a e xte nso -R . Por e xe m pl
o:

- O ~ / re fe re -se h om e do util
izador.
- Todos os com ando tm de se r e xe cutados
as root, caso os fich e iros aos q uais se vai
e ditar a tab e l
a de pe rm isse s no te nh am
pe rm isse s totais para o use r e m q ue sto.

A fire w al
l
Um a fire w al
l GNU/Linux visa prote ge r o
com putador contra ace ssos inde se jados,
trfe go inde se jado, prote ge r os se rvios q ue
e ste jam a corre r e fil
trar pacote s. A fire w al
l
m ais usada a iptab l
e s , m ais conh e cida
pe l
o se u GUI fire starte r, q ue foi introduzida
no k e rne l2.4 e m sub tituio da ipch ains. A
fire w al
lno funciona por si m e sm a. No
instal
ar e e spe rar te r tudo configurado.
ne ce ssrio criar as re gras ne ce ssrias para o
siste m a.
Ento, o q ue prote ge r? O m e l
h or a faze r
ab rir ape nas o ne ce ssrio. O u se ja te r um a
configurao re stritiva. aconse l
h ado
bl
oq ue ar as portas ab aixo de 1024 porq ue
e stas e xe cutam se rvios q ue util
izam o m odo
de root. O s se rvios com o rl
ogin, te l
ne t, ftp,
NFS, D NS, LD AP, SMTP, R CP, X-W indow de ve m

<24>

-Prote ge r contra Fork Bom b s. Um a Fork Bom b


um a form a de e xe cutar um D oS (D e nialof
Se rvice ), um ataq ue q ue sob re carre ga o
siste m a e q ue faz a m aq uina andar
e xtre m am e nte l
e nta. dficil e xe cutar e sse
ataq ue se tive r um a fire w al
lb e m configurada
um a ve z q ue no e ntram no pc, m as m ais val
e
pre ve nir q ue re m e diarUm a Fork Bom b cria
m uitos proce ssos at a m aq uina crash ar
com pl
e tam e nte . Para se prote ge re m tm de
de finir no fich e iro l
im its.config q ue e st e m
/e tc/se curity/ o nm e ro m xim os de proce ssos
q ue a m q uina pode corre r. Adicione m as
se guinte s l
inh as:
username soft nproc 100
username hard nproc 150

Isto pre vine os util


izadore s de te re m m ais de
150 proce ssos a corre r e m ostra um aviso se
100 proce ssos e stive re m a corre r. ape nas um
e xe m pl
o, pode ro de finir consoante as
ne ce ssidade s das vossas m q uinas.
-Configure a fire w al
lde um m odo re stritivo,
ape nas para o ne ce ssrio. D e ste m odo e star a
dar um grande passo na sua prote co.

M igualPais

Com o se pode constatar, usou-se o ch m od


755, se ndo e ste nm e ro a agl
utinao da
conve rso para de cim al das pe rm isse s
de m onstradas acim a.

&

# chmod 755 ficheiro.txt

se r pe rm itidos ape nas a m q uinas de


confiana, um a ve z q ue so pote ncial
m e nte
inse guros pode ndo se r usados, no s para
atacar a m q uina, com o tam b m com o ponte
para atacar outros. O h ack e r pode usar a
m q uina da vtim a para se prote ge r e l
anar o
ataq ue a partir doutra m q uina.

Joe lR am os

Portanto, de sta form a se q uise sse m os de finir


o talfich e iro com as pe rm isse s j re fe ridas,
usaram os o com ando ch m od, q ue o q ue
de fine as pe rm isse s, da se guinte m ane ira:

gnu/l
inux
b in/ de v/ h om e / l
ost+ found/ proc/ sb in/
usr/ b oot/ e tc/ l
ib / m nt/ root/ tm p/ var/
Se gue -se a e xpl
icao de para q ue se rve m
cada um de ste s dire ctrios:

/b in
Ab re viatura para Binarie s
- Binrios.
Contm a m aioria dos e xe cutve is m ais
com uns
q ue
se ro
usados
pe l
os
util
izadore s, adm inistradore s e siste m a
Norm al
m e nte contm as sh e l
l
s com o b ash ,
csh , assim com o com andos, por e xe m pl
o:
su, tar ou unam e .

Siste m a de
dire ctrios
Introduo

/sb in

Um a das prim e iras dife re nas q ue sal


ta a
vista para q ue m com e a a usar Linux a
e strutura de dire ctrios do Linux, q ue nada
te m a ve r com o W indow s. Pode pare ce r
um pouco al
e atrio, m as na re al
idade
e xiste um a l
gica e funo para cada
dire ctrio. Assim , o ob je ctivo de ste te xto
apre se ntar e fam il
iarizar com o siste m a
Linux.

O Siste m a
A prim e ira coisa q ue pre ciso pe rce b e r
q ue e m Linux os discos e partie s no
apare ce m ne ce ssariam e nte com o unidade s
dife re nte s, com o o C:, D :, do W indow s.
Tudo faz parte de um nico dire ctrio,
ch am ado de root, re pre se ntado por /,
e m q ue tudo fica ace ssve l a partir de
vrios sub -dire ctrios. (No confundir com
o util
izador 'R oot' q ue o Adm inistrador)
Um aspe cto sob re o siste m a Linux q ue
inte re ssante sab e r, q ue tudo num
siste m a Linux um fich e iro, se no um
fich e iro, e nto um proce sso.
Se assim , e nto o q ue um D ire ctrio?
So fich e iros com l
istas de outros fich e iros.
Nave gando no siste m a de fich e iros do
Linux, no / pode m os e ncontrar os
se guinte s dire ctrios:

<25>

Ab re viatura para Syste m Binarie s Binrios do Siste m a. se m e l


h ante ao /b in,
m as contm ape nas program as e sse nciais
ao siste m a, com o adm inistrao e
m anute no e e sse ncial para o se u
arranq ue .

/b oot
Contm os fich e iros de arranq ue e o k e rne l
do Linux, q ue so ace didos ante s do re sto
do siste m a e star m ontado, e parte dos
b ootl
oade rs (LILO e GR UB).

/de v
Contm os fich e iros q ue re pre se ntam o
h ardw are
pre se nte
na
m q uina.
Encontram -se fich e iros com o h da1, h da2,
cdrom , e tc. q ue re pre se ntam dispositivos
re conh e cidos e instal
ados no Linux.

/e tc
Contm a m aioria de todos os fich e iros de
configurao e m anipul
ao do siste m a
Linux. Ne l
e pode m e ncontrar por e xe m pl
o
fich e iros de configurao de program as,
do siste m a grfico X11, scripts de arranq ue .

/h om e
Contm as pastas de cada util
izador (H om e
D ire ctory). O s util
izadore s com uns s
conse gue m ace de r sua prpria pasta (a
no se r q ue l
h e s e spe cifiq ue m outro tipo
de ace ssos). D e ntro de cada pasta de
util
izador tam b m se e ncontram os

gnu/l
inux

/l
ib
Contm as b ib l
iote cas b sicas do siste m a
q ue
pode m
se r com partil
h adas por
dive rsos program as. Este dire ctrio pode
se r com parado ao dire ctrio Syste m 32 ou
Syste m do W indow s.

/l
ost+ found
D e pois de um crash do siste m a, com o por
e xe m pl
o fal
ta de e ne rgia, o Linux ir te ntar
re cupe rar o q ue e st corrom pido no
prxim o arranq ue . Caso um fich e iro e ste ja
corrom pido, e l
e se r col
ocado ne ste
dire ctrio.

/m nt
Ab re viatura para "m ount point" (ponto de
m ontage m ). Contm
a m aioria das
m ontage ns do siste m a ope ractivo. aq ui
q ue ir te r ace sso aos Cdrom s, Usb s,
Partie s, e tc. Em al
gum as distrib uie s,
ce rtas unidade s com o Usb s e carte s de
m e m ria so m ontados e m /m e dia. Pode
criar os m ount points q ue pre cisar, pois
no e xiste m l
im itae s nos m ountpoints.

/opt
Este
dire ctrio
contm
program as
opcionais, com o por e xe m pl
o K D E. Cada
softw are te r a sua prpria pasta.

/proc
um pse udo-dire ctrio q ue forne ce
inform ae s sob re o k e rne l e sob re os
proce ssos q ue e sto activos no m om e nto,
al
m de inform ae s sob re a util
izao de
al
guns dispositivos e do siste m a.
Cada sub -pasta re pre se nta um proce sso.
Al
guns program as com o 'ps' ou 'top'
ace de m a e sta pasta para re col
h er
inform ao do siste m a e m
ve z de
com unicar dire ctam e nte com o k e rne l
.

/root
Este o H om e D ire ctory do util
izador root
( Adm inistrador ), onde s e l
e te m ace sso.

<26>

/tm p
Este dire ctrio arm aze na os fich e iros
te m porrios. l
im po durante o arranq ue e
sh utdow n do se u siste m a,
No
aconse l
h ve l guardar aq ui
fich e iros
im portante s.

/usr
Ab re viatura para Unix Syste m R e sourse s
Contm todos os com andos, b ib l
iote cas,
program as, pginas de m anuais e outros
fich e iros e stticos q ue so ne ce ssrios para
o funcionam e nto norm aldo siste m a.

Al
gum s sub -dire ctrios:
/usr/doc - Contm

grande

parte

da

docum e ntao do Linux

/usr/src/l
inux - Contm o cdigo fonte do
K e rne l
.

/usr/b in - Contm outros fich e iros b inrios


re fe re nte s aos util
izadore s, m as q ue no
so e sse nciais.

/var
Contm fich e iros q ue possue m dados
varive is, com o fich e iros de l
ogs, fich e iros
de configurao de corre io e l
e ctrnico, de
im pre sso, e ntre outros.

Concl
uso
Este te xto um a apre se ntao sim pl
e s do
Siste m a de D ire ctrios do Linux, m as um
conh e cim e nto ne ce ssrio para pode r
aprove itar o pote ncial q ue e ste siste m a
ofe re ce .
A mel
h or m ane ira de pe rce b e r e apre nde r
usar.

M arco Sil
va

fich e iros de configurao re spe ctivos para


cada um . Pode se r com parado ao
"D ocum e nts and Se ttings do W indow s

proje cto
Finda a introduo, vo se r ab ordados dois
te m as da arq uite ctura do O rion's Be l
t.

Siste m a de R e cursos
h ttp://orionsb e l
t.zi-yu.com

Introduo
O O rion's Be l
t um jogo w e b -b ase d
el
ab orado por dois portugue se s com o
trab al
h o finalde b ach are l
ato. Est e scrito
e m C# e funciona e m cim a de ASP.NET.
Este
jogo te m
vrias caracte rsticas
se m e l
h ante s a outros jogos do gne ro
m ais conh e cidos: O gam e e D ark gal
axy. No
O B o jogador com e a com um h om e
pl
ane t e pode partir conq uista de outros
pl
ane tas pe l
a gal
xia. A ge sto de pl
ane tas
um dos aspe ctos m ais im portante s do
jogo, se ndo ne ce ssria a construco de
e difcios, e l
ab orao de pe sq uisas, e tc,
para e vol
uir tanto te cnol
ogicam e nte com o
e cnom icam e nte .
O aspe cto q ue dife re ncia o O B dos outros
jogos do gne ro o m ode l
o de com b ate .
Todos os com b ate s so re al
izados num
tab ul
e iro com as unidade s produzidas nos
pl
ane tas. Este m otor de com b ate e st
im pl
e m e ntado e m JavaScript.

O O B conta com um grande nm e ro de


re cursos: 43 e difcios, 25 unidade s e 48
pe sq uisas. A fcilm anunte no/adio de
re cursos foi um dos prim e iros ob je ctivos
para o m otor de jogo. Para e ste fim foi
criado um idiom a XMLcapaz de re pre se ntar
e sta inform ao.
Este
idiom a XML pe rm ite
de scre ve r
facil
m e nte todas as capacidade s de um
q ual
q ue r re curso, se ja e l
e e difcio, pe sq uisa
ou unidade s de com b ate . possve l
de scre ve r o pre o, as de pe ndncias e
caracte rsticas vrias.
O uso de XMLfe z com q ue o m otor se ja m ais
sim pl
e s e al
go ge nrico. Contudo, h vrias
outras vantage ns e m se te r usado XMLpara
de scre ve r os re cursos. Atravs do uso de
XSLT (idiom a XML q ue transform a XML
noutros form atos) foram criadas te m pl
ate s
q ue pe gam no XML dos re cursos e o
transform am
em
pginas do m anual
(form ato w ik i) e tam b m e m fich e iros
JavaScriptpara uso do m otor de com b ate .

Cada unidade te m um conjunto de


caracte rsticas com o: ataq ue , de fe sa, dano,
vida, al
cance e tipo de m ovim e nto.
Al
gum as
unidade s
tm
ainda
caracte rsticas e spe ciais com o: ataq ue
ricoch e te , ataq ue catapul
ta, ataq ue tripl
o,
b nus de ataq ue /de fe sa e m ce rtos tipos de
te rre no ou contra ce rtos tipos de unidade s.
Todas e stas caracte rsticas faze m com q ue
o com b ate se ja m uito tctico, e um dos
aspe ctos m ais al
iciante s do jogo.
No O B h incl
usve torne ios parte e m
q ue os jogadore s so forne cidos com um a
arm ada, e tm de passar um a fase de
grupos e de se guida os pl
ayoffs. Este s
torne ios contam para um siste m a de
R ank ing b ase ado no ELO R ank ing Syste m
(usado no Xadre z), e pe rm ite m sab e r q ue m
so os m e l
h ore s jogadore s no tab ul
e iro.

<27>

O tab ul
e iro de jogo
do O rion's Be l
t

proje cto
<resource type="Unit" value="ColonyShip">
<dependencies>
<resource-ref type="Building" value="StarPort" />
<resource-ref type="Research" value="AdvancedFlightI" />
</dependencies>
<cost>
<resource-needed type="gold" value="5000" />
<resource-needed type="mp" value="8000" />
<resource-needed type="energy" value="1000" />
<resource-ref type="Building" value="StarPort" />
<duration value="15" quantity="1" />
</cost>
<attributes>
<attribute type="TeletransportationCost" value="350"/>
</attributes>
<oncomplete/>
<battle unitType="special">
<attack base="230" range="1" minimumDamage="200" maximumDamage="250"/>
<defense base="8000" hitPoints="9200" canStrikeBack="true" />
<movement cost="6" type="all" level="air" />
</battle>
</resource>

Idiom a do Siste m a de R e cursos

Um a apl
icao w e b norm al
m e nte e st
associada a um SGBD (siste m a de ge sto de
b ase s de
dados) com o o MySQ L,
Postgre SQ L, e tc. O O B suporta vrios tipos
de SGBD atravs da de sign patte rn b ridge .
Toda a cam ada de ace sso a dados foi
pe nsada com o um a ab straco ao SGBD
usado e m runtim e . Para atingir e ste fim
criada um a cl
asse b ase ab stracta com as
funcional
idade s e l
e m e ntare s e
cl
asse s
de rivadas q ue contm e spe cial
izae s para
cada SGBD . Por e xe m pl
o, para pe rsistir as
Al
ianas, e xiste a cl
asse Al
l
iance Util
ity:
public class AllianceUtility {
public abstract Alliance Get(int id);
public abstract Alliance[] GetAll();
public abstract void Save(Alliance a);
...
};

Cada cl
asse Util
ity usa tam b m o de sign
patte rn singl
e ton, para provide nciar um
nico ob je cto daq ue l
e
tipo, se m pre
disponve l
. usada um a proprie dade static
q ue indica q ual o ob je cto q ue trata da
pe rsistncia. aq ui q ue h a ponte para a
im pl
e m e ntao corre nte . O SGBD al
vo
de cidido e m com pil
e tim e atravs de
parm e tros no com pil
ador.

<28>

D e sta form a possve l te r vrias


im pl
e m e ntae s de pe rsistncia, q ue so
e scondidas da re stante l
gica de apl
icao.

Concl
uso
O O B um proje cto j com al
gum a
dim e nso. Contudo, ce rtas e scol
h as b e m
pe nsadas no incio de de se nvol
vim e nto
tornaram -se grande s e scol
h as no futuro do
jogo, pois pe rm ite m
um a e xce l
e nte
facil
idade de m anunte no.
Convidam os todos os inte re ssados a
e xpe rim e ntar o jogo. O jogo dividido e m
rondas e , por vol
ta de Se te m b ro, ir com e ar
um a nova ronda. Para e sta nova ronda
e sto
pl
ane adas
al
gum as
novidade s
inte re ssante s: possib il
idade de construo
de D e ath Stars, e stas l
uas de com b ate so
inspiradas pe l
a D e ath Star da Gue rra das
Estre l
as, e com b ate s com q uatro jogadore s
ao m e sm o te m po - torne ios com com b ate s
1x1x1x1 ou 2x2.
Q ue m tive r m ais curiosidade no jogo pode
passar pe l
o e nde re o:
h ttp://pt.w ik i.zi-yu.com /inde x.ph p/Vde os
Ne ste e nde re o e sto vde os de dois
com b ate s e um de introduo gl
ob alao O B.

Pe dro Santos

Base s de D ados

anl
ise s

O m ais frustrante para os actuais w e b


de pe nde nte s no pode r consul
tar o e -m ail
ou visitar um a de te rm inada pgina w e b s
porq ue e st l
onge de um pc. H oje e m dia
e xiste m outras form as de ace de r Inte rne t
se m faze r uso de um com putador, se
pe nsarm os b e m q uase todos ns possum os
um te l
e m ve lcom gprs com suporte para
apl
icae s java, q ue pe rm ite um a l
igao
e stve l de 56k b ps, m as o facto q ue a
m aioria de l
e s no possue m um b row se r h tm l
re al
m e nte funcional
, ou pura e sim pl
e sm e nte
no o possue m .
Pois agora j e xiste um a opo de al
ta
q ual
idade para q ue m q ue r tirar todo o
pote ncial da Inte rne t associada ao vosso
te l
e m ve l
, pda ou sm artph one . E e ngane m -se
aq ue l
e s q ue pe nsam q ue so poucas as
pl
ataform as e te l
e m ve is suportados, um a
ve z q ue a l
ista de e q uipam e ntos e xte nsa e
constante m e nte actual
izada. Posso dize r q ue
o m e u 7250i se tornou um com panh e iro
im portante no te m po e m q ue e stive l
onge da
Inte rne t, e m e pe rm itiu consul
tar o e -m ailno
gm ail
, visitar a m inh a pgina e por ve ze s
visitar incl
usive a pgina do frum portugal
-aprogram ar.org.
Ape sar das pginas se re m de m asiado
grande s para q ual
q ue r e cr de um te l
e m ve l
,
o O pe ra Mini conse gue dige rir com pl
icadas
pginas e torn-l
as m uito sim pl
e s de form a a
facil
itar a sua visual
izao. E ape sar de
al
gum as pginas se re m m uito grande s e
ficare m m uito com pridas o O pe ra Mini
pe rm ite -nos nave gar na pgina com im e nsa
facil
idade , cl
icar e m l
ink s, faze r scrol
le
visual
izar com porm e nor as im age ns.
Entre as fe rram e ntas incl
udas e sto um
h istrico de pginas visual
izadas, um ge stor
de favoritos, suporte autom tico para
pe sq uisas no googl
e e al
guns dicionrios,
suporte para dow nl
oad de im age ns e um
ge stor de passw ords.

<29 >

Com o se no b astasse e ste softw are


fre e w are e de fcil instal
ao b astando
ace de r a m ini.ope ra.com com o w ap do vosso
te l
e m ve l e a pgina indicar os passo
ne ce ssrios para instal
are m o O pe ra Mini,
se l
e ccionando a ve rso corre cta. Pode ro
consul
tar a l
ista de dispositivos com patve is
e m h ttp://w w w .ope ra.com /products/m ob il
e/
ope ram ini/ph one s.
Te ndo e m conta q ue o O pe ra se m pre foi um
b row se r inte re ssante , no surpre e nde q ue o
O pe ra Mini siga as passadas do se u irm o
m ais ve l
h o, e e m dispositivos m ve is
actual
m e nte o re i. Fica ape nas a fal
tar o
suporte para fl
ash , porq ue de re sto no
e xiste nada a apontar de ne gativo a e ste
b row se r.
Actual
m e nte o O pe ra e st tam b m a se r
incl
udo e m outros tipos de e q uipam e ntos
com o consol
as (Ninte ndo W ii e D S), Inte rne t
Tab l
e ts (Nok ia 770), Portab l
e Me dia Pl
aye rs
(Arch os PMA400), avie s e tv b oxs. R e sta
sab e r q ual o l
im ite de ste b row se r.

Srgio M atias

O pe ra M ini

As re stante s funcional
idade s pode m dife rir
da ve rso do O pe ra m ini, um a ve z q ue
e xiste m duas a Basic e a Advance d. A
Advance d possui um a m e l
h or com pre sso de
te xtos e de im age ns o q ue pe rm ite m e l
h orar
o te m po de carre gam e nto, assim com o um
inte rface m e l
h orado com suporte para icons,
scrol
lm ais suave e um re l
gio. A Advance d
conse gue tam b m m e l
h ore s re sul
tados a
're nde rizar' pginas grande s criando um a
grande pgina, e nq uanto q ue a Basic te m de
criar vrios se gm e ntos de pgina.

anl
ise s

Program ao O rie ntada


a O b je ctos e m JAVA 2

Linguage ns W e b

O l
ivro fal
a de program ao orie ntada aos
ob je ctos usando a l
inguage m JAVA. da
autoria de F. Mrio Martins, profe ssor
associado da Unive rsidade do Minh o e
coorde nador do grupo SIM - Softw are ,
Inte raco e Mul
tim dia.

Linguage ns W e b um l
ivro de iniciao
program ao orie ntada W e b q ue re ne
todas
as
principais
l
inguage ns
de
program ao util
izadas na Inte rne t, de
form a concisa e b e m apre se ntada para
possib il
itar um a apre ndizage m m ais rpida
e progre ssiva.

Ne sta ob ra com e am por se r ab ordados os


principais
conce itos
associados

program ao
orie ntada
aos
ob je ctos,
nom e adam e nte o q ue um ob je cto, o
e ncapsul
am e nto e
a dife re na e ntre
instncias e cl
asse s. A m aior parte do l
ivro ,
contudo, de dicada te cnol
ogia JAVA, se ndo
ab ordados os aspe ctos m ais im portante s q ue
e sta l
inguage m suporta (cl
asse s, h ie rarq uias,
e xce pe s, inte rface , e tc). Possui m uitos
e xe m pl
os de cdigo onde so apl
icados os
conce itos
ab ordados,
facil
itando
a
com pre e nso dos m e sm os. Nota-se tam b m a
pre ocupao de
e nsinar tcnicas de
program ao q ue pe rm itam q ue o softw are
de se nvol
vido
satisfaa
proprie dade s
e sse nciais h oje e m dia, com o por e xe m pl
oa
m odul
aridade e a e xte nsib il
idade .

As l
inguage ns ab ordadas so: H TM L, CSS,
JavaScript, ASP, ASP.NET (VB.NET e C#),
PH Pe Java.

<30>

Fal
a um pouco sob re cada l
inguage m onde
ab ordada a sua e strutura, a sua sintaxe ,
sua form atao e
com o a util
izar
corre ctam e nte .
Esta ob ra aconse l
h ada a q ual
q ue r
program ador no e ntanto e xce l
e nte para
program adore s q ue se e ste jam a iniciar
pois util
iza um a l
inguage m cl
ara e de fcil
e nte ndim e nto com e xe m pl
os e xpl
icados
para um a m ais rpida e
e ficie nte
apre ndizage m .
forne cido apoio on-l
ine a e ste l
ivro e m
h ttp://l
inguage ns.m e diate ca.info

Joo Pe re ira

R ui Gonal
ve s

Pare ce -m e um l
ivro b astante indicado para
q ue m q ue r apre nde r JAVA ou para q ue m
procura
apre nde r
m e todol
ogias
de
program ao q ue pe rm itam aum e ntar a
q ual
idade das apl
icae s q ue de se nvol
ve .
No se r, no e ntanto, o l
ivro m ais indicado
para q ue m j te m al
gum a e xpe rincia com
JAVA e com PO O e m ge ral
, pois aspe ctos
m ais avanados da l
inguage m no so
ab ordados.

Este l
ivro foi e scrito por Al
e xandre Pe re ira
e Carl
os Poupa e e ditado por "e die s
Sl
ab o". D ata do ano 2004 e possui ce rca
de 450 pginas.

inte rne t

O cssvaul
t disponib il
iza um a
l
arga gal
e ria de w e b site s de
q ual
idade , organizados por m s
e ano, todos e l
e s de grande
q ual
idade . se m dvida um
e xce l
e nte stio de consul
ta do
q ue
de
mel
h or e xiste
no
m om e nto
na
W eb
2.0.
h ttp://cssvaul
t.com

Por se u l
ado o cssBe auty ofe re ce
aos
se us
util
izadore s
um a
gal
e ria se m e l
h ante
ao
do
cssvaul
t, m as tam b m ofe rtas de
e m pre go, artigos de css, h tm l
,
javascript e outros de grande
inte re sse
para
os
w e bde ve l
ope rs.
h ttp://w w w .cssb e auty.com

Foi criada e m M aro de ste ano e s agora


de scob rim os um a pe q ue na pgina com 12
pe rguntas fre q ue nte s de util
izadore s q ue nunca
viram Linux na sua vida. Esta pgina criada pe l
o
Grupo de Linux da Unive rsidade de Ave iro e st
disponve lpara consul
ta e m h ttp://gl
ua.ua.pt/Linux.

h ttp://w w w .ore il
l
yne t.com /pub /a/ore il
l
y/
tim /ne w s/2005/09 /30/w h at-is-w e b 20.h tm l

<31>

D anie lCorre ia

M uito se te m fal
ado no q ue a W e b 2.0
re al
m e nte , q ual os b e ne fcios q ue
pode re m os tirar disso. Pois b e m , aq ui
e st m ais um docum e nto a te ntar
e xpl
icar isso m e sm o.

bl
ue scre e n

e m acs ou vim ?

o se gre do por trs do Pe ntium 2

m ais um cl
ssico...

<32>

com unidade

Um
ano
passado
da criao
da
com unidade e , com o todos de ve m sab e r,
as coisas vo de "ve nto e m poupa".

Q ue re s participar na re vista
PR O GR AM AR ?Q ue re s inte grar
e ste proje cto, e scre ve r artigos e
ajudar a tornar e sta re vista num
m arco da program ao nacional
?

A com unidade conta j com m ais de 1800


util
izadore s re gistados e com um a m dia
de visitas dirias a tocar o al
garism o dos
m il
h are s. H ouve ne ste s l
tim os te m pos a
sada de al
guns m e m b ros do staff (Sara
Sil
va, Bruno M onte iro, H ugo Viol
ante ) por
m otivos profissionais e /ou pe ssoais, m as
contam os j com a participao activa de
novas pe ssoas com vontade de construir e
inovar (Fe rnando M artins, Srgio Lope s,
Joo M atos e Jos O l
ive ira).

Vai a

w w w .re vista-program ar.info

re vistaprogram ar

@portugal
-a-program ar.org
Pre cisam os do apoio de todos
para tornar e ste proje cto ainda
m aior...
contam os com a tua ajuda

D e ntro e m b re ve pode ro contar com um a


nova fe rram e nta de apoio, o w ik i do p@p,
q ue e star pronto e ace ssve la todos para
e scl
are ce r de form a m ais prtica todas as
vossas dvidas e tam b m para pode re m dar
as
vossas
contrib uie s,
q ue
so
ob viam e nte parte fundam e ntalde toda a
com unidade . Estam os tam b m no incio da
criao de um a nova pl
ataform a de
apre ndizage m , b ase ada no m oodl
e . Ainda
te m os m uito trab al
h o pe l
a fre nte , m as
possum os grande s pe rspe ctivas para e sta
pl
ataform a.
Vrios pe q ue nos proje ctos tm vindo a
apare ce r de ntro da com unidade e so al
go
q ue re al
m e nte m e re ce a pe na ve r. Portanto,
para conh e ce re m b e m a com unidade , nada
mel
h or do q ue passar por...

w w w .portugal
-a-program ar.org

<33>

D avid Pintassil
go

para m ais inform ao com o


participar
ou e nto contacta-nos por

Você também pode gostar