Você está na página 1de 34

e ditorial

índice

3 notícias
4 te m a de capa
8 a program ar
17 te cnol ogias
21 tutorial
23 gnu/l inux
27 proje cto
30 anál is e s
32 inte rne t
33 bl ue s cre e n
34 com unidade

e q u ipa PR O G R A M A R

adm inis tração


Rui M aia
D avid Pintas s il
go

coorde nador
A pre s e ntação e divu l
g ação
S érg io S antos
A úl tim a e dição foi um m arco m uito im portante para o nos s o
coorde nador adjunto proje cto. Nunca a re vis ta PRO G RAM AR tinh a s ido tão fal ada,
M ig ue lPais tão divul gada e , principal m e nte , nunca tinh a s ido tão l ida. Foi
tam bém após o l ançam e nto da q uarta e dição q ue fize m os a
re dacção nos s a prim e ira apre s e ntação públ ica, q ue te ve l ugar no
Fe rnando M artins BarCam pPT 2006. Es te e ve nto de corre u no Pól o 2 da
Patric Fig ue ire do Unive rs idade de Coim bra e te ve com o públ ico profis s ionais e
João Pe re ira
Fábio Corre ia am adore s da nos s a áre a.
D anie lCorre ia
Tiag o S alg ado Es te s re s ul
tados e le vam a fas q uia da q ual idade q ue nos é
M arce lo M artins e xigida por parte dos nos s os l e itore s , q ualidade e s s a q ue
Pe dro S ous a q ue re m os continuar a garantir. É e s s a, portanto, a razão do
Pe dro Cal de ira
atras o de al guns dias de s ta e dição. Pe dim os de s cul pa de s de
col
aboradore s já por e s te facto, m as cons ide ram o-l o com pre e ns íve l
, vis to q ue
Jos é O l
ive ira ainda s om os um a e q uipa de am adore s , q ue trabal h a ne s te
proje cto por s atis fação pe s s oal
.
contacto
re vis taprog ram ar Ne s ta e dição pode m e ncontrar a nova s e cção Te cnol ogias ,
@ portug al -a-prog ram ar.org
de dicada a artigos q ue , e m bora não e s te jam dire ctam e nte
re l
acionadas com program ação, s ão im portante s para o
Sérgio Santos

w e bs ite
w w w .re vis ta-prog ram ar.info de s e nvolvim e nto de al gum as aplicaçõe s . Es ta com e ça com um
artigo s obre RFID , um te m a cada ve z m ais dis cutido
actual m e nte . Ire m os tam bém apre s e ntar e m bre ve um novo
portalpara a re vis ta, m ais dinâm ico e com m ais inform açõe s
s obre o proje cto, de s e nvolvido por m e m bros da nos s a e q uipa.

<2 >
notícias

M IT financia ins titutos portugue s e s


O acordo do G ove rno português com o M as s ach us e tts Ins titute ofTe ch nol ogy (M IT)
e nvolve um financiam e nto públ ico gl obalde 32 m il h õe s de e uros às ins tituiçõe s
nacionais abrangidas pe l o Program a M IT Portugal . O Program a e nvol ve q uatro
áre as te m áticas : Enge nh aria de Conce pção e Sis te m as Avançados , Sis te m as de
Ene rgia, Sis te m as de Trans porte s e Sis te m as de Bioe nge nh aria.

O acordo de coope ração com o ins tituto norte - am e ricano M IT e nvol ve a Es cola
de Enge nh aria da Unive rs idade do M inh o, a Facul dade de Ciências da unive rs idade
de Lis boa, as facul dade s de Ciências e Te cnol ogia da Unive rs idade de Coim bra e da
Unive rs idade Nova de Lis boa e a Facul dade de Enge nh aria da Unive rs idade do Porto.
Envol ve ainda o Ins tituto Supe rior de Econom ia e G e s tão da Unive rs idade Técnica de
Lis boa e o Ins tituto Supe rior Técnico da Unive rs idade Técnica de Lis boa.

Se gundo o te xto do acordo, as ins tituiçõe s nacionais , e m parce ria com o M IT,
pode rão nos próxim os cinco anos contratar profe s s ore s convidados «de m érito
inte rnacional »e inve s tigadore s e m pós -doutoram e nto. O program a pre vê ainda q ue
os e s tudante s , inve s tigadore s e doce nte s e m ins tituiçõe s portugue s as col
abore m
com e q uipas de inve s tigação no M IT.

AM D tripl
ica l
ucro Fire fox 2.0 atinge 2 m il
h õe s de
A Advance d M icro D e vice s (AM D ) s upe rou as
dow nl oads e m 24 h oras
e xpe ctativas dos analis tas finance iros ,
O Fire fox 2.0 atingiu os 2 m ilh õe s de dow nloads
lucrando 134 m il h õe s de dól are s e facturando
no prim e iro dia, com picos de 30 dow nl oads
1,33 bil h ão de dólare s no te rce iro trim e s tre de
por s e gundo. Is to s ignifica q ue o Fire fox e s tá
2006. A e s tim ativa dos anal is tas e ra um a
e m vias de s upe rar os 3 m ilh õe s de dow nl oads
re ce ita de 1,31 biliõe s de dól are s . As m arge ns
e m 4 dias do IE7. Es te s s ão re s ul tados m uito
ope racionais da e m pre s a, contudo caíram ,
pos itivos para a e q uipa de de s e nvol vim e nto
facto q ue a AM D atribui a ve ndas m e nos
da M ozil l
a. No e ntanto, o núm e ro de
ace l e radas de ch ips para de s k tops .
util
izadore s do Inte rne t Expl ore r 7 de ve rá
aum e ntar com o l ançam e nto do W indow s Vis ta.
A q ue da de m arge m re fl e te tam bém a dis puta
com a rivalInte l–q ue re portou q ue da de 35%
no l ucro ne s te trim e s tre . Para o q uarto trim e s tre ,
a AM D pre vê um cre s cim e nto apoiado na fus ão
com a fabricante canadiano de ch ips gráficos
ATI. O obje ctivo é o de ofe re ce r produtos
inte grados ao m e rcado de com putadore s
m óve is e e l
e trônicos de cons um o.

<3>
te m a de capa
pos s íve la apl icação dos s cripts divul
gados
inde pe nde nte m e nte da bas e de dados e m
caus a. É de re fe rir q ue é com um cada
s is te m a de bas e de dados pos s uir as s uas
próprias e xte ns õe s e m bora, as norm as SQ L-
92 e SQ L-9 9 s e jam , gros s o m odo,
im pl e m e ntadas por todos .

O bje ctivo
Um a BD te m com o obje ctivo úl tim o guardar
e re cupe rar dados , e q uanto m ais de pre s s a
Bas e s de D ados mel h or. Es ta é a ide ia q ue s e te m e m m e nte
q uando s e fal a e m BD .
É tam bém com e s te e outros obje ctivos e m
As Bas e s de D ados (BD ) s ão m e nte , q ue os artigos s e rão apre s e ntados .
im pre s cindíve is a q ual q ue r O s te m as focados vão pe rm itir a q ual q ue r
s is te m a e s ão por is s o pre s e nça um iniciar-s e no m undo das BD s e e vol uir a
cons tante no dia-a-dia de todos ponto de criar conh e cim e nto e
q uantos faze m de s e nvol vim e nto. s e ns ibil
idade s uficie nte s para criticar e
dis cutir s e m pre q ue o te m a de conve rs a for
Es ta re al idade advém da ne ce s s idade de o unive rs o das BD s .
"m e m ória pe rs is te nte " q ue q ual q ue r
apl icação te m , por m ais s im pl e s q ue s e ja.
Is to é vis íve le óbvio num com pl e xo s is te m a Bas e de D ados
bancário, m as é tam bém vis íve l , por ve ze s
m e nos óbvio, num jogo q ue guarda as D e um a form a s im ple s , um a BD pode s e r
pontuaçõe s dos m e l h ore s jogadore s num de finida com o um s im pl e s banco de dados
s im ple s fich e iro de te xto. organizado s e gundo um a de te rm inada
e s trutura.
Inde pe nde nte m e nte do s uporte us ado, a
ne ce s s idade de guardar e re cupe rar Actual m e nte , os Sis te m as de G e s tão de
dados e xis te e é um a cons tante e m Bas e s de D ados (SG BD ) m ais com uns e m ais
q ualq ue r aplicação. us ados s ão os re l acionais , q ue as s e ntam
s obre um a e s trutura de re l açõe s e ntre
e ntidade s . No e ntanto, o m undo das BD
Âm bito não s e e s gota nos Sis te m as de G e s tão de
Bas e de D ados Re l acionais - Re l ational
Ne s te âm bito, ao l ongo das próxim as D atabas e M anage m e nt Sy s te m na
e diçõe s da Re vis ta Program ar vão s e r te rm inologia das BD - (RD BM S). Exis te m
apre s e ntados artigos s obre bas e s de dados outras BD com e s truturas h ie rárq uicas ou
abrange ndo um conjunto de te m as q ue por obje ctos , m as a s ua util ização não é
ajudam a com pre e nde r m e l h or e s te m uito difundida e s ão norm al m e nte us adas
m undo, de s de a ide al ização de um e m cas os particul are s .
m ode l o de dados até à tare fa de tuning de
um a bas e de dados .
Em paral elo com os artigos h ave rá um a Exe m pl
o
s e cção prática q ue il us trará e pe rm itirá
acom panh ar os conh e cim e ntos aq ui D e form a a il us trar e a pe rm itir um m e l
h or
apre s e ntados . Es ta s e cção prática s e guirá acom panh am e nto de s te artigo, o m e s m o
a norm a S Q L-9 9 para q u e s e ja vai s e r com pl
e m e ntado com um e xe m pl o.

<4>
te m a de capa

D ado q ue é ne ce s s ário ide ntificar


O de s afio é cons truir um a BD para um a univocam e nte cada um dos inte rve nie nte s
pe q ue na bibl iote ca pe rm itindo re gis tar não de cada e ntidade , torna-s e ne ce s s ário
s ó os l ivros , m as tam bém os util izadore s e as dotar cada e ntidade com um ide ntificador
re q uis içõe s de l ivros . único. Pe ns ando no cas o do util izador, um
pos s íve l ide ntificador s e rá o núm e ro do
bilh e te de ide ntidade (BI). Pe ns ando no
M ode l
o Re l
acional cas o do l ivro, um pos s íve lide ntificador s e rá
o ISBN. Ne s te cas o, ide ntificaram -s e as
O m ode l o re l
acionalde fine a e s trutura da ch ave s candidatas de cada um a das
BD e é o prim e iro pas s o no de s e nh o de e ntidade s , q ue s ão as proprie dade s q ue
um a BD . Es te m ode l o m ode la a re al idade pe rm ite m ide ntificar univocam e nte
de form a l ógica, ou, por outras pal avras , q ual q ue r utilizador ou l ivro através de um a
re pre s e nta a s ol
ução l
ógica para um dado proprie dade , ou de um conjunto de
probl e m a. proprie dade s . Por e xe m pl o, um a pos s íve l
ch ave candidata pode ria para um
As s im , o prim e iro pas s o é ide ntificar as utilizador s e r o nom e e a m orada, q ue
e ntidade s e m caus a. D ado o de s afio de juntos tam bém ide ntificam univocam e nte
um a pe q ue na bibl iote ca, a m e s m a te rá: um util izador.
-l ivro: q ue re pre s e nta um l ivro;
- util izador: q ue re pre s e nta os util
izadore s D o conjunto das ch ave s candidatas
da bibl iote ca. se le cciona-s e a m e l h or q ue torna pos s íve l
ide ntificar univocam e nte q ual
q ue r
Um a das principais funçõe s de um a utilizador, ne s te cas o o utilizador através do
bibliote ca é e m pre s tar l
ivros , e s ta re al
idade BI, e o livro através do ISBN.
não e s tá ainda re pre s e ntada no m ode l o e Te ndo as ch ave s prim árias s e l e ccionadas ,
é ne ce s s ário criá-l
a. as e ntidade s ficam as s im re pre s e ntadas :
-l ivro: ISBN, te m pe l o m e nos um autor, te m
As s im , num a s e gunda ite ração, al te ram os o um títul o, te m um a e ditora;
m ode l o para pe rm itir q ue os util izadore s s e - util izador: BI, te m um nom e , um a m orada;
ligue m aos l ivros através de re q uis içõe s . - re q uis ição: ISBN, BI.
D e s ta form a, as e ntidade s ide ntificadas s ão:
-l ivro: q ue re pre s e nta um l ivro; Agora a e ntidade re q uis ição pos s ui duas
- util izador: q ue re pre s e nta os util izadore s proprie dade s , ISBN e BI, q ue s ão as ch ave s
da bibl iote ca; prim árias das e ntidade s l ivro e autor,
- re q uis ição: q ue re pre ns e nta a l igação re s pe ctivam e nte . O u s e ja, a e ntidade
e ntre um l ivro e um utilizador da bibl iote ca. re q uis ição pos s ui duas ch ave s e s trange iras ,
um a ve z q ue e s s as duas proprie dade s s ão
As s im , um a ve z ide ntificadas as e ntidade s , ch ave s de outras e ntidade s . D e para-s e
é ne ce s s ário ide ntificar as caracte rís ticas e agora um de s afio: q uala ch ave prim ária
proprie dade s de cada um a de l as : da re q uis ição?
-l ivro: te m pe l o m e nos um autor, te m um
títul o, um a e ditora e o ISBN; M e dite m os um pouco: s e um a re q uis ição
- util izador: te m um nom e , um a m orada não é m ais do q ue um a l igação e ntre um
e o núm e ro do bil h e te de ide ntidade ; util izador e um l ivro, e ntão um util izador e
- re q uis ição: te m o ide ntificador do l ivro um livro de fine m univocam e nte um a
re q uis itado e te m o ide ntificador do re q uis ição. D ado q ue um livro é
utilizador q ue e fe ctuou a re q uis ição. ide ntificado por ISBN e um util izador por BI,
e ntão a ch ave prim ária de s ta e ntidade
s e rá o par ISBN, BI.

<5>
te m a de capa
D ado q ue um l ivro pode pos s uir m ais de um O m ode l o pare ce , à priori, final izado, m as a
autor, e q ue um autor pode te r m ais de um a ve rdade é q ue o m e s m o não e s tá
obra, ide ntificam -s e duas novas e ntidade s : norm al izado. O l h ando ate ntam e nte para a
autor e autoria;e re form ul
am -s e as e ntidade s . e ntidade l ivro, notam os q ue a e ditora ir-s e -á
re pe tir variadís s im as ve ze s e m todas as
As s im , num a te rce ira ite ração s obre as e ntradas de l ivros q ue pe rte nçam a um a
e ntidade s ficam os com : m e s m a e ditora. Para e vitar e s ta re pe tição
-l ivro: q ue re pre s e nta um l ivro; do nom e da e ditora, o m ode l o te m de s e r
- util izador: q ue re pre s e nta os util
izadore s norm al izado. A norm al ização é um proce s s o
da bibl iote ca; de re e s truturação do m ode l o l ógico de
- re q uis ição: q ue re pre s e nta a ligação form a a e l im inar re dundância, organizar os
e ntre um l ivro e um util
izador da bibl iote ca; dados de form a e ficie nte e re duzir
- autor: q ue re pre s e nta um autor; pote nciais anom al ias . O lh ando m ais atrás
- autoria: q ue re pre s e nta um autor de um no e xe m pl o, tam bém já e fe ctuam os um a
livro. "ps e udo-norm al ização", ao s ubs tituir no l ivro
a re gra "te m de te r pe l o m e nos um autor"
Num a s e gunda ite ração s obre as pe las e ntidade s autor e autoria.
caracte rís ticas e proprie dade s de cada
e ntidade concl ui-s e q ue : Norm al izando o m ode l o, te m os q ue a
-l ivro: ISBN, te m um títul o, te m um a e ditora, proprie dade e ditora pas s a a s e r um a
te m um núm e ro de copias dis poníve is ; e ntidade , e l ivro pas s a a faze r re fe rência à
- util izador: BI, te m um nom e , um a m orada; e ditora e m q ue s tão:
- re q uis ição: ISBN, BI; - e ditora: idEditora, nom e ;
- autor: te m um nom e ; -l ivro: ISBN, te m um títul o, cópias
- autoria: ISBN e o ide ntificador do autor. dis poníve is , idEditora;
- util izador: BI, te m um nom e , um a m orada;
Um a ch ave candidata para a e ntidade - re q uis ição: ISBN, BI;
autor s e rá o nom e , m as dado q ue pode - autor: idAutor, te m um nom e ;
h ave r m ais de um autor com o m e s m o - autoria: ISBN, idAutor.
nom e , e m particul ar porq ue os autore s s ão,
m odo ge ral , conh e cidos ape nas pe l o se u D e s ta form a, todos os l
ivros q ue pe rte nce m a
nom e próprio e ape l ido, ne s te cas o não um a m e s m a e ditora têm a m e s m a re fe rência,
e xis te ne nh um a ch ave candidata idEditora.
s uficie nte m e nte boa para s e r e l e ita, razão Note -s e q ue tam bém na e ntidade e ditora s e
pe l a q uals e adiciona um cam po e xtra para apl icou a criação de um a proprie dade
ide ntificação e s e e fe ctua a l igação de s s e própria para a ide ntificação unívoca, e m bora
cam po e xtra de ide nficação com a autoria. aq ui o nom e pude s s e te r s ido s e l
e ccionado
com o ch ave prim ária, um a ve z q ue a
As s im , ficam os com : probabil idade de e xis tire m duas e ditoras
-l ivro: ISBN, te m um títul o, núm e ro de dis tintas com o nom e e xactam e nte igualé
cópias dis poníve is , idEditora; infím a.
- util izador: BI, te m um nom e , um a m orada;
- re q uis ição: ISBN, BI;
- autor: idAutor, te m um nom e ;
- autoria: ISBN, idAutor.

É de notar q ue a e ntidade de l igação


autoria é anál oga à de autor, ou s e ja, por
faze r a re l ação de autore s com l
ivros , a s ua
ch ave prim ária é com pos ta pe las duas
ch ave s e s trange iras .
Figura 1

<6>
te m a de capa
As e ntidade s principais de finidas no
e xe m pl o pode m s e r vis tas no diagram a da
figura 1. É de re fe rir q ue no diagram a não
cons tam as e ntidade s re l acionais , as ch ave s
prim árias e s tão re pre s e ntadas a ve rm e l ho
(PK ) e o s e u nom e e s tá norm al izado para
"id<Entidade > [Proprie dade ] ".

Re l
açõe s
Figura 2
As re l açõe s re fe ridas atrás re pre s e ntam
s im pl
e s m e nte a l ógica de re l ação, ou Por fim , o diagram a da figura 3 (1). apre s e nta
ligação, e ntre as e ntidade s . Es s as re l
açõe s o m ode l o com pl e to, com as re l açõe s e as
pode m s e r de "1 para 1", "1 para N", ou de "M e ntidade s re l
acionais com os nom e s
para N". norm al izados para "PK _<idEntidade > ". As
ch ave s e s trange ira e s tão re pre s e ntadas a
Um a re l ação diz-s e de "1 para 1"q uando um ve rde (FK ) e as ch ave s e s trange iras q ue s ão
el e m e nto de um a e ntidade s e re l aciona tam bém ch ave s prim árias e s tão
unicam e nte com outro e l e m e nto de outra re pre s e ntadas a azul(PFK ).
e ntidade . Es ta é a re l ação m ais s im pl es e
m e nos inte re s s ante q ue e xis te , não
ne ce s s itando s e q ue r de e ntidade s adicionais
para a re pre s e ntar. No cas o de um e l e m e nto
de um a e ntidade s e re l acionar com m ais de
um e l e m e nto de outra e ntidade , e s tam os na
pre s e nça de um a re l ação de "1 para N". No
e xe m pl o apre s e ntado e xis te um a re l ação
de s te tipo: um l ivro pos s ui um ou m ais autore s .
Es ta re l ação é re pre s e ntada pe l a e ntidade
autoria: um ISBN re l aciona-s e com um ou m ais
idAutor. Um a re l ação "M para N" re pre s e nta
m úl tipl as re laçõe s e ntre os e l e m e ntos de duas
e ntidade s . No e xe m pl o apre s e ntado e xis te
um a re l ação de s te tipo: um util izador pode
re q uis itar vários l ivros e um l ivro pode s e r
re q uis itado por vários util izadore s .

Só não é pos s íve lq ue um util izador re q uis ite o


m e sm o l ivro várias ve ze s de vido à e s col h a do
de s e nh o do m ode l o. Es ta re l ação é as s im
re pre s e ntada pe l a e ntidade re q uis ição, q ue Figura 3
de vido ao facto da ch ave prim ária s e r
cons tituída pe l as ch ave s prim árias das Cada um a de s tas e ntidade s vai re s ul tar num
e ntidade s re l acionadas , não pe rm ite q ue um obje cto na bas e de dados , um a tabe l a, e
util izador re q uis ite várias ve ze s o m e s m o l ivro. cada um a das proprie dade s de cada
Fe rnando M artins

Es ta re s trição não é um a l im itação, ne m de ve obje cto vai re s ul tar num a col una. M as e s te
s e r vis ta com o tal , um a ve z q ue é facil m e nte pas s o aconte ce rá ape nas num próxim o
ul trapas s áve l de finindo um a outra ch ave artigo, actual m e nte é im portante re te r os
prim ária para a e ntidade . conce itos de M ode l o Re lacional , M ode lo
Lógico, Entidade , Proprie dade , Ch ave
O diagram a da figura 2 apre s e nta o e xe m pl o Candidata, Ch ave Prim ária, Ch ave
com as e ntidade s re l
acionais m ate rial
izadas . Es trange ira e Norm al ização.
1) A notação us ada no diagram a é a notação
<7> O racle TM (O racl
e TM é um a m arca re gis tada)
a program ar

<html>

<head>
<script src="codigoAJAX.js"></script>
</head>

<body>
<form action="" method="post">
Páginas dinâm icas Utilizador Pretendido:
<input type="text" name="username"

com ASPe AJAX id="username" onKeyUp=


"verificaUtilizador(this.value)">
</form>
Q ue m nunca pe ns ou e m faze r um Ch at ou
<div id="resposta"></div>
um a Sh outBox? Exacto, m uitos de nós , no
e ntanto, algo tão ful cral com o a </body>
actual ização da conve rs a tornava-s e um </html>
q ue bra-cabe ças díficilde s ol ucionar. O u s e
fazia um re fre s h à página (al go de s agradáve l
e a e vitar), ou... Enfim , s e ria ape nas m ais um A parte do '<s cript s rc="codigoAJAX.js ">
proje cto não concre tizado. O ra, foi </s cript> ', incl ui o código AJAX para q ue
pre cis am e nte para s ol
ucionar e sse s s e ja pos s íve la ve rificação. Já o parágrafo
probl e m as q ue nas ce u o AJAX (As y nch ronous abaixo, s e rá a taláre a e m q ue nos é dito s e
JavaScriptand XM L). o us e rnam e já e xis te ou não. A acção
ve rificaUtil izador(th is .val
ue ), re q ue re o
Q uando fal am os e m AJAX convém te r a th is .val
ue para q ue o brow s e r s aiba q ue
noção q ue não s e trata propriam e nte de um a de ve actual izar a re s pos ta s e m pre q ue o
linguage m de program ação nova, e m uito te xto é al te rado. A função s e m o th is .val ue
m e nos s e re fe re ao h abitualde te rge nte . Trata- te ria de s e r invocada por um botão através
s e s im , de um a técnica para actual izar do onCl ick por e xe m pl o, cas o contrário não
inform ação rapidam e nte . Im agine m os , por iria funcionar.
e xe m pl o, um ch at. Com o h abitual H TM L O código AJAX é o s e guinte :
Re fre s h o brow s e r iria carre gar a página toda
novam e nte . Já com o AJAX ape nas s e rá codigoAJAX.js (o código tam bém pode ria s e r
actual izado aq uil o q ue q uis e rm os , ne s te cas o, ins e rido na página do form ul ário m as , por
o 'corpo' da conve rs a. m otivos de organização, s e param o-lo).
AJAX corre praticam e nte e m todos os
s e rvidore s m as , para q ue pos s am os us ufruir
de s te , pre cis are m os tam bém de um a function handleHttpResponse() {
linguage m Se rve r-Side , ne s te cas o o ASP. Al ém if (http.readyState == 4) {
dis s o o AJAX te m a particul aridade de s e r if (http.status == 200) {
ape nas vis íve l e m brow s e rs q ue te nh am if (http.responseText.indexOf(
s uporte com pl e to XM L. Actual m e nte e xis te m 'invalid') == -1) {
ape nas dois brow s e rs a s uportar total m e nte results = http.responseText.
e s ta te cnol ogia: o Inte rne t Expl ore r e o M ozil l
a split(",");
document.getElementById(
Fire fox. Em brow s e rs com o o Safari ou o O pe ra
"resposta").innerHTML
é com um as apl icaçõe s com AJAX = results[0];
apre s e ntare m al guns e rros , ou de ficiências . emProceso = false;
}
M as , de ixe m o-nos de te oria e pas s e m os à }
prática. Ire m os criar um a página de re gis to, }
com a particul aridade de garantir q ue não }
h ajam us e rnam e s re pe tidos .

<8>
a program ar

Em s e gundo, ve rificam os s e o util izador já


function verificaUtilizador() { e xis te , por um a Q ue ry String com o val or
if (!emProceso && http) {
ins e rido pe l o util izador, val or e s s e q ue s e rá
var valor = escape(document.
etElementById("username").value);
re ce bido no fich e iro ASP. Es te dirá
var url = "utilizadores.asp? de finitave m e nte s e o util izador e s tá ocupado
txtUser="+ valor; ou não. Por úl tim o, é e xe cutado o obje cto H TTP,
http.open("GET", url, true); q ue s ó e s tá dis poníve le m al guns brow s e rs .
http.onreadystatechange =
handleHttpResponse; Para te rm inar, s ó nos fal ta o código ASP , q ue
emProceso = true; não pas s a de m e ia dúzia de l inh as .
http.send(null); Prim e iram e nte , o código irá re col h e r o val or
} da variáve l Util izador, através do
} re q ue s t.Q ue ry String. D e s e guida, s e rá fe ita
a ve rificação e , final m e nte , s e r-nos -á dito
function getHTTPObject() {
s e o util izador e s tá dis poníve l . Para e vitar
var xmlhttp; 'bug's " s ó s e rá apre s e ntado re s ul tado s e o
val or da variáve lnão for nul o.
@cc_on
@if (@_jscript_version >= 5) util
izadore s .as p
try {
xmlhttp=new ActiveXObject( <%
"Msxml2.XMLHTTP");
} catch (e) { if request.querystring("Utilizador")
try { <> "" then
xmlhttp=new ActiveXObject( utilizador = request.querystring(
"Microsoft.XMLHTTP"); "Utilizador")
} catch (E) {
xmlhttp = false; if utilizador = "p@p" then
} response.write "Ocupado,
} escolha outro."
@else else
xmlhttp = false; response.write "Está
@end @ Disponível!"
end if
if (!xmlhttp && end if
typeof XMLHttpRequest !=
'undefined') { %>
try {
xmlhttp=new XMLHttpRequest(); Agora é s ó te s tar! Es te código e s tá m uito
} catch (e) { xmlhttp=false; } s im pl
e s , m as é um a bas e para, por
} e xe m pl o, incl
uir re cordSe ts e inte ragir com
return xmlhttp;
um a bas e de dados .
}

var emProceso = false;


Patric Figue ire do

var http = getHTTPObject();

Es te código, pare ce be m com pl icado m as


não o é. Te m três e tapas s im pl e s . Prim e iro
dize m os com o e onde é q ue o brow s e r nos
vai re s ponde r, na áre a 're s pos ta'.

<9 >
a program ar

São tam bém us ados no incre m e nto e


de cre m e nto de um a unidade ou e m
ope raçõe s re l acionais com o a igual dade ,
dife re nça, m aior ou m e nor q ue , e ntre outros .

O pe rador Nom e
+ Adição
- Subtracção
* M ul tiplicação
/ D ivis ão
% Re s to da divis ão

JavaScript Exe m pl
o de util
ização:

(parte 2) Som a e m JavaScript

Ne s ta úl tim a parte do artigo s obre <html><head>


program ação em JavaScript s e rão
abordados te m as um pouco m ais técnicos , <script language=”Javascript”>
be m com o m ais avançados e e vol uídos , do var x=1000;
var y=18;
q ue na m e tade ante rior. Abordare m os os
soma=x+y;
ope radore s , capítul o onde s e rão tratados
</script>
as s untos re laccionados com a aritm ética, as
re l
açõe s , a l ógica e ntre outros , abordare m os </head><body>
as funçõe s e as ins truçõe s q ue e xprim e m
condiçõe s e re pe tiçõe s /cicl os , falare m os <script language=”Javascript”>
tam bém um pouco s obre program ação document.write(soma);
orie ntada a obje ctos , o bás ico a de s te níve l </script>
e um a pe q ue na al us ão aos ve ctore s .
Es pe re m os q ue gos te da le itura. </body></html

O pe radore s Com o é pos s íve lve rificar no código é m uito


s im pl
e s e de s cre ve um a pe q ue na s om a. O
O s ope radore s actuam s obre um a ou m ais m e sm o se ve rifica para as outras
variáve is de form a a produzir os re s ul tados ope raçõe s .
pre te ndidos . A l inguage m de program ação
JavaScript pos s ui m uitos ope radore s de O JavaScript dis ponibil
iza tam bém
dive rs os tipos . Aq ui ire m os ape nas abordar os ope radore s de incre m e nto e de cre m e nto.
as pe ctos m ais bás icos dos dive rs os tipos de
ope radore s dis poníve is . O pe rador Nom e
+ + Incre m e nto
O pe radore s A ritm éticos -- D e cre m e nto

O s ope radore s aritm éticos s ão utilizados para As ins truçõe s de incre m e nto com o a de
re alizar ope raçõe s m ate m áticas s im pl es a+ + s ão de pós incre m e nto e as ins truçõe s
com o a adição, a s ubtracção, a de incre m e nto + + a s ão ins truçõe s de pré
m ul tiplicação, a divis ão e o re s to da divis ão incre m e nto. Q uando s e tratam de
inte ira. Exis te tam bém o da ne gação unária ins truçõe s de de cre m e nto a-- ou --a, a
q ue não vai s e r abordado. de nom inação s e rá a m e s m a.

<10>
a program ar

O pe radore s R e l
acionais
O pe radore s Lóg icos
O s ope radore s re l
acionais com o o próprio
nom e indica, e s pe cificam ope raçõe s de O s ope radore s lógicos e xis te nte s na
re l
ação e ntre valore s . l
inguage m JavaScripts ão:

O pe rador Nom e O pe rador Nom e


== igual ! Nave gação
!= dife re nte & & Conjunção
> m aior || D is junção
< m e nor
>= m aior ou igual Es te s ope radore s s ão os ope radore s q ue
<= m e nor ou igual m anipul am val ore s l ógicos .
A dis junção incl us iva s ó re s ulta num val or
fal s o q uando os dois ope radore s s ão fal s os
Exe m pl
o de util
ização: (m e s m o q ue O U). Cas o contrário de vol ve
ve rdade iro.
<html><head> A conjunção s ó pode re s ul tar num val or
ve rdade iro q uando am bos os val ore s o
<script type="text/javascript"> fore m (m e s m o q ue E). Já a ne gação re s ul ta
var x = 1; no val or contrário do ope rador.
var y = 2;
var z = y;
function relaccionais(){
document.write("<br/>Variável x="+x); O pe radore s bit a bit
document.write("<br/>Variável y="+y);
document.write("<br/>Variável z="+z); O pe radore s bit a bit dis poníve is em
document.write("<br/>"); JavaScript.
w = x == y;
document.write ("<br/>y==z->"+w); O pe rador Nom e
w = x != y; x& y Conjunção
document.write ("<br/>y!=z->"+w); x|y D is junção incl us iva
w = x >= y; x^ y D is junção e xcl us iva
document.write ("<br/>x>=y->"+w); -x Ne gação l ógica
w = x < y;
x<<y D e sl ocam e nto à e s q ue rda
document.write ("<br/>x<y->"+w);
} x> > y D e sl ocam e nto à dire ita
</script> x> > > y D e sl ocam e nto l
ógico à dire ita

</head><body>
O pe radore s de cade ias
<script type="text/javascript">
relaccionais(); Ao contrário dos outros ope radore s ape nas
</script> e xis te um ope rador de cade ias q ue s e rve m
para concate nar cade ias (s trings ).
</body></html>
O pe rador Nom e
+ Concate nação
Com e s te s ope radore s é pos s íve l faze r
ope raçõe s para de te rm inar s e os val ore s O ope rador + acre s ce nta um a cade ia no
s ão iguais , dife re nte s , m aiore s ou m e nore s , fim da outra.
e ntre outros .

<11>
a program ar

Funçõe s
Ins tru ção s w itch
Um a função é um a s e q uência de ins truçõe s
q ue cons titui um a e ntidade coe re nte e q ue No JavaScript e xis te um a outra ins trução de
pode s e r invocada a partir de q ual q ue r condição a ins trução s w itch .
ponto do program a e s crito e m JavaScript. O Form ato s w itch :
program ador pode criar as s uas próprias
funçõe s q ue s ão na m aioria das ve ze s s w itch (e xpre s s ão){
e s critas no cabe çal h o do fich e iro e s ão cas e val orx:
invocadas pos te riorm e nte q uando ins truçãox;
ne ce s s ário. ...
bre ak ;
Portanto, pode m os ve r um a função com o cas e val ory :
um a s érie de ins truçõe s q ue e ngl obam os ins truçãoy ;
de ntro do m e s m o proce s s o. As funçõe s ...
util izam -s e cons tante m e nte , não s ó as q ue bre ak ;
e s cre ve m com o tam bém as q ue já e s tão ...
de finidas no s is te m a, com o as pars e Int (q ue }
é um a s tring), pars e Float (s tring) ou NaN (q ue
é um val or), pois todas as l inguage ns de Pas s ando a e xpl icar o com portam e nto do
program ação têm funçõe s para re al izar control o s w itch : s e o val or da e xpre s s ão
proce s s os h abituais . As funçõe s s e rve m para coincidir com o val orx e xe cuta-s e a
s e re m ch am adas , s e m pre q ue e xis tir um a ins truçãox, cas o não s e ja, faz-s e o m e s m o
acção q ue s e ja ne ce s s ária e m dive rs os m as para o val ory, e as s im s uce s s ivam e nte ,
locais da página/s ite /program a, s ó te ndo até s e r e ncontrada um a igual dade .
de finido o s e u código um a única ve z.

Para de finir um a função é obrigatório util


izar
ce rtos padrõe s : Ins tru çõe s Ite rativas
function nom e dafuncao (){ Na linguage m de program ação JavaScript
ins truçõe s da função ape nas e xis te m três ins truçõe s ite rativas , o
... cicl
o w h il
e , o do-w h il
e , e o cicl
o for.
}

D e pois é ape nas ne ce s s ário dar as O cicl


o w h il
e
ins truçõe s ce rtas à função de form a a
actuar da form a pre te ndida e invocá-l a Es te cicl o util iza-s e q uando é ne ce s s ário
não e s q ue ce ndo de adicionar () à fre nte do re pe tir um núm e ro inde finido de ve ze s a
s e u nom e . e xe cução de um as s e nte nças , s e m pre q ue
s e cum pra um a condição. É m ais fácilde
Ins truçõe s condicionais s e e nte nde r q ue o cicl o for porq ue s om e nte
s e indica a condição q ue te m q ue s e
Ins tru ção ife e l
se cum prir para q ue s e re al ize um a re pe tição.

If com o o próprio te rm o e m Ingl ês indica w h il


e (condição){
s ignifica "se ", as s im s e ndo, e s ta ins trução s e nte nças do cicl
o;
s e rve para re al izar s cripts q ue de pe ndam ...
de um a condição. Um If pre s s upõe q ue }
ce rta acção s ó s e rá e xe cutada, cas o s e
ve rificar um a ce rta condição.

<12>
a program ar

O cicl
o do-w h il
e
Util iza-s e ge ral
m e nte q uando não s abe m os
O bje ctos
q uantas ve ze s h ave rá de s e e xe cutar o
cicl o, as s im com o aconte ce com cicl o O JavaScript dis põe de um conjunto de
w h il e , com a dife re nça de q ue o cicl o, obje ctos pre de finidos . O s obje ctos têm
inde pe nde nte m e nte da e xpre s s ão te s te , atributos (variáve is ) e m étodos (funçõe s ). A
s e rá s e m pre e xe cutado pe lo m e nos um a s intaxe para a util ização de obje ctos ,
ve z. m étodos e atributos e m JavaScript é m uito
s im ple s:
do {
sentenças do ciclo; objecto.atributo
... objecto.metodo()
} while (condição)
Alguns obje ctos s ão criados
autom aticam e nte pe l
o brow s e r, outros têm
O cicl
o for de s e r criados obrigatoriam e nte pe l o
program ador.
O cicl o for util
iza-s e para re pe tir m ais
ins truçõe s num de te rm inado núm e ro de obj = new Object();
ve ze s . Entre todos os ciclos o for cos tum a
s e r utilizado q uando s abe m os ao ce rto o
núm e ro de ve ze s q ue q ue re m os q ue s e ja
e xe cutada a s e nte nça, ou até q uando. Ve ctore s
for Um ve ctor é um a e s trutura de dados com
(iniciação;condição;actualização) { dive rs os e l e m e ntos do m e s m o tipo, e m
sentenças a executar; re lação à q ual , através de um índice , s e
... pode de s ignar cada um dos s e us e l e m e ntos .
} Os el e m e ntos de um ve ctor pode m tam bém
s e r ve ctore s , dando orige m a um a e s trutura
O funcionam e nto do cicl o for é o s e guinte : m uito com pl e xa.
a e xpre s s ão de iniciação é e xe cutada um a
ve z ante s da prim e ira ite ração;a condição
é te s tada ante s de cada ite ração do cicl o
e s e for ve rdade ira e xe cuta a próxim a
ins trução do cicl o, s e for fal s a te rm ina o
Concl
us ão
cicl o.
Ne s ta s e gunda e úl tim a parte do artigo de
JavaScript foram abordados te m as m ais
A ins trução e xe cutada no cicl o for pode s e r
avançados , m as igual m e nte bás icos , da
s ubs tituída por dive rs as ins truçõe s .
program ação e m JavaScript. Ne s ta e dição
abordám os a program ação com
ope radore s , funçõe s , ins truçõe s condicionais
Ins tru çõe s bre ak e continu e (if, s w itch ), ins truçõe s ite rativas (for, w h il
e , do-
w h ile , continue , brak e ), program ação
A ins trução bre ak inte rrom pe um cicl o.
João Pe re ira

orie ntada a obje ctos (PO O ) e ve ctore s . No


Inte rrom pe r um cicl o s ignifica s air de l e e
fim de s te artigo e s pe ram os q ue o l e itor
de ixá-lo todo com o e s tá de form a a continuar
te nh a apre ndido tudo o q ue ne ce s s ita s abe r
com o fl uxo do program a im e diatam e nte .
para s e iniciar ne s ta l inguage m . Agora é a
A ins trução continue inte rrom pe o cicl o
s ua ve z.
pas s ando as s im para a ite ração s e guinte .

<13>
a program ar

24 catch(Exception e){
25 System.out.println(e.getMessage());
26 }
27
28 if( file.isDirectory() ){
29 System.out.println("Directoria");
30 }
31
32 else if( file.isFile() ){
33 System.out.println("Ficheiro");
34 }

Input/O utput
35
36 File [] roots = file.listRoots( );
37

e m Java 38 for (int i=0; i<roots.length; i++){


39 System.out.println (roots[i] );
Ne s te artigo vam os abordar 40 }

um a m atéria q ue , a nos s o ve r,
41
42 file.delete();
é bas tante inte re s s ante e 43 }
im portante no m undo da 44 }
program ação: o Input / O utput
ne s te cas o aplicado a Java. Com o pode m os ve r na l inh a 6 é ins tanciado
um obje cto Fil e q ue re pre s e nta o cam inh o
Ire m os com e çar com M anipul ação de (path ) para um pos s íve l l ocal do s is te m a
Fich e iros e D ire ctorias . Vam os ve r a s e guinte ope rativo. É bom l e m brar q ue e s te ape nas
cl as s Java onde s ão de m os tradas as re pre s e nta um fich e iro ou dire ctoria, não
principais funçõe s da Cl as s Fil
e , q ue é a pre s s upondo q ue o cam inh o e xis ta
utilizada para re al izar a m anipul ação. Em re alm e nte . Ne s te cas o, o cam inh o é o
s e guida vam os e xpl icar o q ue cada l inh a faz. C:\\fil e .txt, q ue aponta para o fich e iro fil e .txt
na dire ctoria C:. Tam bém pode ria apontar
1 import java.io.*; ape nas para um a dire ctoria e não para
2 um a fich e iro, com o é o cas o.
3 public class JavaFile{
4 public static void main(String Na l inh a 8 pode m os ve r o m étodo
args[]){
ge tNom e (), q ue pe rm ite obte r o nom e do
5
6 File file=new File("C:\\file.txt"); fich e iro ou dire ctoria re pre s e ntada pe l
o Fil
e.
7
8 System.out.println(file.getName()); Es ta cl as s pe rm ite tam bém dar atributos a
9 fich e iros ou dire ctorias , com o é o cas o do
10 file.setReadOnly(); m étodo s e tRe adO nl y () q ue dá ao fich e iro ou
11 dire ctoria o atributo de ape nas pode r s e r
12 System.out.println(file.isHidden()); lido e não e s crito, tal com o e s tá
13 System.out.println(file.canRead()); re pre s e ntado na l inh a 10.
14 System.out.println(file.canWrite());
15 A cl as s File pe rm ite tam bém ve rificar
16 file.renameTo(new File(
atributos e , para is s o, pode m os us ar os
"C:\\Ficheiro.txt"));
17 m étodos is H idde n() q ue ve rifica s e o fich e iro
18 try{ ou dire ctoria s e e ncontra ocul to(a) (linh a 12),
19 if( !file.exists() ){ canRe ad() q ue ve rifica s e é pos s ive ll er o
20 file.createNewFile(); fich e iro ou dire ctoria (linh a 13) e o m étodo
21 } canW rite () q ue ve rifica s e é pos s ive le s cre ve r
22 } no fich e iro ou dire ctoria (linh a 14).

<14>
a program ar

D e pois de te rm inado o e s tudo s obre a


O m étodo re nam e To() na l inh a 16 pe rm ite
m anipul ação de fich e iros vam os agora
re nom e ar um fich e iro ou dire ctoria, m as
pas s ar à e s crita dos m e s m os , obs e rvando o
para al ém dis s o pe rm ite tam bém m ove r
s e guinte código:
fich e iros e dire ctorias bas tando para is s o
dar um cam inh o dife re nte no novo nom e a
1 import java.io.*;
dar, o q ue não é o cas o ne s te e xe m pl
o. 2
3 public class FileWrite{
O s m étodos e xis ts () e cre ate Ne w File () l
inh a 19 4
e l inh a 20, s ão dois m étodos m uito 5 public static void main(String
im portante s na m anipul ação de fich e iros e args[]){
dire ctorias , o m étodo e xis ts () pe rm ite ve rificar 6
s e o fich e iro ou dire ctoria re pre s e ntados no 7 try{
File re alm e nte e xis te . O m étodo 8
cre ate Ne w Fil e () cria um novo fich e iro com o 9 PrintWriter out = new
PrintWriter(new BufferedWriter(new
cam inh o re pre s e ntado, ne s te cas o iria criar
FileWriter("C:\\file.txt",true)));
o fich e iro fil
e .txtna dire ctoria C:.
10
11 out.println("Java Input/Output");
Em bora aq ui não e s te ja aq ui pre s e nte , 12 out.println(System.getProperty(
tam bém te m os os m étodos m k dir() e "os.name").toString());
m k dirs () q ue têm a m e s m a funcional idade 13 out.println(System.getProperty(
q ue o m étodo cre ate Ne w Fil e (), m as ne s te "user.name").toString());
cas o é criada um a dire ctoria. A dife re nça 14 out.println("Fim");
do m k dir() para o m k dirs () é bas icam e nte 15 out.println();
q ue o m étodo m k dir ape nas cria um 16 out.close();
dire ctorio num cam inh o já e xis te nte , ou 17
18 }
s e ja, por e xe m pl o, no s e guinte cam inh o
19
C:\Program as \ o m k dir() pode ria criar
20 catch(IOException e){
dire ctorias de ntro da dire ctoria Program as , 21 System.out.println(e.getMessage());
ape nas e s ó s e a re fe rida dire ctoria já 22 }
e xis tis s e pre viam e nte . Já o m k dirs pe rm itiria 23 }
criar toda a arvore de dire ctorias , m e s m o 24 }
s e e s ta não e xis tis s e .
Após e xe cutar e s ta apl icação s e rá criado um
Nas l inh as 28 e 32 pode m os ve r os m étodos fich e iro de te xto e m C:\\ (nos s is te m as
is D ire ctory () e is Fil
e () q ue ve rificam W indow s , para outros Sis te m as O pe rativos
re s pe ctivam e nte s e o cam inh o dado é um bas tará m udar o de s tino), com conte údo
dire ctório ou um fich e iro. se m e l h ante a e s te :

Na l inh a 36 te m os o m étodo l is tRoots ( ). Java Inpu t/O u tpu t


Trata-s e de um m étodo bas tante útil W indow s XP
nom e adam e nte e m s is te m as W indow s , vis to M agician
q ue re torna um array com todas as drive s Fim
ou raíze s do s is te m a ope rativo, por e xe m pl o
A :, C:, D :, E:, e tc... Já e m s is te m as G NU/Linux Vam os agora anal is ar o código de form a a
o conte údo do array s e rá ape nas /, vis to s e r com pre e nde r o obje ctivo de cada l
inh a.
a raiz do s is te m a.
Na l inh a 9 pode m os ve r o obje cto "out"a s e r
Para te rm inh ar e s ta parte do artigo, te m os ins tanciado. Es ta é um a ins tanciação um
na l inh a 42 o m étodo de l e te () q ue com o o pouco com pl e xa m as te m a s ua razão de
próprio nom e indica pe rm ite e l e m inar o s e r. Se gundo al guns te s te s já fe itos e s ta
fich e iro ou dire ctoria re pre s e ntado pe l o Fil
e. ins tanciação é a form a m ais s im pl e s e com

<15>
a program ar

mel h or re ndim e nto de e s cre ve r num fich e iro. 5 public static void main(String
Vam os agora ate ntar e m al guns de talh e s . Na args[]){
úl tim a parte da ins tância "ne w 6
7 try{
File W rite r("C:\\fil
e .txt",true )" pode m os ve r q ue
8
para al ém de te rm os com o argum e nto o 9 BufferedReader leitor = new
nom e do fich e iro, te m os tam bém um BufferedReader(new
argum e nto bool e an. Es te é s e m dúvida um FileReader("C:\\file.txt"));
argum e nto m uito im portante pois q uando 10 String linha = "";
col ocado "true " diz ao program a q ue de ve 11 linha = leitor.readLine();
e s cre ve r no fich e iro, com a particul aridade 12 while(linha != null){
de não apagar ne h um do s e u conte údo 13 System.out.println(linha);
ante rior, ou s e ja, o program a não e s cre ve rá 14 linha = leitor.readLine();
por cim a do q ue já l a s e e ncontra. No cas o 15 }
de s e col ocar com o argum e nto um bool e an 16
17 leitor.close();
"fal s e ", ou ape nas o nom e do fich e iro, o
18
program a cada ve z q ue for e xe cutado vai 19 }
re e s cre ve r o fich e iro a partir do início 20
apagando toda a inform ação já l á contida. 21 catch(IOException e){
22 System.out.println(e.getMessage());
Num prim e iro cas o, irá apare ce r duas ve ze s o 23 }
conte údo do fich e iro após e xe cutar o 24 }
program a duas ve ze s com o argum e nto 25}
"true ". O conte údo do fich e iro s ó apare ce rá
um a ve z, após e xe cutar o program a duas D e um a form a re s um ida, o q ue e s te código
ve ze s , com o argum e nto "fal s e " ou ape nas irá faze r é s im pl e s m e nte ir ao fich e iro fil e .txt,
s e m argum e nto. lerl inh a-a-linh a e im prim ir na cons ol a. Com o
pode m os ve r na l inh a 9 é criado um obje cto
Na l inh a 11, be m com o na 12,13,14,15, Buffe re dRe ade r q ue , através de um obje cto
pode m os ve r a util ização do m étodo printl n() File Re ade r, irá ace de r ao fich e iro fil e .txt. Na
s obre o obje cto "out", q ue vai pe rm itir e s cre ve r linh a 10 ire m os criar a variáve l'l inh a', do tipo
um a l inh a no fich e iro. Exis te m outros m étodos String, inicial izando-a com o String vazia ("").
com o o print(), w rite () com funcional idade Em s e guida, na l inh a 11, vam os l e r a prim e ira
idênticas e m bora m e nos util izados a níve lda linh a do fich e iro e vam os col ocar o conte údo
e s crita de fich e iros de te xto. de s s a linh a na variáve l l inh a, s ob form a de
String.
Por fim , te m os o m étodo cl os e q ue irá "fe ch ar"
o fich e iro, al go q ue de ve s e r s e m pre Nas l inh as 12,13,14 e 15, é fe ito um cicl o para
e xe cutado as s im q ue s e te rm ina a e s crita num le r todas as l inh as do fich e iro, cada ve z q ue o
fich e iro. É as s im te rm inada a l igação e ntre o cicl o dá um a vol ta, é im pre s s o o val or da
fich e iro e o program a. É, portanto, um pas s o linh a ante rior e l ido a l inh a s e guinte , até não
fulcral , vis to q ue cas o não e xe cutado, pode rá e xis tire m m ais l inh as no fich e iro. Finda a
de itar a pe rde r o conte údo do fich e iro. le itura, a l igação ao fich e iro é te rm inada,
com o pode m os ve r na l inh a 17. O re s ul tado
Agora q ue já s abe m os com o e s cre ve r e m final vai s e r e xactam e nte o conte údo do
fich e iros ape nas fal
ta a l
e itura dos m e s m os . fich e iro.
Para is s o vam os com e çar por obs e rvar o
Fábio Corre ia

código s e guinte . Após e s tas três parte s do artigo o l e itor já


cons e guirá re alizar as principais funçõe s de
1 import java.io.*; IO e m Java. Exis te m um s e m núm e ro de outras
2 form as de faze r o q ue foi aq ui de m ons trado,
3 public class FileRead{ be m com o um outro s e m núm e ro de outras
4 cois as de s e pode faze r com Java IO .

<16>
te cnol
ogias

“D e s e nh ado para au tom atizar o


proce s s o de de s e nvol vim e nto e
de pl oying de apl icaçõe s R FID , o
R FID Anyw h e re é u m a pl ataform a
de m iddl e w are q u e re s ponde aos
re q u is itos fís icos da te cnol ogia,
proporcionando tam bém a
capacidade de s im u l ação e de
re s pos ta e m am bie nte s R FID de
produ ção.”
Q uatro razõe s para a util ização de s te
RFID Appl
ications s oftw are : s im ulação e m te m po re al de
e ntrada/s aída de dis pos itivos RFID num a
re de total m e nte pe rs onal izave l, opçõe s de
D e s e nvolvim e nto de apl icaçõe s de s e nvol vim e nto fl
e xíve is , q ue pe rm ite m ao
program ador o total control o s obre a
para dis pos itivos RFID pl ataform a q ue e s tá a de s e nvol ve r,
s e gurança de níve l e m pre s arial , onde
A te cnol ogia RFID já e xis te h á todas as com unicaçõe s e fe ctuadas s ão
al guns anos , m as ape nas agora pas s adas por H TTPS e o s uporte a vários
com e ça a e m e rgir. O s dis pos itivos H ardw are Ve ndors .
ide ntificadore s (ch ips ) baixaram
s ignificativam e nte o pre ço/unidade , Ne s te artigo ire i apre s e ntar ao l e itor um
faze ndo e s ta te cnol ogia m ais tutorial s te p-by-s te p para e xe cutar
propícia a inve s tim e ntos . s im ulaçõe s no RFID Any w h e re , com o
obje ctivo de obs e rvar a e ntrada e a s aída
RFID s ignifica Radio Fre q ue ncy das dive rs as tags (ch ips ) no s is te m a.
Ide ntification, ou s e ja, com pe q ue nos ch ips
q ue pode m s e r de vários form atos e
tam anh os , com um de te rm inado código, Pas s os :
cons e guim os ide ntificar de te rm inado (no fim de cada pas s o gravar cl
icando na
produto. Por e xe m pl o, q uando e s te pas s a dis q ue te ve rde à dire ita)
por um a ante na RFID , q ue e nvia um s inal
de rádio, e s te é re fractado pe l o ch ip, 1º Configuração dos Sim ul
adore s :
pode ndo s e r e s te m étodo fe ito de duas
m ane iras : por re fracção s im pl e s , onde o Criar dois “RFID M ul tiprotocol Sim ul
ator
ch ip re ce be o s inalde rádio e com a força conne ctor” a partir da dropdow n m e nu
de s s e s inalé cons e guida um a re fractação, s upe rior. Configurar os cone ctore s com os
ou e ntão, por trans m is s ão inde pe nde nte , s e guinte s dados :
q ue q uando o s inal é re ce bido o ch ip
re s ponde com o s e u próprio s inal . Es te
úl tim o m étodo pe rm ite um a m aior dis tância
e ntre o ch ip e a ante na.

Para de s e nvol ve r apl icaçõe s para e s ta


te cnol ogia e xis te um produto com grande
e xpe riência de m e rcado ch am ado RFID
Any w h e re , um s oftw are Sy bas e .

<17>
te cnol
ogias
2º Configurar o Protocol
o ALE: Nam e : InvTracSource 1ALE
Se nd Re ports as O bje ct: True
Se l
e ccionar ALESe rvice M odul e , e xpandir o
grupo Source s e adicionar as s e guinte s - Subs cribe rs
fonte s (ins e rir fonte e carre gar no s inal+ Es cre ve r “InvTracAl
e TCP” e carre gar no [+ ]
para cada um dos cas os ):
Criar um s e gundo obje cto “ALE Eve nt Cy cl
e ”,
Source 1:InvTracSim 1 re pe tindo os pas s os ante riore s com as
Source 2: InvTracSim 2 s e guinte s proprie dade s :

D uration (m s ): 5000
LogicalRe ade rs : Source 2
Re portD e finitions : 2

1º Re port:
Re portNam e : Source 2Additions
EPC to Be Re porte d: AD D ITIO NS

2º Re port:
Re portNam e : Source 2D e l e tions
EPC to Be Re porte d: D ELETIO NS
3º Configurar o TCPm e s s aging: Nam e : InvTracSource 2ALE
Se nd Re ports as O bje ct: True
Criar um novo obje cto “TCPM e s s aging” a Subs cribe rs : InvTracAl
e TCP
partir do dropdow n m e nu s upe rior e
configurar com os s e guinte s dados :

IPAdre s s : l
ocal
h os t
Nam e : InvTracAl e TCP
Port: 10002 Crie um úl tim o obje cto “ALE Eve nt Cy cle ”,
re pe tindo os pas s os ante riorm e nte dados
4º Configurar os ALE Eve nt Cy cl
e com as s e guinte s proprie dade s :
conne ctors :
D uration (m s ): 5000
Criar um novo obje cto “ALE Eve nt Cy cl e” a LogicalRe ade rs :
partir do dropdow n m e nu s upe rior e Source 1
configurar com os s e guinte s dados : Source 2
- Eve ntCy cl e Re portD e finitions : 1
- - Start-Stop Conditions G rouping Patte rns : urn:e pc:pat:s gtin-9 6:X.X.X.*
- - - D uration (m s ): 5000 Include Count: True
- LogicalRe ade rs Include Tag Uri: Fal se
Es cre ve r “Source 1” e carre gar no [+ ] Re portIfEm pty : True
Re portNam e : CountRe port
Re port(s ) de finition: 2 EPC to Be Re porte d: CURRENT
G ravar para um novo grupo de Re ports Nam e : InvTracCountALE
apare ce r: Se nd Re ports as O bje ct: True
- re portSpe cs 1 Subs cribe rs : InvTracAl e TCP
- Nam e : Source 1Additions
- EPC to Be Re porte d: AD D ITIO NS Nota: Es ta de m ons tração us a m ais ALE
- re portSpe cs 2 re ports e cone ctore s do q ue s e ria
- Nam e : Source 1D e l e tions norm al m e nte re q ue rido. Is to é fe ito para
- EPC to Be Re porte d: D ELETIO NS m os trar um a m aior varie dade de opçõe s ALE.

<18>
te cnol
ogias

Para ve r o re s ul
tado: com todo o s oftw are (e s s e ncial m e nte RFID
Any w h e re e .NET) e h ardw are (vários tipos de
- Iniciar/Re iniciar todos os com pone nte s tags , com putadore s , dis pos itivos m óve is ,
al te rados /criados ; re ade rs , e tc.) ne ce s s ários para de s e nvolve r
- Corre r a s e guinte apl icação: e te s tar s oluçõe s RFID de q ual idade
“… \Sy bas e \RFID e m pre s arial.
Any w h e re \Bin\iAny w h e re .RfidNe t.Al
e .Re portVi
e w e r.e xe ”; Se gundo a Sy bas e , os obje ctivos principais
Cl icar no s e parador TCP/IP s ão o de s e nvol vim e nto da te cnol ogia, a
M odificar a s e rve r portpara 10002 dis ponibil ização de Fram e w ork s ope ns ource
Cl icar e m “Start” para o m e rcado e o e s tabe l e cim e nto de
parce rias com forne ce dore s de h ardw are ,
Acabou de configurar a s ua prim e ira ISVs , Inte gradore s , As s ociaçõe s e Ins titutos de
s im ul
ação no RFID -Any w h e re ! Inve s tigação.

A Sy bas e , um dos l íde re s de m e rcado na


CR IA D O CENTR O D E INVES TIG A Ç ÃO R FID áre a e m pl e no de s e nvol vim e nto q ue é o
EM PO R TUG A L RFID , apos ta na inve s tigação no cam po e
de ixa as s im um de s afio às e m pre s as m ais
S YBA S E R FID S O LUTIO NS CENTER viradas para a áre a da dis tribuição e da
com e rcial ização: o de pode re m te r um
“O Ce ntro ir-s e -á focar e s s e ncial m e nte no s ignificativo aum e nto de produtividade com
de s e nvol vim e nto de Fram e w ork s a apos ta ne s ta te cnol ogia e m e rge nte .
ope ns ource de s tinadas ao m e rcado
e m pre s arialportuguês . Já no 2º trim e s tre de Cas os de Suce s s o
2007 pre te nde -s e dis ponibilizar um a
prim e ira ve rs ão de s te fram e w ork q ue irá EM PO RTUG AL
conte m pl ar s ol uçõe s de track ing de S ATU O e iras
pe s s oas , inve ntário de produtos , s is te m a de
ge s tão de arm azéns , e ntre outros ” “Com a te cnol ogia RFID é ace l e rado o
proce s s o de val idação de bil h e te s ,
D ia 19 de Se te m bro de 2006 a Sy bas e e vitando as s im a acu m u l
ação de pe s s oas
Portugal anunciou e m com unicado a nas e ntradas das e s taçõe s do SATU.”
criação de um ce ntro de inve s tigação e
de s e nvolvim e nto de s ol
uçõe s RFID , o O m ais re ce nte trans porte criado pe l a
prim e iro da Sy bas e a níve lm undial
. Câm ara M unicipal de O e iras tam bém
apos ta na te cnol ogia RFID para a e ntrada
O Ce ntro de Inve s tigação RFID é de pas s age iros e carre gam e nto dos bilh e te s .
coorde nado por Paul o Lope s , Bus ine s s
D e ve l opm e nt M anage r da Sy bas e , e é o Um norm al pas s age iro de s te trans porte
prim e iro ce ntro de com pe tências da ape nas te m de adq uirir um cartão (com o
Sy bas e e xcl us ivam e nte de dicado a RFID . As cus to de 0.50€ ) e carre gar o m e s m o com as
s oluçõe s s e rão de s e nvol vidas com bas e e m viage ns q ue pre te nde r e fe ctuar, para
produtos m iddl e w are Sy bas e e de q ual q ue r das e s taçõe s da l inh a do SATU
parce iros , nom e adam e nte a Sy m bol , (Sis te m a Autom ático de Trans porte Urbano).
Inte rm e c/Cagicom p e Al ie n/Cre ative
Sy s te m s , e ntre outros . Na próxim a im age m pode m os ve r a Ante na
de le itura das tags e m butidas nos cartõe s
O Ce ntro e s tá a funcionar nas ins tal
açõe s dos util izadore s , q ue natural
m e nte e s tará
da Sy bas e Portugale m Carnaxide e conta l
igada a um re ade r.

<19 >
te cnol
ogias

EM ESPANH A
Corre os de Es paña

O ve ícul o da próxim a im age m util iza para


s e m ove r um s is te m a de carris e é “puxado”
por cabos de aço na parte infe rior do
m e s m o, q ue por s ua ve z s ão m ovidos por
m otore s pre s e nte s na prim e ira e s tação do
pe rcurs o. “Es tam os actualm e nte a final izar a
ins tal
ação do h ardw are e a com e çar
a ins talação do m iddl e w are q ue foi
forne cido pe l
a Sy bas e ”, e m de cl
araçõe s
dos Corre os

A im pl e m e ntação de s te s is te m a de controlo
por radiofre q uência nos s e us 15 ce ntros de
trans porte e arm aze nam e nto dis tribuídos por
Em baixo pode m os vis ual
izar duas toda a Es panh a te ve um cus to de m ais de
m áq uinas de carre gam e nto de cartõe s , um m il h ão de e uros , para aq uis ição da
onde ao ce ntro s e col oca o cartão, s e m te cnol ogia ne ce s s ária. Es ta q uantia incl ui
e s tar e m contacto dire cto com a própria s oftw are e s pe cífico e a s ua inte gração nos
m áq uina, pe rm itindo as s im aos util izadore s s is te m as inform áticos dos Corre os , a
um carre gam e nto m ais rápido, e vitando os aq uis ição de 5.000 tags pas s ivas , a
norm ais atras os de im pre s s ão de bil h e te s . ins tal ação de m ais de 1.9 00 ante nas fixas e
m ais de 330 re ade rs m óve is para e s s e s
Ne s te m om e nto o pe rcurs o de s te trans porte ce ntros , forne cidos pe l
a Sy m bol
ainda é al go re duzido, m as s e m dúvida útil Te ch nol ogie s .
para a popul ação da zona.
Com o principais be ne fícios , os Corre os
re conh e ce m q ue com um s is te m a RFID s e
cons e guiu m e l h orar a q ual idade do s e rviço,
dar um m aior val or aos s e us cl ie nte s e
e s tabe l
e ce r um a vantage m com pe titiva e m
re lação à concorrência. A e m pre s a tam bém
adm ite q ue obtém um m e nor cus to "de vido
D anie lCorre ia

à e s tandardização da te cnol ogia e ao cus to


unitário das tags pas s ivas e m re l ação às
tags activas ", e um a m aior funcional idade ,
"já q ue al ém do control o de q ual idade
pode m os apl icar a outras funcional idade s
com o o control o de e l e m e ntos logís ticos
(carros , cam iõe s , e tc.)”.

<20>
tutorial
propriedades &= "Atributos:" &
ficheiro.Attributes.ToString & vbCrLf
propriedades &= "Criação:" &
ficheiro.CreationTime.ToString & vbCrLf
propriedades &= "Ultimo Acesso:" &
ficheiro.LastAccessTime.ToString & vbCrLf
propriedades &= "Modificação:" &
ficheiro.LastWriteTime.ToString & vbCrLf
End With
Console.WriteLine(propriedades)
Return True
Catch ex As Exception

Vis ualBas ic.NET Return False


End Try

4ª parte
End Function

Fu nção M ain
Na e dição ante rior fize m os um a abordage m
s obre a util ização de array s e com o us ar as Sub Main()
cl as s e s do nam e s pace Sy s te m .IO para a Dim strCaminho As String = ""
m anipul ação de fich e iros . While Trim(strCaminho) = String.Empty
Com o s abe m os , q ual q ue r fich e iro pos s ui um Console.Write("Caminho do ficheiro: ")
conjunto de proprie dade s , proprie dade s strCaminho = Console.ReadLine()
e s tas q ue e s tão ace s s íve is us ando a cl as s e Console.Clear()
End While
File Info.
If Not getProperties(strCaminho) Then
Console.WriteLine("Erro")
Dim ficheiro As New
System.Threading.Thread.Sleep(2000)
FileInfo("ficheiro.txt")
Else
Console.ReadLine()
Proprie dade s do tipo, nom e do fich e iro, End If
local ização, e xte ns ão, atributos , tam anh o, End Sub
e tc, e s tão facil
m e nte ace s s íve is re corre ndo
as proprie dade s incorporadas na cl as s e O u tpu t
File Info. Exe m pl
o:
Cam inh o do fich e iro: c:\fich e iro.txt
Função para obte r as proprie dade s
de um fich e iro Prop. do fich e iro
======
Private Function getProperties(ByVal Nom e : fich e iro.txt
caminho As String) As Boolean
Cam inh o: c:\fich e iro.txt
Try
Exte ns ão: .txt
Dim ficheiro As New FileInfo(caminho)
Dim propriedades As String = ""
Tam anh o 37
With ficheiro Atributos : Arch ive
propriedades &= "Prop. do ficheiro" & Criação: 11-10-2006 16:27:14
ficheiro.Name.ToString & vbCrLf Ultim o Ace s s o: 11-10-2006 16:28:14
propriedades &= "======" & vbCrLf M odificação: 11-10-2006 16:28:14
propriedades &= "Nome: " &
ficheiro.Name.ToString & vbCrLf Com o vim os , um a das vantage ns e m us ar a
propriedades &= "Caminho: " & clas s e Fil
e Info, é a pos s ibil
idade de obte r
ficheiro.FullName.ToString & vbCrLf proprie dade s de um fich e iro de um a form a
propriedades &= "Extensão: " &
rápida, m as não s ó. Es ta cl as s e incorpora
ficheiro.Extension.ToString & vbCrLf
tam bém funçõe s para criar fich e iros , m ove r
propriedades &= "Tamanho:" &
ficheiro.Length.ToString & vbCrLf
ou copiar da s ua l ocalização actualpara
outra, apagar, e ncriptar, e s cre ve r, l
e r, e tc.

<21>
tutorial
Não s ão ape nas os fich e iros q ue pos s ue m D im s tr As String = "Vis ualBas ic .NET"
proprie dade s , pois os dire ctórios tam bém as Cons ol e .W rite (s tr.Inde xO f("B"))
pos s ue m e , por is s o, te m os dis poníve l a
cl as s e D ire ctory Info, conte ndo q uas e as A função Ins e rt() pe rm ite -nos ins e rir e m
m e s m as proprie dade s da Fil e Info, não q ual q ue r pos ição de um a s tring, outra s tring.
dife re nciando m uito a s ua util ização da dos No e xe m pl o s e guinte , irá s e r adicionada a
fich e iros . Q ue m te m vindo a acom panh ar o s tring “é fixe ” no fim da s tring s tr, re tornando
s e guim e nto dos artigos s obre e s ta um a s tring “Vis ualBas ic .NET é fixe ”.
linguage m , ce rtam e nte q ue s e ape rce be u
q ue o obje ctivo é dar um a ajuda a q ue m D im s tr As String = "Vis ualBas ic .NET"
pre te nde iniciar-s e e m VB.NET, l ogo, todos as s tr = s tr.Ins e rt(17, "é fixe ")
m atérias não s ão e xte ns ivam e nte Cons ol e .W rite (s tr)
abordadas , ficando is s o ao cargo de cada
um , por is s o, te rm ina aq ui a abordage m a A função Las tInde xO f() de vol ve -nos a úl tim a
fich e iros . pos ição de um a s tring q ue s e e ncontra num
de te rm inado te xto. No e xe m pl o s e guinte ,
O utra das grande s im pl e m e ntaçõe s na .NET s e rá re tornada a pos ição 8, pois é onde s e
Fram e w ork , foi o nam e s pace Sy s te m .String. e ncontra a ul tim a l
e tra “a” na s tring.
Na m aioria dos proje ctos , e xis te um a
s ituação e m q ue pre cis am os de faze r o D im s tr As String = "Vis ualBas ic .NET"
tratam e nto de um a s tring, daí a Cons ol e .W rite (s tr.Las tInde xO f("a"))
im pl e m e ntação de cl as s e s para cada ve z
m ais facil itar a tare fa do program ador. A função Le ngth (), indica-nos o tam anh o q ue
Ne s te artigo abordare m os as funçõe s m ais um a s tring te m . No e xe m pl
o s e guinte , irá s e r
im portante s para o tratam e nto de s trings , e re tornado o val or 17, pois a s tring util izada
para e xe m pl ificar ire m os util izar um a s tring contém 17 caracte re s .
fixa, q ue s e rá “Vis ualBas ic .NET”.
D im s tr As String = "Vis ualBas ic .NET"
As funçõe s q ue ire m os e xe m pl ificar s ão as Cons ol e .W rite (s tr.Le ngth )
q ue , por norm a, s ão m ais util izadas , s e ndo
elas , Contains (), Inde xO f(), Ins e rt(), Le ngth (), A função SubString() pe rm ite -nos “cortar”
Las tInde xO f(), SubString() e Trim (). parte s de um a s tring.

A função Contains () pe rm ite -nos s abe r s e D im s tr As String = "Vis ualBas ic .NET"


um a de te rm inada s tring e xis te na s tring e m Cons ol e .W rite (s tr.Subs tring(7, 3)) 'O UTPUT: "Bas "
q ue s tão. No e xe m pl o s e guinte , irá s e r
re tornado o te xto “Exis te ”, pois com o A função Trim () tal ve z s e ja a m ais us ada de
pode m os ve rificar, a s tring “Ba” e s tá contida todas . Es ta função pe rm ite -nos re m ove r os
o M artins
na s tring e xe m pl
o. e s paços q ue e s tão a m ais num a s tring. Um
e xe m po da s ua util
ização:
Dim str As String = "Visual Basic
gado & M arce l

.NET" D im s tr As String = " Vis ualBas ic .NET "


If str.Contains("Ba") Then Cons ol e .W rite (s tr.Trim ) 'O UTPUT: "Vis ualBas ic .NET"
Console.Write("Existe")
Else
Com o pode rão ve r, e xis te m outras funçõe s
Console.Write("Não Existe")
para tratam e nto de s trings , q ue pode m s e r
End If
rapidam e nte de s cobe rtas na docum e ntação.
Q uanto ao tratam e nto de s trings é tudo. Na
Tiago Sal

A função Inde xO f() pe rm ite -nos s abe r s e um a


de te rm inada s tring e xis te no te xto e de vol ve - próxim a e dição ire m os dar inicio à
nos a pos ição inicialde l a cas o e xis ta. No abordage m s obre bas e de dados , por is s o
e xe m plo s e guinte , irá s e r re tornada a pos ição e s te jam ate ntos ao lançam e nto da e dição
7, pois é onde s e e ncontra a l e tra “B”. s e guinte .

<22>
gnu/l
inux
# mount <directório representativo do
hardware ou ficheiro> <directório de
montagem> <opções>

Por e xe m pl
o,

# mount /dev/sda /mnt/pendrive -t vfat

Es pe cifica q ue a pe n drive (q ue , ne s te cas o,


é re pre s e ntada por /de v/s da no dire ctório
q ue contém os fich e iros q ue re pre s e ntam o
h ardw are /de v) s e rá m ontada no dire ctório
(q ue de ve rá já pre viam e nte e xis tir)
M ounting /m nt/pe ndrive , te ndo com o opção -t vfat, o
q ue inform a o m ount de q ue s e e s tá a
Fil
e Sy s te m s trabal h ar com um s is te m a de fich e iro e m FAT.
Para s abe r m ais facil m e nte a q ue /de v/xxx
A m ontage m de s is te m as de fich e iros corre s ponde a drive q ue de s e jam os m ontar
nos s is te m as G NU/Linux é al go q ue de ve rá corre r o com ando: # fdis k -l , ou
ge ra s e m pre e m q ual q ue r novato na q ual q ue r corre s ponde nte gráfico.
m atéria dúvidas e inde cis õe s . Es te
artigo pre te nde e xplicar com No e ntanto, e com o o l e itor provave lm e nte
s im plicidade e de s de o início, todos e s tará a pe ns ar, s e ria bas tante cans ativo
os pas s os re q ue ridos para q ue tudo s e m pre q ue s e inicias s e o s is te m a te r de
fiq ue a funcionar corre ctam e nte . proce de r à e xe cução de s te s com andos para
cada drive a q ue q uis e s s e m os ace de r, com o
É s e m dúvida um e ntre m uitos outros tal , ire m os tam bém apre nde r a tornar tudo
“ch oq ue s ” o q ue s e te m ao e xpe rim e ntar um is to autom ático.
s is te m a G NU/Linux pe l a prim e ira ve z, q ue re r
ace de r àq ue l a drive onde guardam os toda D e q ual q ue r m odo, e ante s de tudo is s o, h á
a nos s a vida e não cons e guir ne m s abe r al go a im portante a ve r. Todo e s te proce s s o
com o o faze r. É ce rto q ue os D e s k top de m ontage m re q ue r q ue o k e rne lda nos s a
Environm e nts m ais re ce nte s têm facil itado dis tribuição já conte nh a carre gados m ódul os
m uito o proce s s o, contudo, ne m s e m pre nos q ue l h e pe rm itirão, de s de m ontar os s is te m as
ofe re ce m com o opção gráfica aq uil o q ue de fich e iros h abituais e m G NU/Linux (com o o
q ue re m os e xactam e nte faze r. Com o tal , e xt2/3, o Re is e rFS, o JFS, ...), be m com os de
convém conh e ce r e dom inar os principais W indow s (FAT, NTFS,...), as s im com o al gum as
m e canis m os do s is te m a de m ontage m de proprie dade s de s te s (s is te m a de codificação
fich e iros e us á-l os com o be m e nte nde rm os , de caracte re s ).
se m l im itaçõe s . Vam os a is s o...
De um m odo ge ral q uas e todas as
Prim e iro, h á q ue re te r a ide ia q ue e m dis tribuiçõe s já têm activos e s te s m ódul os de
G NU/Linux q ual q ue r drive , para pode r s e r raiz e , portanto, s ó te rá de s e procupar m e s m o
ace dida, te m de s e e ncontrar m ontada, ou com o proce s s o de m ontage m de s is te m as s
s e ja, a s ua pre s e nça fís ica te ve de te r s ido de fich e iros , s e ja e l
e m anualou autom ático.
ide ntificada pe l o s is te m a, à drive te r s ido Utilizadore s de Ubuntu, SuSE, M e pis , Fe dora
as s ociado um dire ctório de m ontage m e , Core , e ntre m uitas outras pode m pas s ar
por fim , te r-s e proce dido à as s ociação do dire ctam e nte ao ponto s e guinte . D e q ual q ue r
conte údo da drive ou s is te m a de fich e iros , m odo, s e al gum com ando l h e de r um e rro,
ao dire ctório de m ontage m de finido. Para pode rá s e r de rivado da ine xis tência de
tal , us a-s e o com ando m ount, q ue funciona s uporte no k e rne l ao s is te m a de fich e iros
da s e guinte m ane ira: pre te ndido e , com o tal , de ve rá s e guir o
e xpos to a s e guir.

<23>
gnu/l
inux
D e s e guida e ntre e m :
Re com pil ando o Ke rne lpara garantir
s uporte aos s is te m as de fich e iros Device Drivers
pre te ndidos ->DOS/FAT/NT Filesystems

Pode r-s e -á pe ns ar q ue e s te é um pas s o E se l e ccione o s uporte para os s is te m as de


com pl icado ou m e s m o arris cado, no e ntanto fich e iros W indow s q ue de s e jar. Em D e faul t
ape nas re q ue r um pouco de ate nção e tudo Ch ars e t for FAT de ve rá s e le cionar Ente r e ins e rir
corre rá be m . is o8859 -15, cas o o s e u s is te m a de fich e iros s e ja
A s ua dis tribuição de ve rá te r um m étodo ace dido tam bém num s is te m a W indow s , de
particul ar para proce de r a e s ta actividade e , m odo a não te r probl e m as ne m na vis ual ização,
com o ne m s e m pre o m étodo tradicionalé ne m na e s crita, do te xto pre s e nte ne s s e tipo de
unive rs alpara todas as dis tribuiçõe s , de ixo a partição. Acim a de s s e val or e ncontra-s e o de
cargo do l e itor procurar nos fóruns da s ua D e faul t Code page for FAT q ue de ve rá s e r o 860
dis tribuição um tutorialq ue l h e indiq ue com o para a l íngua portugue s a. D e s e guida, s e
proce de r para a re com pil ação do k e rne l. acabou de s e l e ccionar o s uporte para os
Subl inh o q ue para a grande m aioria das s is te m as de fich e iros W indow s , de ve rá tam bém
dis tribuiçõe s nada dis to s e rá ne ce s s ário. activar o s uporte aos s is te m as de caracte re s
de finidos ante riorm e nte , e m :
D e ve rá, s e s e guiu um q ualq ue r tutorials obre
com o re com pil ar o k e rne l, e ncontrar-s e Device Drivers
ne s te m om e nto num a inte rface s e m e l h ante ->Native Language Support
à da im age m (ge ral m e nte ace s s íve l pe l
o
com ando m ak e m e nuconfig ou m ak e E de ve rá activar:
xconfig). <*> Codepage 860 (Portuguese)
<*> NLS ISO 8859-15 (Latin 9; Western
European Languages with Euro)

O pcional
m e nte pode dar je ito adicionar tam bém :
<*> NLS UTF-8

D e ve rá tam bém ve rificar s e e m :


Device Drivers
-> CDROM/DVD Filesystems
M ovim e nte -s e com as te cl as de dire cção,
Ente r para e ntrar nas pas tas , a barra de
e s paços para s e l e ccionar cada m ódul o q ue contém s uporte para e sse s tipos de
de s e jar (e s tará corre ctam e nte s e l
e ccionado arm aze nam e nto.
q uando apare ce r <*> no princípio da l inh a)
e Es c para s air. Cas o pre te nda m ontar fich e iros de im age m de
Entre e m : Fil e Sy s te m s cd/dvd .is o, s e l
e cione tam bém ne s s a pas ta:
<*> Microsoft Joliet CDROM extensions
Aq ui te rá de s e l e ccionar cada s is te m a de
fich e iros para o q ualq uis e r te r s uporte . M ais :
Device Drivers
Um e xe m pl o:
-> Block devices
<*> loop-back filesystem support

Cas o pre te nda s uporte USB te rá de s e dirigir a:


Device Drivers
-> USB Support
<*> USB Mass Storage Support

e tudo o m ais s e ade q uar ao h ardw are


pre s e nte na s ua m áq uina.

<24>
gnu/l
inux

Us e o TAB para s e l e ccionar Exit, e re pita O facto de um a drive s e e ncontrar no fstab,


várias ve ze s até s air do configurador e l h e se r não q ue r dize r e xactam e nte q ue no
pe rguntado s e de s e ja gravar as al te raçõe s m om e nto do boot te nh a de lá e s tar al
gum
fe itas , onde de ve rá re s ponde r Ye s . tipo de dados a s e re m m ontados . Por
e xe m pl
o, pode adicionar-s e um a drive de
Pros s iga o tutorialda s ua dis tribuição de cdrom 's ao fstab s e m l á s e e ncontrar
m ane ira a apl icar o novo k e rne le activá-l
o. ne nh um cd, q uando for para a ace de r
bas tará faze r:

M ontando...
# mount /dev/cdrom0

ou
Pos to tudo is to, vam os final m e nte pas s ar à
acção e a apre nde r a m ontar os s is te m as de # mount /mnt/cdrom
fich e iros q ue ne ce s s itam os s e m q ual q ue r
probl e m a. Prim e iro, e com o já foi re fe rido, h á q ue o com ando autom aticam e nte l e rá o
um fich e iro de te xto q ue de fine , aq uando do fstab e e xe cutará o proce s s o com todas as
carre gam e nto do s is te m a, as drive s a s e re m opçõe s l á de finidas . Se ndo por s ua ve z a
m ontadas autom aticam e nte . Talfich e iro é o de finição na drive no fstab:
/e tc/fstab e é e ditáve l ape nas pe l o s upe r
utilizador root. Tudo aq uil o q ue s e faz pe l o /dev/cdrom0 /mnt/cdrom iso9660
com ando m ount pode s e r de finido no fstab e noauto,ro 0 0
de s te m odo m ontado de s de o início s e m
inte rve nção dire cta do util izador. O fich e iro O facto de ape nas o util izador root pode r
cons is te em 5 col unas q ue de fine m m ontar/de s m ontar a partição/drive pode
e xactam e nte o m e s m o q ue é de finido no s e r alte rado pe l a adição da opção 'us e r'
com ando m ount, s e ndo e s tas : na col una <opts > do fstab, na l inh a da
drive pre te ndida. Já o 'ro', re pre s e nta re ad
<fs> <mountpoint> <type> <opts> onl y, ou s e ja, ape nas s e rá pos s íve la l e itura
<dump/pass> ne s s a drive cd.

Corre s ponde ndo o <fs> à im age m do Para m ontar um a partição FAT faríam os por
h ardw are no dire ctório /de v/, o m ountpoint e xe m pl
o, novam e nte tudo na m e s m a l
inh a:
ao dire ctório onde tal drive de ve s e r
m ontada para q ue s e ja ace dida, o ty pe /dev/hda4 /mnt/particaofat vfat
re fe re -s e aos s is te m a de fich e iros (fat, e xt3, user,rw 0 0
e tc), o <opts > a opçõe s . Já o dum p re fe re -
s e à ne ce s s idade ou não de s e r fe ito um
dum p ao dis co aq uando do s e u
carre gam e nto, e o pas s re fe re -s e à orde m
pe l a q ualde ve s e r fe ito um ch e ck às drive s
cas o o s is te m a não te nh a s ito te rm inado
corre ctam e nte (0 re fe re q ue não é
ne ce s s ário nunca faze r talve rificação, e a
partição rootde ve rá te r o val or 1).

Um e xe m pl
o para a partição root:

# <fs> <mountpoint> <type> <opts> <d/p>


/dev/hda1 / reiserfs noatime 0 1

<25>
gnu/l
inux

Q ue nos m ontará a drive com 'rw ', ou s e ja, Agora, o uid e gid, é um a m ane ira
com a particul aridade de s e e ncontrar dife re nte de de finir pe rm is s õe s , e nq uanto o
com ace s s o re ad and w rite (e s crita e um as k faz o e q uival e nte a um ch m od
le itura). Se porve ntura e s s e ace s s o for (de finir pe rm is s õe s ), o uid e gid faze m o
ape nas vál ido para o util izador root, e e q uival e nte a um ch ow n (de finir a q ue m s e
de s e jarm os de finir as pe rm is s õe s da drive apl icam as pe rm is s õe s de finidas ). Para
e m q ue s tão, bas ta nas opçõe s adicionar o s abe r os val ore s a pôr a s e guir ao = de
com ando um as k =0xxx, e m q ue o xxx é um cada opção faça:
núm e ro q ue de fine as pe rm is s õe s da
partição m as inve rtidas , e o 0 inicialo $ id <nome do user que quer que seja
pre fixo q ue indica q ue o núm e ro dono (owner) da drive>
cons e q ue nte e s tará e m octal . O u s e ja, s e
q uis e rm os de finir um a pe rm is s ão 777 E obte rá a re s pos ta.
fare m os um as k =0000, s e q ue re m os 644
fare m os um as k =0133. Se m pre 7 m e nos o
núm e ro q ue de fine a pe rm is s ão q ue O utra particul aridade da m ontage m de
pre te nde m os . Para s abe r de finir pe rm is s õe s s is te m as de fich e iros é q ue pode rá us ar o
ve ja a e dição pas s ada da Re vis ta com ando m ount para m ontar im age ns de
PRO G RAM AR. fich e iros e m .is o, para is s o:

Pode m os tam bém de finir um a pe n us b no # mount -t iso9660 -o loop,user


fstab, faze ndo para is s o: <imagem>.iso
/<directório de montagem>
/dev/sda /mnt/pendrive vfat
user,rw 0 0
Pe ns o q ue e s tão de s ta m ane ira e xpl icadas
as opçõe s bás icas para a m ontage m de
Não nos e s q ue çam os q ue na com pil ação s is te m as de fich e iros , com o o faze r, e ce rtos
do k e rne lfoi de finido, para os s is te m as de re q ue rim e ntos ne ce s s ários ao níve l do
fich e iros FAT, o s is te m a de codificação de k e rne l . Exis te m m uitas m ais opçõe s , tal ve z
caracte re s de faul t. Se rá com e s s e q ue a tantas q ue dariam conte údo para um a
drive s e rá m ontada. Se não o de s e jar us e a re vis ta PRO G RAM AR inte ira, m as is s o fica a
opção nl s =, por e xe m pl o nl
s =is o8859 -15, cargo do util izador q ue acabou de l e r e s te
ou nl s =utf8. artigo e de s e ja s abe r m ais . O com ando
m an m ount, de ve rá re s ponde r m ais
de tal h adam e nte a todas as opçõe s
Para ntfs faríam os por e xe m pl
o: pos s íve is e s uas funçõe s .

/dev/hdb1 /mnt/windows ntfs Boas m ontage ns ...


nls=utf8,user,ro,uid=1000,gid=1000 0 0

Q ue de fine q ue a drive a s e r m ontada


pos s ui s is te m a de fich e iros e m NTFS, com o
s is te m a de codificação de caracte re s
de finido para utf8 (pode s e r us ada is o8859 -
M igue lPais

15, m as é irre l e vante vis to q ue por de fe ito


nos s is te m as G NU/Linux nada pode s e r
e s crito e m ntfs), o util izador norm alpode rá
m ontá-l a e de s m ontá-la ('us e r'), m as
ape nas pode rá l ê-la (ro).

<26>
proje cto

D uas s e m anas de pois e com um a prim e ira


ve rs ão funcional com e çe i a ponde rar a
h ipóte s e de tornar o proje cto dis poníve lna
Inte rne t, ou m e s m o criar um a ve rs ão
com e rcial . Para confirm ar todas e s tas
q ue s tõe s , foi fe ito um pl ano de ne gócio
A ne ce s s idade é a m ãe de todas bás ico e o proje cto foi apre s e ntado na
as inve nçõe s Confe rência Barcam p Pt, (h ttp://barcam p.org
/BarCam pPortugal ), confe rência e s ta s obre
w e Spe ndM one y é um a apl icação w e b novas te cnol ogias , program ação, w e b 2.0 e
de s tinada a pe s s oas q ue q ue re m controlar outros as s untos . A apre s e ntação foi um
as s uas de s pe s as de form a fácil , rápida e s uce s s o, várias pe s s oas de m ons traram
s e gura. Não é pre cis o ins talar e m ne nh um inte re s s e no proje cto e m ais tarde foi fe ita
com putador, ape nas é ne ce s s ário re gis tar outra apre s e ntação públ ica na Sh ift 06,
no s ite e te r um a l igação à Inte rne t para onde cons e gui e fe ctuar m uitos contactos e
com e çar a us ar. pe rce be r o pote ncialq ue te m os e m Portugal
para de s e nvol ve r para a w e b.
A ide ia para o proje cto com e çou num a
conve rs a de café, e ntre col e gas de
trabal h o, onde dis cutíam os a q ue s tão do
control o das de s pe s as fe itas ao l ongo dos
dias e s e m anas . Poucos de nós re al izam os
com al gum a pe riodicidade a actual ização
das cade rne tas e ch e gam os à concl us ão
q ue os e xtractos bancários pas s ado al gum
te m po s ão il e gíve is , pois a fraca de s crição
"h um ana" das de s pe s as , por e xe m pl o
"CO M P 9 8, 5 e uros ", não pe rm ite re cordar
e xactam e nte q uala de s pe s a e m s i. O utro
probl e m a cons is te no us o de apl icaçõe s
actual m e nte e xis te nte s para o W indow s ,
norm al m e nte com um inte rface confus o,
com "fe ature s "q ue ninguém us ava e difícil
de apre nde r.

Lançado o probl e m a na m e s a pe rce be m os


q ue a m e l h or s olução não e ra gravar cada
de s pe s a q ue faze m os e m fich e iros de te xto
arm aze nados num pc, m as num a apl icação
w e b q ue pe rm itis s e ace s s o e m q ual q ue r
al tura e l ugar, s e ndo ne ce s s ário s e r intuitiva W e Spe ndM one y foi de s e nh ado de raiz
e s e gura (pois o dinh e iro é s e m pre um pe ns ando no util izador. Não s e pre te nde
as s unto s e ns íve lna inte rne t) e fácilde us ar. cons truir um a apl icação com ce nte nas de
"fe ature s " q ue não s e jam us adas pe l os
D e pois de m uitas s uge s tõe s de cidi iniciar e s ta utilizadore s , m as procurar s e r tão s im pl es
ave ntura de faze r um a apl icação q ue não s ó com o um w e bl og e forne ce r aos util izadore s
m e re s olve s s e a falta de control o s obre os as fe rram e ntas q ue pre cis am para guardar e
gas tos , m as q ue tam bém s e rvis s e de tre ino catal ogar as s uas de s pe s as , de finir
para os m e us s k ills com um a ce rta fram e w ork orçam e ntos m e ns ais e age ndar trans acçõe s .
q ue já andava h á e s tudar a al gum te m po...

<27>
proje cto

Tam bém é pos s íve lcons ul tar re latórios s obre


o q ue s e gas tou, q uando e onde , para al ém Rail s é um a l inguage m m uito dinâm ica,
de s e pode r e xportar a q ual q ue r m om e nto al tam e nte produtiva, orie ntada a obje ctos
todos os nos s os dados para um fich e iro ".cs v" com um a s intaxe coe re nte , fam iliar e m uito
q ue pode s e r abe rtos pe l o M icros oft Exce l . s im pl
e s q ue util
iza o padrão M VC (M ode lVie w
Is s o q ue r dize r q ue os nos s os dados não Control e r).
ficam "pre s os "pe l a apl
icação.
Rail s s e gue dois conce itos q ue vis am
aum e ntar a produtividade de q ue m
program a: D RY e Conve ntion ove r
Configuration. D RY (D on't Re pe at Yours e l f,
Não s e re pita) é o conce ito por trás da
técnica de e s cre ve r nom e s , proprie dade s e
código e m s om e nte um l ugar e re aprove itar
e s s as inform açõe s e m outros s ítios da nos s a
apl icação, é e s s e ncialpara m ante r código
lim po e a apl icação facil m e nte actualizáve is
no futuro.

Conve ntion O ve r Configuration (Conve nção


ao invés de Configuração) é um conce ito
onde s e pre te nde o us o de conve nçõe s ou
padrõe s e cas o o program ador de s e je , pode -
s e s obre s cre ve r e s s a conve nção com o val or
q ue de s e ja (ou foge á norm a). Por e xe m pl o,
a cl as s e Carro pode te r os s e us dados
Para com e çar o de s e nvol vim e nto do arm aze nados na tabe l a Carros , m as s e
w e Spe ndM one y não foram ne ce s s ários de s e jarm os pode m os atribuir outro nom e à
m uitos re curs os , al iás , e s s a com e ça a s e r a tabe l a. Com e s te s dois conce itos e m uitos
norm a com a m aioria dos proje ctos outros porm e nore s intríns e cos da fram e w ork ,
re lacionados com a w e b 2.0. Foi util izada a o te m po de de s e nvol vim e nto é m ais curto e o
fram e w ork ope ns ource Ruby O n Rail s com o trabal h o do program ador é facil itado.
bas e da program ação e o s is te m a de
ge s tão de bas e de dados e s col h ido foi o
M y SQ L, q ue é igual m e nte gratuito. O s is te m a
de control o de ve rs õe s e s col h ido foi o SVN
(m ais conh e cido por Subve rs ion) pe l as s uas
caracte rís ticas s upe riore s ao CVS e a ge s tão
do proje cto ficou facil itada pe l o us o do
Bas e cam p (h ttp://w w w .bas e cam ph q .com ),
um ge s tor de proje ctos onl ine tam bém e l e
fe ito e m Ruby O n Rail s.

M as afinalo q ue é Ruby O n Rail s e q ual


a s ua im portância para o proje cto?

Ruby O n Rail s é um a fram e w ork com pl e ta


para o de s e nvol
vim e nto de aplicaçõe s w e b,
a s ua fil
os ofia as s e nta na fe licidade do
program ador e e m produtividade s us te ntáve l.

<28>
proje cto

A apl icação ainda e s tá e m de s e nvol vim e nto


cons tante , e xis te m pl anos para incorporar
Pode ria fal ar m ais de tal h adam e nte de Rail s w e Spe ndm one y com o te l e m óve l (por
m as é m e l h or de ixarm os is s o para um futuro e xe m pl o para cons ul tar o s al do), traduzir
artigo, de q ual q ue r form a q ual q ue r pe s s oa para várias l ínguas , criação de w idge ts para
pode faze r dow nl oad e com e çar a o Ne tvibe s e o Yah oo!W idge ts (de form a a
program ar e m Ruby ou Ruby O nRail s , bas ta inte ragir com o s ite a partir do de s k top) e a
para is s o ir ao e nde re ço oficial pos s ibilidade de im portar trans acçõe s
(h ttp://w w w .ruby onrail s .com ), ou s e de s e jare m dire ctam e nte dos bancos . No fundo tornar a
m ais inform açõe s em português no vida dos util izadore s cada ve z m ais
Ruby <<portugue s e (h ttp://w w w .ruby-pt.org). facil itada.

Es ta al ta produtividade forne cida pe l a No início de Nove m bro de ve rá e s tar


fram e w ork (e a fil
os ofia q ue a acom panh a) dis poníve la ve rs ão al ph a para todas as
foi a principalrazão pe l a s ua e s col
h a na pe s s oas q ue pe dire m no s ite oficial
produção do w e Spe ndM one y (adm ito q ue (h ttp://w w w .w e s pe ndm one y.com ), é um a
a inte gração com as bibl iote cas prototy pe m ane ira de pode r participar na cons trução
e s cript.acul o.us para ge rar e fe itos Ajax da apl icação te s tando e contribuindo com
tam bém pe s ou na e s col h a). s uge s tõe s ou criticas à form a com o e s tá
de s e nvol vida.

As s im concl uo, q ue e s te proje cto te m s ido


um de s afio m uito e nriq ue ce dor e e s pe ro
q ue ins pire outros a participar e m
e xpe riências s e m e l
h ante s .

Q ue m é Pe dro S ous a?
Pe dro Sous a é Program ador Se nior na
Acce nture com vários anos de e xpe riência
e m apl icaçoe s w e b e fundador do grupo
Pe dro Sous a

"ruby <<portugue s e " (ruby-pt.org) e nos


te m pos l ivre s e s cre ve para no s e u bl
og
(re inve ntar.com ).

<29 >
anál
is e s

Al
goritm ia e Es truturas de D ados

Jos é Brag a de Vas cons e l


os
João Vidalde Carval ho

Editora: Ce ntroAtl
antico.pt
e cção: Te cnol
Col ogias
Páginas : 328
1ª e dição: Se te m bro de 2005
ISBN: 9 89 -615-012-5

Al goritm ia e Es truturas de D ados é um l ivro à m anipul ação de im portante s e s truturas


de s tinado a todos os inte re s s ados nas dis cre tas com o pilh as , filas , lis tas
ciências da com putação. Es te l ivro foca-s e e ncade adas s im pl e s e circul are s , árvore s e
e s s e ncialm e nte na al goritm ia, com o form a grafos . Todas e s tas e s truturas de dados s ão
de re s ol ução de probl e m as e com o auxil iar be m e xplicadas , com o auxíl io de
à criação de program as de com putador e s q ue m as s im pl
e s e de s criçõe s de tal h adas .
para apl icar e s s as s oluçõe s . São tam bém
m uito focadas dive rs as e s truturas de dados Final m e nte , s ão introduzidas duas
re corre nte s actual m e nte . Por fim , é fe ita linguage ns de program ação m uito
um a bre ve introdução a duas popul are s utilizadas actual m e nte . É dada m ais ênfas e
linguage ns de program ação, C e Java. à l inguage m C e às s uas caracte rís ticas
para a re pre s e ntação e control o de dados ,
O l ivro com e ça com um a de tal h ada s e ndo e ntão trans critos al guns al goritm os
introdução ao m undo da al goritm ia e à ante riorm e nte re fe re nciados , ne s ta
m ode l ação de probl e m as . É re l
acionada a linguage m . São de pois apre s e ntadas as
al goritm ia com a e nge nh aria de s oftw are , caracte rís ticas únicas de Java, s e guidas de
s ão apre s e ntadas as s uas com pone nte s , e xe m pl os de util ização de cl as s e s e da
al gum as l inguage ns q ue pe rm ite m a s ua de finição de tipos de dados abs tractos .
re pre s e ntação. Tam bém s ão m e ncionados
dois dife re nte s m étodos de conce pção Al goritm ia e Es truturas de D ados é um l ivro
al goritm ica, os conh e cidos ite ração e be m cons e guido, e s crito por dois
re curs ão. A s e guir, s ão apre s e ntados os profe s s ore s e xpe rie nte s e m dive rs as áre as
tipos de e s truturas de dados util izados e m das ciência da com putação. Es te l ivro
com putação e todas as caracte rís ticas da pode rá s e rvir tanto para e ntrar no m undo
linguage m (ps e udocódigo) q ue s e rá da al goritm ia, com o de re fe rência para
utilizada para a re pre s e ntação dos trabal h os futuros . Pe ca ape nas por al gum a
al goritm os propos tos ao l ongo do l ivro. com pl e xidade , tornando-s e as s im ape nas
re com e ndado a q ue m já pos s uir al gum
Sérgio Santos

G rande parte do l ivro é de dicada à "back ground" e m program ação de


apre s e ntação e cons e q ue nte propos ta de com putadore s . M as não de ixa de s e r um
al goritm os re fe re nte s a variados probl e m as óptim o l ivro para e s tudante s da áre a de
re corre nte s em com putação, com o inform ática, m ate m ática apl icada e /ou
orde nação e pe s q uis a e m l is tas , e re fe re nte s curs os de e nge nh aria.

<30>
anál
is e s

Le arning C# 2005

Je s s e Libe rty
Brian M acD onal d
Editora: O 'Re il
l
y M e dia
Linguage m : Ingl
e sa
Páginas : 552
2ª e dição: Fe ve re iro de 2006
ISBN: 0-59 6-10209 -7

Actual m e nte , s ão m uitos os util


izadore s q ue O utro dos pontos a favor é o s e u de tal he,
ade re m ao m undo da program ação, q ue r pe rm itindo q ue m e s m o os iniciante s q ue
para fins profis s ionais , q ue r para dive rs ão program am h á pouco te m po pos s am ,
ou com o h obby. M uitos de s te s inte re s s ados de pois da l e itura, cons truir program as m uito
de param -s e , de início, com a dis cutíve le com pl e tos , utilizando o pode r de todas as
ine vitáve lpe rgunta: “Q ue l inguage m de vo fe rram e ntas e funcional idade s q ue lh e s s ão
apre nde r prim e iro? ” H á dive rs as opiniõe s ofe re cidas de form a prática e e ficie nte . O
s obre o te m a, m as um a grande parte dos livro cobre q uas e tudo s obre a s intaxe e
program adore s diria q ue C# .NET é um a e s trutura da l inguage m , be m com o as boas
linguage m pode ros a e , s im ul tane am e nte , práticas no de s e nvol
vim e nto de
ide alpara a iniciação. apl icaçõe s . H á um grande e nfoq ue nos
conce itos e apl icação do paradigm a O O ,
É aq ui q ue e ntra o l ivro Le arning C# 2005. um a das grande s vantage ns do C# e m
D e s tinado principal m e nte a util izadore s s e m re lação a outras l inguage ns .
q ual q ue r e xpe riência ne s ta áre a, a re fe rida
publ icação pe rm ite ao l e itor cons truir bas e s O de s vio da ate nção do l e itor para te m as
s ólidas , tanto nos conce itos te óricos do .NET com o o as pe cto vis uale a apre s e ntação
Fram e w ork ou de O bje ct O rie nte d dos control os nas jane l as não é probl e m a,
Program m ing com o nas apl icaçõe s de s s e s um a ve z q ue todos os te m as s ão
conce itos para a cons trução de apl icação abordados através da util ização de um a
m ais e s táve is e funcionais . Através de cons ol a. O utro dos pontos a e nal te ce r é a
e xe m pl os de código, dicas e cons e l h os , a apre s e ntação de s um ários , q ue s tionários e
linguage m é apre s e ntada ao iniciante de e xe rcícios no fim de cada capítul o, q ue o
form a s uave , pe rm itindo a as s im il ação das le itor de ve te ntar re s ol
ve r para ce rtificar-s e
ide ias e a s ua apl icação e m conte xto de q ue pe rce be u toda a inform ação.
prático.
O código dos proje ctos apre s e ntados no
O te xto é e s crito num vocabul ário m uito livro e s tá dis poníve l na Inte rne t, e m
h ttp://w w w .l
ibe rty as s ociate s .com /page s /fil
e s/
de ira

ace s s íve l
, s e ndo q ue todos os te rm os
técnicos q ue o l e itor pos s a não conh e ce r Le arningCS2e Source .zip. Fica e ntão a ide ia
Pe dro Cal

s ão e xpl icados e m de tal h e . E é faze ndo de q ue o l ivro é um a boa e s col h a para a


us o de s ta m e s m a ace s s ibilidade q ue o l ivro iniciação e m C# , m as para os q ue já têm
cons e gue orie ntar e tornar pe rce ptíve is e xpe riência ne s ta l inguage m outros l ivros ,
m e s m o os conce itos m ais com pl e xos . com o Program m ing C# , dos m e s m os
autore s , s ão m ais acons e l h áve is .

<31>
inte rne t

apatana é u m ID E dire ccionado


para as l ing u ag e ns w e b:
JavaS cript, H TM L, C S S ;com
caracte rís ticas m u ito úte is para os
prog ram adore s . Es tá dis poníve l
tam bém com o pl u g in para o
conh e cido Ecl ips e .
h ttp://w w w .aptana.com

D is troW atch é u m conh e cido


portals obre dis tribu içõe s de
s is te m as ope rativos Linu x e BS D .
C ontém as úl tim as novidade s e
várias inform açõe s e s s e nciais
s obre as dis tribu içõe s , as s im
com o TO Ps de popu l aridade .
h ttp://dis trow atch .com

ope ns ou rce C M S pos s ibilita u m a


de m ons tração de de ze nas de
C M S s (C onte nt M anag m e nt
S y s te m s ) g rátis e l
ivre s , de s tinados
para portais , bl og s , fóru ns , w ik is ,
e ntre m u itos m ais .
h ttp://w w w .ope ns ou rce cm s .com

M ath s Ch al
l
e nge é a cas a do Proje cto
Eu le r, u m proje cto q u e cons is te na
re s ol u ção de de ze nas de dife re nte s
probl e m as m ate m áticos , re corre ndo à
prog ram ação. Pos s u i tam bém e s tatís ticas
s obre as l ing u ag e ns e os país e s dos
participante s , s e ndo pos s íve lobs e rvar q u e
ainda te m pou co pe s o e m Portu g al .
h ttp://m ath s ch al
le ng e .ne t

<32>
bl
ue s cre e n

M ais um dos fam os os e rros

Foi e ncontrada a te cl
a m ais
procurada de todas Um a de s cobe rta inovadora

O novo m odding portátil

<33>
com unidade

Es tam os s e ns ive l
m e nte a dois m e s e s do fim
do ano e o Portugal -a-Program ar continua
a te ntar inovar e m várias áre as ao m e s m o
te m po: nas q ue já e s tam os ins e ridos
tive m os s uce s s o, nas q ue e s tão a s e r
pl ane adas e s pe ram os te r ainda m ais .
Contam os com um fórum m ovim e ntado,
com aproxim adam e nte 2200 util izadore s , o
q ue faz com q ue e s te jam os à vontade para
nos conce ntrarm os noutros voos .
Q ue re s participar na re vis ta
PRO G RAM AR?Q ue re s inte grar e s te
proje cto, e s cre ve r artigos e ajudar A re vis ta bate u todos os re corde s de
a tornar e s ta re vis ta num m arco e s tatís ticas com a e dição ante rior e vam os
da program ação nacional ? ce rtam e nte bate r m uitos m ais com e s ta
e dição. Q ue re m os faze r com q ue e s ta
Vai a e dição ch e gue a ainda m ais inte re s s ados
e m program ação, de m odo a q ue pos s am
conh e ce r o nos s o fórum e o bom am bie nte
w w w .re vis ta-program ar.info da nos s a com unidade .

para m ais inform ação com o


participar
ou e ntão contacta-nos por Em re l ação aos voos do futuro de q ue h á
tanto te m po te nh o vindo a fal ar, pode m os

re vis taprogram ar de s de já adiantar m ais al


vam os te r um a pl
guns porm e nore s :
ataform a de e -l e arning a
@ portugal
-a-program ar.org funcionar até ao fim de 2006 e e s pe ram os
arrancar rapidam e nte com um a te l e vis ão
onl ine técnica. Para q ue todos pos s am
Pre cis am os do apoio de todos participar ne s te s proje ctos , de ve m dirigir-s e
para tornar e s te proje cto ainda ao fórum do P@ P e ir acom panh ando as
m aior... novidade s q ue todos os dias vão s urgindo.

contam os com a tua ajuda


Es te s proje ctos s ó s e re al
izarão com a boa
vontade e e ntre ga de cada util izador.
Pre cis am os de ge nte capaz de criar bons
conte údos , de m odo a q ue e s te s novos
proje ctos te nh am s uce s s o. Contam os com
o vos s o contributo. Ve m o-nos pe l o P@ P...

w w w .portugal
-a-program ar.org
Rui M aia

<34>

Você também pode gostar