You are on page 1of 52

e dit orial

ndice 3 not cias 4 t m a de capa e 10 a program ar 30 s e gurana 34 e lct e rnica 39 t orial ut 45 gnu/inux l 48 anle s is 49 int rne t e 50 bl s cre e n ue 51 com unidade

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

adm inis t rao


Rui M aia D avid P as s ilo int g

coorde nador
S rg io S ant os

A Eq u ipa
dit q ue , para al de t r um a boa ide ia, t r um a boa e q uipa o m e e e s s e ncial para obt r s uce s s o num proj ct Com e ar e t nt e e o. e ar acabar um proj ct s ozinh o , m uit v ze s , s uicdio para o e o as e prprio proj ct M e s m o q ue as nos s as capacidade s e s t j e o. e am al t ura, s e m pre ne ce s s rio out ros pont de v t opinie s , os is a, out ras s ol ue s para um de t rm inado problm a e , e e principal e nt , apoio e m ot ao. A probabil m e iv idade de um proj ct f e o icar a m e io, q ue r por de s int re s s e ou f t de t m po, e al a e m uit m aior q uando e s t os s ozinh os v t de l. o am ol a e M uit v ze s a ide ia ne m o principalj q ue ne m s e m pre a as e ide ia q ue com e am os a f . Exis t m m uit cas os de s uce s s o inal e os act m e nt q ue de m ons t ual e ram is s o m e s m o. Ainda m ais , um a boa e q uipa cons e gue s e m pre criar boas ide ias q uando pre cis o. O t anh o das e q uipas t bm m uit v ze s dis cut am am as e ido. Na m inh a opinio, para com e ar do ze ro o m e lor m e s m o h com e ar com um grupo re duzido. T odos os f ore s " xt act e raproj ct com o a com unicao e organizao aum e nt e o" am e xpone ncial e nt com o nm e ro de pe s s oas e nv v m e olidas no proj ct M as ir ch e gar o t m po e m q ue s e ro pre cis as m ais e o. e pe s s oas . M as , e m v z de at e irar m ais ge nt para um problm a, e e m uit v ze s m ais t div as e il idir a e q uipa e m v rios grupos com dif re nt s re as de f e e oco. E o principal re s pe it s e m pre o : ar t rabalo e as opinie s de t h odos os m e m bros da e q uipa.

coorde nador adj o unt


M ig ue l ais P

e dit or

Joe l Ram os

re daco

F bio P dros a e B runo V az F bio Corre ia P dro T ixe ira e e R icardo Roch a S andro P o int M ig ue l ah nan W M arco S il va Jos O l ira ive

col aboradore s
Rui G onal s ve D anie l Corre ia

cont o act w e bs it e

re vis t aprog ram ar @ port al ug -a-prog ram ar.org w w w .re vis t a-prog ram ar.inf o

<2 >

Srgio Sant os

not cias

D e le Ubunt l u
D e pois de um a v ao no s it da D e l ot e l de dicado aos cons um idore s , o I aSt , de orm a D e l de cidiu com e ar a com e rcial l izar com put adore s com o Ubunt 7.04 (F is t u e y F n) com o s is t m a ope rat o praw e iv ins t ado. A e s cola re caiu s obre o Ubunt al h u de v ido m aioria dos cons um idore s o t r e pre f rido. A D e lno ir dis t e l ribuir a v ariant e K D E, o K ubunt ape nas o Ubunt q ue us a u, u G NO M E. A v ao no I aSt ot de orm e nv v u m ais de ole 100 m ilpe s s oas e re v l q ue ce rca de e ou 70% de s t as e s t am dis pos t av as a ut izar il s is t m as ope rat os L e iv inux. Num a f e inicial e s t s com put as e adore s ape nas e s t aro dis ponv is para v nda e e nos EUA, m as a D e lno re j it a h ipt s e l e a e de e xpandir e s t iniciat a a out pas e s . a iv ros

G aim m uda nom e para P idgin


D e pois dum l ongo e confit o proce s s o luos de ne gociae s com a AO L um dos , principais I s dos EUA, a e q uipa do G aim SP de cidiu m udar o nom e do f os o I t am ns ant M e s s e nge r para P idgin. Em caus a e s t a o av s is t m a de com unicao e m t m po re al e e AI , de t M ido e re gis t ado pe l AO L pouco a , t m po de pois das prim e iras v rs e s do e e G aim t re m v e indo a pbl ico. Aps m uit t m po e m t o e ribunal a e q uipa , do G aim de cidiu dar o brao a t orce r um a v z q ue o proce s s o e s t a a im pe dir o e av l anam e nt de v rs e s non-be t do G aim . o e a As s im , f pos s v l t aguardada v rs o oi e a o e 2.0.0. A nov v rs o t m um nov v ual a e e o is , m uit nov f as as uncional idade s e cl aro, um nov nom e : P o idgin.

G oogl a m arca m ais v ios a do m undo e al


Se gundo um e s t udo da e m pre s a de pe s q uis a de m e rcado M il ard B n e m conj o com l w row unt o F inancialTim e s , o m ot de bus ca G oogl a m arca m ais cara do m undo e s t or e ando av iada e m q ualue r cois a com o 49 m ilm ile s de e uros . D e acordo com o rank ing al q h B randZ - As 100 M arcas M ais P ode ros as , o G oogl aum e nt e ou 77% num ano, t ndo e ul t rupas s ado a M icros of, a m ais v ios a e m 2006. t al Es t ano, a M icros of pas s ou para t rce iro l e t e ugar v e ndo 40,5 m il ile s de e uros , e s t al m h ando abaixo da G e ne ral e ct El rics q ue v e 45,6 m il ile s de e uros . O q uart pos t ocupado al m h o o pe l Coca-Col com 32,5 m il ile s de e uros , um pouco aq um do v or da M icros of. a a, m h al t Ent as 10 m arcas com v ore s m ais e lv re al e ados , oit s o nort - am e ricanas , s e ndo as de o e t cnol e ogias e as de cons um o ge ral m ais pre s e nt s na lt as e is a. No conj o, e s t 10 m arcas - G oogl, M icros of, Ch ina M obil, W al art Coca-Col Cit unt as e t e -M , a, i, I M , T ot M cD onal e B B oy a, d's ank ofAm rica - v e m 1,2 bil s de e uros , m ais 10,6% do q ue al ie no ano pas s ado. O s e gm e nt de t cnol o e ogias aq ue l onde as m arcas v e m m ais , s e ndo q ue as cinco m ais e al pode ros as (G oogl, M icros of, I M , Nok ia e H P ch e gam aos 155,6 m il ile s de e uros . e t B ) m h

<3>

t m a de capa e

W indow s V t is a para P rogram adore s


I roduo nt
W indow s Vt is a (ant igo code nam e : L ongh orn) o m ais re ce nt l e anam e nt o da M icros of, m ais de 5 anos aps o s e u t s uce s s or W indow s XP cont , m ce nt nas de e nov caract rs t as e icas , e nt as q uais , um a re nov a int rf e ace grf ica, m e lorias de h pe s q uis a, f rram e nt m ul dia, udio, e as t im s e gurana, e principal e nt no as s unt m e o q ue nos int re s s a e (pl af a at orm de de s e nv v e nt , a nov olim o) a v rs o da e pl af a .NET at orm . Junt e nt am e com o l anam e nt o do s is t m a, e v m t bm int grada a e am e nov v rs o da Pat orm a a e l af .NET 3.0 (ant igo code nam e : W inF . X)

de s igne rs . Junt e nt am e com e st a t cnol e ogia, a M icros of int t roduziu um a nov l a inguage m de m arcao bas e ada e m XM L ch am ada XAM L , .

W indow s Com m unicat ion F oundat ion (W CF f ) orne ce um a F e w ork nica para ram
a cons t ruo rpida de apl icae s s e guras , f e is e orie nt iv adas Appl ion a s e rv . icat ios

de rot inas e padre s t f are as de aut ao e om e st abe lcidos por um s ofw are t e t rans ace s int gradas e para ut izao il das s uas ut izando grf il icos de fuxo. l f uncional idade s por program as B e ada na v rs o 2.0, a as e um m ode l o de icat os o nov v rs o da pl af a apl iv , is t : program as program ao, a e at orm m ot or e q ue no q ue re m e nv v r-s e f rram e nt ole t nov APs , com o: raz as I e as para pe rm it ir em de t h e s al da apl icae s bas e adas e m e ao do s ofw are , fuxo e m W indow s . t W indow s P s e nt ion im plm e nt re at l m as ape nas us ar os s e us F oundat ion (ant igo Av on) al ios . s im plica a cons t if ruo de s e rv W indow s CardSpace apl icae s cl nt ie e ricas , (W CS) um com pone nt e um a v z q ue f it a int grao de e acila e q ue guarda ide nt idade s digit ais dum a m ul dia, docum e nt t im os e UI O W P . F pe s s oa e m s e gurana, e of re ce um a e int roduz um s is t m a av e anado de l out , ay s int rf e ace unif icada para e s cole r um a h f cilint grao de m ul dia e grf e t im icos ide nt idade para um a part ar icul v ct e oriais e 3D , f it acilando ainda a t rans aco, t com o o l al ogin de um col aborao e nt program adore s e re w e bs it . e

AP, I de P rogram m ing I e rf nt ace (ou I e rf nt ace de P rogram ao W indow s W ork fow l de Apl iv ) um conj o F icat os unt oundat ion (W W F of re ce ) e

<4>

t m a de capa e
Es t t cnol as e ogias t bm e s t am o dis ponv is e para W indow s XPe W indow s Se rv r 2003. e Exis t m t bm nov APs im port e s no e am as I ant nclo do s is t m a ope rat o, incl iv o e e iv us e re nov ado int rf e ace udio, re de , im pre s s o e v o. Al rae s na inf de t e ra-e s t ura de rut s e gurana, m e loram e nt na dis t h os ribuio e ins t ao de apl al icao (Cl O nce e ick W indow s I t lr 4.0) nov m ode l de ns al e , o o de s e nv v e nt de driv rs (W indow s D riv r olim o e e F oundat , ion) T rans act ion NTF S, de s e nv v e nt na AP de com put olim o I ao m v l s t de e ne rgia, Suport T e t P e (ge o e abl C I , Side Sh ow ) e grande s de s e nv v e nt nk olim os dos s ubs is t m as com o W inl e ogon e CAP. I Com e s t nov F e w ork e s t problm a a a ram e e de s apare ce , pois garant ida 100% com pat idade . At v rs o 2.0 da ibil e F e w ork , ram q ualue r q apl icao de s e nv v olida ut izando a pl af a corria il at orm e st e l e v pe rf it e nt e am e em s is t m as e W indow s 9 8 e s upe riore s . Com a nov v rs o a e (3.0) ape nas o W indow s XP SP e s upe riore s a 2 s uport . Exis t m am e out ras m e lorias na h ut izao de s t F e w ork , m as no do il a ram m bit de s t art o e igo.

W in32 v . NET s
Com o h abit ual nos s is t m as ope rat os , um e iv grande e sf oro f it e o para m ant r e com pat idade nas apl ibil icae s , com o a e xe cuo de apl icae s W in32 e m W indow s V t Al as apl is a. gum icae s pode m no t irar v age m das nov APs incl ant as I udas nas nov as v rs e s da F e w ork , m as de v m cont e ram e inuar a t rabalar igual e nt s v rs e s ant riore s h m e e e do SO .P out l or ro ado, a M icros of garant t e cont inuar a adicionar APs ge ridas (m anage d I APs ) F e w ork , o q ue pode no I ram acont ce r na W in32. e Cabe aos program adore s e s cole re m e nt h re cont inuar a ut izar a AP ant il I iga, adapt as ar apl icae s para ut izar as nov APs ge ridas il as I (m anage d APs ) ut izando cdigo de I il adapt ao ou s im pls m e nt re e s cre v r a e e e apl icao ut izando il cdigo ge rido (m anage d code ) .Com o bv io e xis t m e grande s m e lorias h de produt idade , iv s im pl icidade e com pat idade e m f r a ibil aze pas s age m para cdigo ge rido (m anage d code ) . O ut das v age ns na ut izao de cdigo ra ant il ge rido o be ne f cio de pode r ut izar v il rias l inguage ns , q ue no cas o da F e w ork da ram M icros of act m e nt corre s ponde ao C+ + , t ual e C# , V .NET ASP B , .NET e J# . Com nov v rs e s as e da F e w ork s o im plm e nt ram e adas nov as al rae s nas l t e inguage ns , t com o out al ras f rram e nt . t bm pos s v l il out e as am e ut izar ras l inguage ns com a F e w ork , com o o ram I ronP t on (im plm e nt yh e ao do P t on) e yh Ruby .NET (im plm e nt e ao do Ruby ) .

.NET 3.0 e os nov os s ubs is t m as e

I nicial e nt o L m e ongh orn, agora ch am ado W indow s V t e ra um proj ct ainda m ais is a, e o am bicios o onde a nov F e w ork iria a ram s ubs t uir a act it ual AP bas e dos s is t m as I e ope rat os W indow s (W in32) e al rav o iv t e a am bie nt de de s e nv v e nt e m W indow s e olim o para s e m pre , ut izando cdigo ge rido il (m anage d code ) D e f o e s t ide ia f . act a oi abandonada al s gure durant e o de s e nv v e nt do s is t m a, m as no e nt o olim o e ant e s t nov F e w ork cont a a ram inua a s e r um a grande m udana.

P u um a nov AP? orq a I

P e da razo, s e m dv art ida a v l e ocidade a q ue as t cnol e ogias H ardw are e s t o a s e r de s e nv v olidas . O s com put adore s pe s s oais j com e am a ut izar dis cos rgidos com il capacidade s e norm e s , m onit s de al ore t are s ol uo, v l e ocidade s de proce s s am e nt o e norm e s , e t Cone ct idade t bm de c. iv am grande int re s s e , j am e nt e unt e com a ne ce s s idade de m e lor s e gurana. St h andards com o o RSS e Se rv ios W e b e s t a ganh ar o adopo e a re s ole r problm as de v e int grao. O ut razo o lm a W rit once , e ra e e run e v ry w h e re , bas t e ut izada para e ant il de s cre v r e s t pl af a, v t q ue a e a at orm is o principalf h a q ue a AP W in32 (m ais de 12 al I anos de e xis t ncia) acarre t a e ra a av ne ce s s idade de m ant r com pat idade e ibil e nt al rae s s e m af ct as apl re t e e ar icae s q ue a ut izav . il am

<5>

t m a de capa e

W indow s P s e nt ion re at F oundat ion


Com o f ado al ant riorm e nt , e e W indow s P s e nt ion F re at oundat ion (W P ) o nom e de F um conj o nov de APs na nov v rs o unt o I a e da Pat orm a .NET q ue pe rm it a q ualue r l af e q program ador dar us o ao nov m ode l o o grf ico q ue ut iza m e lor do q ue nunca o il h pode r grf do proce s s ador grf (G P . ico ico U) Q ualue r apl q icao cons t ruda ut izando il W P cons t ui t F it ipicam e nt de um nm e ro de e pginas Ext ns ibl Appl ion M ark up e e icat L anguage (XAM L j am e nt com o s e u ) unt e cdigo s uport . e O bv iam e nt e a f uncional idade q ue um a colco de e pginas inde pe nde nt s pode of re ce r e e l it im ada, e no s uf nt para grande icie e part das ne ce s s idade s . P e xe m pl o e or o, proce s s am e nt q ue ocorre ao nv l da o e pgina no s uport ne ce s s idade s com o a guardar o e s t ado da pgina e nq uando o ut izador nav ga, m uda de pgina, carre ga il e pginas , ge re v ariv is gl e obais , e t c. W P ou W indow s F ? F orm WP F cl aram e nt e para apl icae s com us o m ul dia e l out av t im ay anado. A no s e r q ue o s uport a e W indow s 98 se j a m e sm o ne ce s s rio, e nt o W P um o F e xce lnt s ubs t ut para o e e it o ant igo W inF s . orm

M uit os pe ns am q ue o W P de pe nde do F XAM L m as is t no v rdade . Al , t , o e is udo o q ue s e cons t ri ut izando XAM L pode s e r il f it e m q ualue r l e o q inguage m .NET At . porq ue o XAM Lno ape nas ut izado pe l il o W P, t bm por out F am ras t cnol e ogias (W indow s W ork fow F l oundat ion [W W F por ] e xe m pl . Apl o) icae s W P pode m corre r e m F duas dif re nt s f as : e e orm icae s de brow s e r XAM L El corre m Apl : as com o apl icae s al adas no brow s e r El oj . as no corre m no s is t m a do ut izador e no e il corre m ofl . D o pont de v t da fine o is a s e gurana, e l e xe cut as am na zona de s e gurana de I e rne t q ue l it o s e u nt , im a ace s s o a re curs os do s is t m a. V t q ue e is o corre m com um al nv l s e gurana, no t o e de ne ce s s it am de pe rm is s o do ut izador para il corre r . Apl icae s ins t adas : Ne s t f a, as al a orm apl icae s ou s o al adas num a j oj ane l a (com o q ualue r apl q icae s W indow s ) ou al adas na j oj ane l de nav gao W P. Es t a e F a j ane l cont a m um a banda de nav gao e na re gio do cl nt com bot s de ie e e nav gao. Es t banda s ubs t uv lpe l e a it e os program adore s q ue q ue iram cons t ruir a s ua prpria barra ut izando il a cl s e as Sy s t m .W indow s .Nav e igat ion.Nav igat ionW indo w s. P ara cada um de s t s dois t e ipos de apl icao e t rs de dis t ribuio, com a e s cola do m t h odo a ut izar e xis t im pact il , e o na s e gurana. Com o t , conv al m ao program ador conh e ce r concre t e nt am e cada t ipo.

Com o t , o m ode l da apl al o icao W P F s uport a colco de pginas XAM L e m a e um a nica apl icao do m odo t radicional . Em t rm os de apl e icae s W indow s F s , e m orm q ue um a pgina XAM L s e m e lant a um h e f e iro de f ul (W inF ) a apl ich orm rio orm , icao W indow s F s re une os f ul orm orm rios num nico e xe cut e l m e s m o m odo q ue um a v do apl icao W P re une as s uas pginas XAM L F .

XAM L
XAM L (pronuncia-s e " e l um dos zam " ) principais conce it as s ociados com o W P, os F pois f orne ce ao de s igne r e program ador um a f a concis a de re pre s e nt orm ar um a int rf e ace grf ica ou out ras h ie rarq uias de obj ct . e os XAM L um a l inguage m de cl iv de m arcao bas e ada e m XM L arat a .

<6 >

t m a de capa e

M uit os pe ns am q ue o W P de pe nde do F XAM L m as is t no v rdade . Al , t , o e is udo o q ue s e cons t ri ut izando XAM L pode s e r il f it e m q ualue r l e o q inguage m .NET At . porq ue o XAM Lno ape nas ut izado pe l il o W P, t bm por out F am ras t cnol e ogias (W indow s W ork fow F l oundat ion [W W F por ] e xe m pl . o) D as inm e ras v age ns e m ut izar e s t ant il as pginas XAM L q ue , bas icam e nt e s o f e iros XM L um a das principais v age ns ich , ant de s t proce s s o a s e parao e nt o e re de s ign do int rf e ace grf ico e o cdigo de f undo. Es t a s e parao aj uda cons ide ral e nt m e q uando a e q uipa ou pe s s oa q ue f o de s ign no a m e s m a q ue az a as s ociada com a program ao.P or e xe m pl a s e guint im age m m os t o, e ra a dif re na e e nt re C# / B V .NET/ XAM L na cons t ruo de um s im pls bot e o:

Exis t m m uit f rram e nt para e xe cuo e e as e as criao de Xam l Junt e nt com o V ual . am e is St udio 2005 v m o Xam lad q ue pe rm it P e int roduzir cdigo Xam l e v r o re s ul e t ado im e diat P o. ode t bm ape nas guardar o am cdigo num f e iro de e xt ns o .xam le ich e abrir no I e rne t Expl r (ne ce s s it do .NET nt ore a 3.0 ins t ado) al . Com o o W P int F roduz t os nov conce it , ant os os no prt ico de s e nv v r cdigo e de s ign ole s e m nov f rram e nt apropriadas . D e s de o as e as l anam e nt do V ualSt o is udio 2005 q ue e s t e j am e nt com a e xt ns o para .NET 3.0 unt e e of re ce um bom am bie nt para cons t e e ruir apl icae s W P, com F nov os t ipos de proj ct e e dit s v uais e s pe cf e os ore is icos para XAM L . Com a nov v rs o V ual St a e is udio O rcas (ainda e m de s e nv v e nt e s t s uport olim o) e e ainda s e r am brangido.

Re pare q ue por e xe m pl o cdigo Xam l o, no ne ce s s it do L t l de cl a igh Bue arado com o m e m bro de Col , ors re conh e cido aut at om icam e nt . Ut izando e s t e xe m pl e il e o dado, pode m os t bm am m os t rar a de cl arao de e v nt . e os Ao adicionar o at ribut Cl =buton_cl o ick t ick na t ag B t uton no cdigo XAM L s e ria o e q uiv e nt a adicionar um e v nt q ue al e e o, e xe cut aria o m t odo buton_cl s e m pre t ick q ue o ut izador cl s e no bot il icas o criado. Es t adio, im pl a icaria a ne ce s s idade de j ar o XAM L com unt um a l inguage m proce dim e nt .NET al .

Exis t m ainda out f rram e nt prof s ionais e ras e as is para criao de cont do W P, al as e F gum de s t t bm da M icros of. as am t M icros of Expre s s ion Be nd um a das t l principais f rram e nt ut izadas para e s t s e as il e f at , principal e nt porq ue part h a o orm os m e il m e s m o s is t m a de f e iros q ue os proj ct e ich e os do V ualSt is udio, f it acilando o t rabalo e m h s im ul o no cdigo e de s ign. t ne M icros of Expre s s ion D at t bm out t a am ra f rram e nt M icros of q ue pe rm it criao de e a t e im age ns bit ap m e v ct e oriais com e xport ao para XAM L .

<7>

t m a de capa e

Sile rl t v igh
Conh e cido por W P / (W indow s P s e nt ion FE re at F oundat Ev ry w h e re ) Sile rl t um a ion/ e , v igh v rs o grat a e re duzida da pl af a e uit at orm W P com pat e l F v com v rios brow s e rs e v rios s is t m as ope rat os , garant e iv indo as s im a com pat idade de apl ibil icae s W P para F B s e r e m grande part dos s is t m as row e e e xis t nt s . Act m e nt j s uport W indow s , e e ual e a L inux e M ac. Em com pe t io dire ct ao Fas h pl e r da a l ay Adobe , e s t pl e ug-in t o m undo m ul dia raz t im do W P ao brow s e r F .

W CF of re ce o m ode l orie nt e o ado a s e rv io, cons t rudo no t opo da pl af a .NET e at orm unif ica as dif re nt s capacidade s de e e s is t m as dis t e ribudos , incl uindo s e rv ios w e b e s t icos , t m e ns age ns , t rans ace s e re m ot num a nica AP. ing I W CF of re ce e um a nov a nam e s pace , ch am ada Sy s t m .Se rv M ode l q ue f e ice , orne ce as f rram e nt e as para al guns dos ce nrios ut izados e m apl il icae s dis t ribudas : e ns age ns , num nico s e nt ou am bos M ido am adas a proce dim e nt re m ot Ch os os l Cal back s s s e s Se gurana Se rans ace s T t e c W CF um a e norm e e im port e AP, o lit ant I e or s e int re s s ado j pode e ncont e rar al guns l ros q ue cobre m o as s unt (ne nh um e m iv o port ugus act m e nt ) ual e .

W indow s Com m unicat ion F oundat ion


W CF o nclo das apl e icae s com com unicae s orie nt adas a s e rv ios para a pl af a W indow s . Es t cons t at orm rudo no t opo dos s t andards de s e rv ios w e b e e s t de s e nh ado para as ne ce s s idade s do s e rv ice orie nt d arch it ct e e ure (SO A) e s ofw are as a t s e rv ice (SA AS) A f os of por de t de s t s . il ia rs e q ue o s ofw are de v s e r e s crit ut izando t e o il int rf s e ace q ue com unicam ut izando il prot ocol s t os andard. Se rv ios w e b f oram o nicio de s t h is t a ria, onde l gica dos ne gcios im plm e nt e ada e m puro t xt bas e ado e m XM L ut izando e o, , il um a l inguage m ch am ada W e b Se rv ice D e s cript L ion anguage (W SD L. P ) rogram adore s pode m e nt o ut izar um a m e ns age m num il f at ch am ado Sim pl O bj ct Acce s s orm o e e P ocol (SO AP q ue ut iza o XM L para rot ) il , com unicar com o s e rv io. No e nt o ant s e rv ios w e b e s t l it o im ados e no s uport am al as f gum uncional idade s com o s e gurana, re nt idade , abil e t rans ace s se m com pl icadas adie s no m nim o. W CF e s t de s e nh ado para pe rm it t ir udo is t o e m uit m ais ;of re ce um a AP q ue pe rm it o e I e im plm e nt s e rv e ar ios s e m pre ocupao com e s t s de t h e s , l rt e al ibe ando t m po t para e il m e lor conce nt h rao na l gica do ne gcio.

W indow s W ork fow F l oundat ion


W W F m ais um a das nov as t cnol e ogias incl uda no .NET 3.0 e pe rm it de f , e inir e xe cut e ge rir fuxos de t ar l rabalo. Ut izando h il um fuxo de t l rabalo pode m os de cl h arar um program a com o um a s rie de pas s os com pos t de act idade s . Es t act idade s os iv as iv pode m s e r f m e nt criadas por cdigo, acil e m arcao ou at s de out rav ras act idade s iv criadas . Exis t m inm e ras v age ns e m ut izar e s t s e ant il e fuxos de t l rabalo ao inv de e s cre v r cdigo. h s e Em prim e iro l ugar, para program adore s , fuxos l de t rabalo s o m ais f is de e nt nde r do h ce e q ue cdigo, porq ue fuxos de t l rabalo h of re ce m um a re pre s e nt e ao do proce s s o. Cons e q ue nt m e nt , f it o t e e acila rabalo q uando h o program ador pre cis a de m odif icar o fuxo l as s ociado a um proce s s o, q ue ge ral e nt no m e nada f cil para o program ador m odif icar no cdigo.

<8>

t m a de capa e
Se m e lant ao W P, o W W F t bm ut iza h e F am il m arcao XAM L para de cl arar a e s t ura rut do fuxo de t l rabalo. Cont h udo, e s t a de cl arao t bm pode s e r f it por am e a cdigo de um a das l inguage ns .NET . M ais inf ao s obre e s t t cnol orm a e ogia pode se r e ncont rada no s it e m s dn.m icros of.com / ork fow . t w l

O q ue o CardSpace ?
CardSpace o nom e de um a nov a t cnol e ogia do W indow s q ue s im plica e if m e lora a s e gurana de ace s s o a re curs os h e part h a de inf ao pe s s oal na il orm I e rne t CardSpace nt . aj uda a ge rir a inf ao pe s s oale a cont ar a q ue m orm rol e ssa inf ao orm dada, re duzindo o nm e ro de problm as e as s ociados ao m t odo t radicional de ut izador/ av il pal ra-ch av . e Em v z de f e orar os ut izadore s a il lm brar um a q uant e idade e norm e de ut izadore s e pal ras -ch av , il av e o CardSpace f orne ce aos ut izadore s um il m t odo m ais s e guro e q uiv e nt al e aos ut izadore s e il pal ras -ch av , av e ut izando il um conj o unt de cart s de ide nt icao v ual e if irt q ue pode m s e r ace didos por um int rf . e ace Es t s cart s pode m s e r ut izados para f r e e il aze l ogin ape nas com um cl ue e m w e bs it s iq e com com pat idade t cnol ibil e ogia.

W indow s C ardS pace


H oj , a m aior part dos w e bs it s com o o e e e H ot ail e B m , ay, Am azon, P pal ut izam ay il um a com binao de nom e e pal raav ch av para garant ace s s o a inf ae s e ir orm pe s s oais as s ociadas a um a cont Exis t m a. e dois problm as f e undam e nt ais com e s t e m t odo de s e gurana. P e iro, rim ut izadore s s o obrigados a criar e il re lm brar um a lt s e m pre a cre s ce r de e is a nom e s / av -ch av (t pal ras e ipicam e nt um a e com binao por cada w e bs it q ue v it . e is a) I t ge ral e nt ge ra prt so m e icas ins e guras , com o ut izar o m e s m o nom e e pal rail av ch av para v e rios w e bs it s , ou guardar e lt e m t xt ins e guro (de s e ncript is as e o ado) no com put ador ou pape l . Se gundo, nom e s de ut izador e pal ras il av ch av s o s us ce pt e is a um a am e aa e m e v cre s cim e nt de at ue s de f o aq raude de v rias f as , incl orm udo ph is h ing. At ue s aq P is h ing e nganam os ut izadore s pe dindo h il para f orne ce r as inf ae s orm de ide nt icao a w e bs it s f if e raudulnt . e os Lv e am a v age m da incapacidade do ant ut izador conf ar a v idade do w e bs it il irm al e q ue v it . is am

Concl o us
A M icros of e os s e us re ce nt s l t e anam e nt os v ram nov e nt s ubir a f q uia na ie am e as program ao e m am bie nt s e W indow s . D e pois de um a pe q ue na e s im pls v it e is a guiada pe l principais int as rodue s na pl af a .NET 3.0, cabe at orm agora ao lit program ador pre parar-s e e or/ para os nov de s af q ue com is t v ch e gar os ios o o .

<9 >

F bio P dros a e

a program ar

Es t s t at icas e m P P H 2 P e art
D e pois de um a prim e ira part na e dio ant rior de s t re v t o art e e a is a, igo s obre a criao de e s t s t at icas e m P Ps e r concl H udo ne s t e dio. a

T abe l Re s um o as
A prxim a f uno ir ge rar um a t abe l de 3 col a unas com os re s pe ct os dados re s um o iv pre e nch idos . No e nt o e xis t m ais 3 t ant e abe l re s um o no Script Com plt q ue pe rm it ge rar as e o e re s um os com inf ao dif re nt . orm e e

function getCountrys ( $beginDate , $endDate ) { include ( "connection.php" ); mysql_select_db ( $database , $connection ); $sql_countrys = "SELECT cod_pais, nome_pais, count(nome_pais) as total FROM estatisticas WHERE data >= ".changeDate($beginDate)."' AND data <= '".changeDate($endDate)."' GROUP BY cod_pais ORDER BY total DESC"; $countrys = mysql_query($sql_countrys,$connection) or die(mysql_error()); while($row_countrys = mysql_fetch_array ($countrys , MYSQL_ASSOC ) ) { $total_hits += $row_countrys[ 'total' ]; } $countrys = mysql_query($sql_countrys,$connection) or die(mysql_error());

$table = "<table width='390' border='0' cellspacing='0' cellpadding='0' align='center'> <tr bgcolor='#E4E4EC' class='big_titles'> <td colspan='4' align='center'> Ranking de Visitas por Pa&#237;s </td> </tr> <tr bgcolor='#E4E4EC' class='item' align='center' valign='middle'> <td width='75' height='45'> C&#243;digo Pa&#237;s </td> <td width='125'> Nome Pa&#237;s </td> <td width='100'> Total P&#225;ginas Visitadas </td>

<10>

a program ar

<td width='90'> % (Relev&#226;ncia) </td> </tr>";

while($row_countrys = mysql_fetch_array($countrys , MYSQL_ASSOC ) ) { $table .= "<tr bgcolor='#F8F8F8' class='general_text'> <td height='35' align='left'> ".$row_countrys[ 'cod_pais' ]." </td> <td align='left'> ".$row_countrys[ 'nome_pais' ]." </td> <td align='center'> ".$row_countrys[ 'total' ]." </td> <td align='center'> ".(round((($row_countrys['total'] / $total_hits)*100),2))." % </td> </tr>"; }

$table .= "<tr height='25' bgcolor='#E4E4EC' class='item'> <td> &nbsp; </td> <td align='right'> Total: </td> <td align='center'> ".$total_hits." </td> <td> &nbsp; </td> </tr> </table>";

return $table; } // FIM DE "getCountrys"

D e s t f a t rm ina-s e a Cl s e , e m bora o f e iro 's t is t .ph p' no e s t j f izado, j q ue a orm e as ich at ics e a inal v s e r ace dido dire ct e nt pe l Cl s e Ch art para a ge rao dos grf . H av r q ue ai am e a as s icos e pre parar o f e iro para e s s as ope rae s . ich Se guidam e nt Cl s e s e r int e as roduzido o s e guint cdigo: e

<11>

a program ar

if ( isset ( $_REQUEST[ 'graph' ] ) && $_REQUEST[ 'graph' ] == 1 ) { // include ( "charts.php" ); $statistics = new Statistics; SendChartData ( $statistics->getPageViewsGraph ( $_REQUEST[ 'begin_date' ] , $_REQUEST[ 'end_date' ] ) ); } elseif ( isset ( $_REQUEST[ 'graph' ] ) && $_REQUEST[ 'graph' ] == 2 ) { include ( "charts.php" ); $statistics = new Statistics; SendChartData ( $statistics->getVisitGraph ( $_REQUEST[ 'begin_date' ] , $_REQUEST[ 'end_date' ] ) ); } elseif ( isset ( $_REQUEST[ 'graph' ] ) && $_REQUEST[ 'graph' ] == 3 ) { include ( "charts.php" ); $statistics = new Statistics; SendChartData ( $statistics->getBrowserGraph ( $_REQUEST[ 'begin_date' ] , $_REQUEST[ 'end_date' ] ) ); } elseif ( isset ( $_REQUEST[ 'graph' ] ) && $_REQUEST[ 'graph' ] == 4 ) { include ( "charts.php" ); $statistics = new Statistics; SendChartData ( $statistics->getOsGraph ( $_REQUEST[ 'begin_date' ] , $_REQUEST[ 'end_date' ] ) ); } ?>

Q uando a cl s e s t is t .ph p e s t a s e r ace dida e xt rnam e nt e s pe ra s e r ace dida at s as at ics e e rav de um a v ariv l e graph na URL Es t v . a ariv l e pode t ar 4 v ore s , s e ndo e ls re s pe ct os aos om al e iv 4 grf icos q ue re t orna. P ara cada um dos grf icos criada um a ins t anciao da cl s e , e proce de -s e ch am ada as das f une s q ue re t ornam o array de dados corre s ponde nt . Com e s s e array, e ut izando a e il f uno Se ndCh art at q ue f part da Cl s e Ch art m os t D a() az e as s rado o grf na pgina. ico T rm ina as s im o f e iro s t is t .ph p. e ich at ics

F une s de dat as
No de corre r da Cl s e s t is t .ph p ce rt e nt not q ue s o ut izadas f as at ics am e ou il une s q ue ainda no e s t de s e nv v o olidas . Es s as f une s v t o rans f ar os f at de dat q ue ut izam os na orm orm os a il B e de D ados . as Com o na B e de D ados a dat e s t a s e r guardada no f at A A A A-M M -D D de f a a as a orm o orm t ornar m ais univ rs al Script e e s t e o , arm os m ais h abit uados ao f at P ugus D D -M M -A A A A orm o ort criam os um a f uno q ue inv rt a dat pre t ndida para o f at Am e ricano. e e a e orm o Cria-s e e nt o f e iro re s pons v l l v o ich e pe o rios t am e nt ne ce s s rios s dat ut izadas no rat os as il s cript O f e iro a criar t r o nom e de dat _f . ich e e unct .ph p. ions

<12>

a program ar
<?php function date_validation ( $date_to_check ) { $valid = true; if ( ( substr_count ( $date_to_check , "/" ) ) != 2 ) { $valid = false; }

P ara v rif e icar s e um a dat v ida ir proce de r a um a s rie de t s t s , o prim e iro ir v rif a l e e e icar s e a dat int a roduzida t m ape nas duas barras / Cas o t nh a m ais ou m e nos q ue 2 barras , e nt e . e o e s t os pe rant um a dat inv ida. am e a l
else { if((ereg("([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})",$date_to_check, $separated_date))){ $day = $separated_date[ 1 ]; // atribuicao do dia $month = $separated_date[ 2 ]; // atribuicao do mes $year = $separated_date[ 3 ]; // atribuicao do ano

No 2 t s t v rif e e e ica-s e s e a dat cont a m ape nas nm e ros com o f at de D D -M M -A A A A. orm o Cas o s e j um a condio v rdade ira, s e para a dat e m 3 t rm os , s e ndo e ls : o dia, o m s e o a e a e e ano.
if ( ( $year < 1900 ) || ( $year > 2200 ) ) { $valid = false; } elseif ( $month > 12 ) { $valid = false; }

Se o ano f inf rior a 19 00 ou s upe rior a 2200, ou o m s f s upe rior a 12 e s t pe rant um a r e r e dat I l a nv ida. Se guidam e nt v t s t os dias pos s v is de t r nos v e ai e ar e e rios m e s e s do ano.
else { switch ( $month ) { case 2: // Fevereiro if ( $day > 29 ) { $valid = false; }

Se o dia f s upe rior a 29 no m s de F v re iro e nt t r um a dat inv ida. r e e o e a l


elseif ( ( $day == 29 ) && ( $year % 4 != 0 ) ) { $valid = false; } break;

<13>

a program ar
Se t e r s ido int iv roduzido o dia 29 , m as o ano no f bis s e xt e nt a dat int r o o a roduzida inv ida. l
case case case case if 4: // Abril 6: // Junho 9: // Setembro 11: // Novembro ( $day > 30 ) { $valid = false;

} break;

P ara t odos os m e s e s q ue t m 30 dias (AbrilJunh o, Se t m bro, Nov m bro) s e o dia int , e e , roduzido f m aior q ue 30 e nt um a dat inv ida. r o a l

case case case case case case case if

1: // Janeiro 3: // Marco 5: // Maio 7: // Julho 8: // Agosto 10: // Outubro 12: // Dezembro ( $day > 31 ) { $valid = false;

} break; }

Se o dia f s upe rior a 31 nos re s t e s m e s e s (Jane iro, M aro, M aio, Julo, Agos t O ut r ant h o, ubro, D e ze m bro) t bm um a dat inv ida. am a l
} } } return $valid; }

Se e m q ualue r al dos t s t s s e v rif q t ura e e e icar q ue a dat inv ida o e s t a l ado da v ariv l v id e $ al pas s a a f s e indicando as s im q ue a dat inv ida. Se a dat pas s ar por t al a l a odos os t s t s com e e condio pos it a e nt o re t iv o orno da v ariv le r t . e s rue f unct ch ange D at ( $ ion e input at ) { D e $ pl = e xpl ( "" $ s it ode /, input at ) D e ; $ put at = " . $ pl[2] "". $ pl[1] "". $ pl[0] out D e " s it . / s it . / s it ; re t $ put at ; urn out D e } Com a f uno ch ange D at () proce de -s e e nt al rao do f at da dat t com o j e o t e orm o a al f re f rido ant riorm e nt . oi e e e

<14>

a program ar

function get_dates ( ) { $end_date=date("d/m/Y"); $begin_date=date("d/m/Y",strtotime("-1 week",strtotime(changeDate($end_date)))); $date_interval[ 'begin_date' ] = $begin_date; $date_interval[ 'end_date' ] = $end_date; return $date_interval; }

Na pgina principal s cript e xis t a pos s ibil do e idade do ut izador s e lccionar as dat q ue pre t nde . il e as e No e nt o, por de f it e s s as dat e s t pre e nch idas com um a s e m ana ant rior ao dia act . ant e o as o e ual Ne s t f a uno v rif e ica-s e q ual o dia act ual guarda-s e e s s a dat v rif e a, e ica-s e o q ual dia h o um a s e m ana at de s s a dat e re t rs a ornam -s e as duas .
function date_interval_form ( $begin_date , $end_date ) { $form = "<form action='".$_SERVER[PHP_SELF]."' method='post' target='_self' id='frmIntervaloDatas'> <div align='center'> <br /><table width='600' border='0' cellspacing='0' cellpadding='0'> <tr class='big_titles'> <td height='40' colspan='5' align='center'> Per&iacute;odo a que correspondem as estatisticas </td> </tr> <tr> <td width='100' height='40' align='center' class='item'> Data In&iacute;cio: </td> <td width='150'> <input name='begin_date' type='text' id='begin_date' maxlength='10' value='".$begin_date."' /> </td> <td width='100' class='messagem' align='center'> Formato:<br />(dd/mm/aaaa) </td> <td width='100' class='item' align='center'> Data Fim: </td> <td width='150'> <input name='end_date' type='text' id='end_date' maxlength='10' value='".$end_date."' /> </td> </tr><tr> <td height='40' colspan='5' align='center'> <input name='btnOK' type='submit' id='btnOK' value='Gerar Estatisticas'/> </td> </tr></table></div></form>"; return $form; } ?>

<15>

a program ar
De f a a t orm ornar m ais s im pls a int grao do s cript e m q ualue r pgina, cria-s e um a f e e q uno q ue pe rm it criar o f ul de s e lco do int rv o de dat . e orm rio e e al as T rm ina e nt a criao do f e iro dat _f e o ich e unct .ph p. ions

L igao B e de D ados as
P ara ace de r inf ao re l iv bas e de dados de f a rpida e e f nt cria-s e um orm at a orm icie e f e iro conne ct ich ion.ph p q ue s e r guardado na raiz do w e bs it . Es t f e iro t r t e e ich e odas os dados re lv e s l e ant igao da B e de D ados ut izada para o bom f as il uncionam e nt do s cript o .
<?php $hostname = $database = $username = $password = $connection "localhost"; "nome_da_bd"; "utilizador"; "password"; = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);

?>

P gina principal
Agora q ue e s t cons t rudo o s cript f t ape nas p-l a t , al a o rabalar h .
<?php include ( "statistics.php" ); include ( "date_functions.php" ); $statistics = new Statistics; $statistics -> saveStatistics ( ); ?>

Es t s e r o cdigo q ue de v r s e r col e e ocado e m t odas as pginas q ue q ue ira incl no s is t m a uir e de e s t s t at icas . Ape nas e s t cdigo s e r re s pons v lpe l re cola de dados do v it e , e e a h is ant guardando-os na bas e de dados para pos t rior t am e nt e rat o. Agora para re al a pgina de re s um o das e s t s t izar at icas :
<?php if ((isset($_POST['begin_date'])) && (isset($_POST['end_date']))){ if(date_validation($_POST['begin_date']) && date_validation($_POST['end_date'])){ if ( $_POST[ 'begin_date' ] > $_POST[ 'end_date' ] ) { $date_interval = get_dates ( ); $begin_date = $date_interval[ 'begin_date' ]; $end_date = $date_interval[ 'end_date' ]; } else { $begin_date = $_POST[ 'begin_date' ]; $end_date = $_POST[ 'end_date' ]; } } } else {

<16>

a program ar

$date_interval = get_dates ( ); $begin_date = $date_interval[ 'begin_date' ]; $end_date = $date_interval[ 'end_date' ]; } ?>

Col oca-s e e s t bl de cdigo no t e oco opo da pgina q ue q ue ira v r incl e uda no s is t m a, ant s do e e cdigo H TM L Es t conj o de cdigo s e r re s pons v lpor t s t s e o ut izador j int . e unt e e ar il roduziu dat , ou s e de v r s e r ut izado as dat por de f it as e il as e o. As dat q ue o ut izador e v nt m e nt t nh a int as il e ual e e roduzido s e ro v idadas e ape nas s e ro al ut izadas cas o s e v rif ue m v idas , de out f a s e ro ut izadas as dat por de f it il e iq l ra orm il as e o. D e s e guida s o de m ons t radas as ins t rue s para com plt a pgina com : e ar

M e nu de int roduo de dat as


<?php echo date_interval_form ( $begin_date , $end_date ); ?>

G rf de T al v it por dia ico ot de is as


<?php echo InsertChart ( "charts.swf", "charts_library", "statistics.php?graph=1&begin_date=".$begin_date."&end_date=".$end_date ,390 ,250 ,"F8F8F8", false); ?>

Re s um o de P ginas v it is adas
<?php echo $statistics -> getPageVisits ( $begin_date , $end_date ); ?>

Concl o us
T rm ina-s e de s t f a e s t t orial s o-a-pas s o q ue pe rm it de um a f a s im pls , conh e ce r e a orm e ut pas e orm e as inf ae s e s s e nciais de um v it e t com o, P , de onde v orm is ant ais as m e nt out . re ras Exis t m um a inf e inidade de s is t m as on-l q ue pe rm it m cont ar as v it a um w e bs it de e ine e rol is as e f a ef orm icaz, com o por e xe m pl o G oogl Analt , m as o de f it de s t s s is t m as , a o, e y ics e o e e q uant idade e xce s s iv de inf ao de s ne ce s s ria para um a v ual a orm is izao rpida. A e norm e v age m de s t s is t m a a pos s ibil ant e e idade de s e r t al e nt int grado num w e bs it , ot m e e e q ue s e t raduz num a m ais v ia, pois o ut izador pode r opt por part h ar a inf ao com al il ar il orm t odos os v it e s do s e u w e bs it ou m ant r e s t inf ao num a re a de ace s s o re s e rv is ant e e a orm ado. Q ue m q uis e r f r aze dow nl oad do s cript h tp:/w w w .nul s ign.onl .ptproj cte s t is t t / l de ine / e / at icas /. com plt e o pode ace de r a

<17>

B runo V az

a program ar

JNI Jav Nat e a iv I e rf nt ace


Jav Nat e I e rf a iv nt ace (JNI um ) f e w ork de program ao q ue ram pe rm it o cdigo e xe cut e ado pe l Jav a a V ual M ach ine irt ch am ar e s e r ch am ado por apl icae s nat as (apl iv icae s e s pe cf icas para um h ardw are e s is t m a e ope rat o) iv e por bibl e cas e s crit iot as e m out ras l inguage ns , t com o C, C+ + , ais D e l i e As s e m bl ph y.
Com o t odos os f e w ork s JNI ram t bm t m as s uas im pl am e icae s , o us o do JNI col oca e m ris co dois be ne f cios da pl af a Jav at orm a. P e iro as apl rim icae s Jav q ue a ut izam JNI f il icam de pe nde nt s do e am bie nt de e xe cuo, cont e rrio de Jav a puro q ue pode se r e xe cut ado e m m l os am bie nt s t ipl e com JNI a part nat a t m de s e r e iv e re com pil ada e m cada um dos am bie nt s de e xe cuo, pe rde ndo e a port idade do Jav abil a. Se gundo a l inguage m de program ao Jav a um a l inguage m t pe -s af e y e s e gura, ao cont rario das l inguage ns nat as iv com o C ou C+ + q ue no s o s e guras .

P e s t raze s o us o de JNI de v s e r f it or as e e o de f a cuidada e ape nas cas o no s e j orm a pos s v l im plm e nt e e ar ape nas com a l inguage m Jav a. D e pois de s t bre v int a e roduo v os am pas s ar e nt prt o ica, v os v r q uais os am e pas s os ne ce s s rios para a criao de um program a e m Jav com JNI a .

<18>

a program ar
D e pois de v rm os o pe rcurs o a pe rcorre r e v os com e ar com a im plm e nt am e ao da cl s e H e l orl av as l oW d.j a
public class HelloWorld{ private native void print(); public static void main(String args[]){ new HelloWorld().print(); } static{ System.loadLibrary("HelloWorld"); } }

Com o pode m os v r na l a 15 e inh de cl arado o h e ade r para o m t odo nat o iv q ue ire m os im plm e nt , v os us ar e s s a e ar am h e ade r para criar o f e iro de cdigo ich nat o (H e l orl , com o pode m os v r iv l oW d.c) e e m s e guida.
#include <jni.h> #include <stdio.h> #include "HelloWorld.h" JNIEXPORT void JNICALL Java_HelloWorld_print(JNIEnv *env, jobject obj){ printf("Hello World!\n"); return; }

Na l a 3 f de cl inh oi arado o m t odo nat o iv print e nas l as 9 e 10 dit ao Jav para inh o a carre gar o bibl e ca H e l orl iot l oW d, q ue v os criar de pois de re al am izar m ais al guns pas s os . Em s e guida v os com pil a cl s e am ar as criada : j ac H e l orl av av l oW d.j a. D e pois de obt rm os e o f e iro ich H e l orl as s v os us ar a f rram e nt l oW d.cl am e a j ah do Jav para criar o f e iros h e ade r av a ich (H e l orl ) com o com ando j ah -j l oW d.h , av ni H e l orl l oW d v os am obt r e o f e iro ich H e l orl com o s e guint cont do. l oW d.h e e
/* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class HelloWorld */ #ifndef _Included_HelloWorld #define _Included_HelloWorld #ifdef __cplusplus extern "C" { #endif /* * Class: HelloWorld * Method: print * Signature: ()V */ JNIEXPORT void JNICALL Java_HelloWorld_print (JNIEnv *, jobject); #ifdef __cplusplus } #endif #endif

Se obs e rv arm os v os v r q ue a l a 15 do am e inh f e iro H e l orl prat ich l oW d.h icam e nt igualao e cdigo na l a 5 do f e iro H e l orl inh ich l oW d.c. Agora q ue j dis pom os de t odos os f e iros ich ne ce s s rios H e l orl av l oW d.j a, H e l orl as s , l oW d.cl H e l orl l oW d.h e H e l orl l oW d.c v os am criar a nos s a bibl e ca nat a. V os v r com o o f r iot iv am e aze e m dif re nt s s is t m as ope rat os . e e e iv L inux com G CC
gcc -fPIC -I jdk/include -I jdk/include/linux -shared -o libHelloNative.so HelloNative.c

Sol com Sun Com pilr aris e cc -G -I j / ude -I j / ude / ol -o dk incl dk incl s aris l el ibH l oNat e .s o H e l iv l oNat e .c iv W indow s com M S C+ + Com pilr e
cl -I jdk\include -I jdk\include\win32 -LD HelloNative.c FeHelloNative.dll

O nde j o cam inh o para a pas t de dk a ins t ao do Jav al a.

<19 >

a program ar
V os agora v r com o re al a pas s age m am e izar de dados e nt Jav e C at s do JNI P re a rav . ara is s o criam os um pe q ue no program a e m q ue v os im prim ir um a pe rgunt us ar a f am a, uno s canfdo C para re cole r o input e re t h orn-l o para o Jav com o um O bj ct St a e o ring. P ara is s o v os com e ar cl pe l criao do am aro a f e iro P pt av ich rom .j a.
public class Prompt{ private native String getLine(String prompt); public static void main(String args[]){ Prompt p = new Prompt(); String input = p.getLine("Qual o seu nome ? "); System.out.println("Escreveu : " +input); } static{ System.loadLibrary("Prompt"); } }

At aq ui no h nada de nov o re l iv e nt ao H e l orl im plm e nt at am e l oW d e ado ant riorm e nt , as nov e e idade s e nt o agora na im plm e nt e ao do f e iro P pt ich rom .c q ue v cont r al as nov ai e gum idade ao nv l e de JNI e no t am e nt de St rat o rings e m JNI -C. V os e nt am o im plm e nt e ar o s e guint e cdigo.
#include <stdio.h> #include <jni.h> #include "Prompt.h" JNIEXPORT jstring JNICALL Java_Prompt_getLine(JNIEnv *env, jobject obj, jstring prompt){ char buf[128]; const jbyte *str; str = (*env)->GetStringUTFChars( env,prompt,NULL); if(str == NULL){ return NULL; } printf("%s",str); (*env)->ReleaseStringUTFChars( env,prompt,str); scanf("%s",buf); return (*env)->NewStringUTF(env,buf); }

Em s e guida v os ge rar o f e iro P pt am ich rom .h q ue ir cont r al s e m e lant a e s t : e go h e e


/* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class Prompt */ #ifndef _Included_Prompt #define _Included_Prompt #ifdef __cplusplus extern "C" { #endif /* * Class: Prompt * Method: getLine * Signature: (Ljava/lang/String;) * Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_Prompt_getLine(JNIEnv *, jobject, jstring); #ifdef __cplusplus } #endif #endif

Com o pode m os v r na l a 5 nos e inh argum e nt os do m t odo para al m das v ariv is de am bie nt q ue por de f it s o e e e o col ocadas , ne s t cas o f adicionada m ais e oi um a a v ariv lprom pt do t e ipo j t s ring q ue corre s ponde St ring dada com o argum e nt o da cl s e Jav Com o o C no t m o O bj ct as a. e e o St ring com o o Jav v os t r de pas s ar a a am e St ring para out f a t ra orm rabalv l m JNI h e e -C, para is s o criada um a v ariv lapont e ador do t ipo j t , q ue de um a f a bs ica o by e orm by t do JNI da m e s m a f a q ue o j t e orm s ring a St ring do JNI O pas s o f . inal para f r a aze conv rs o us ar a f e uno do JNI G e t ringUTF ar q ue re t St Ch orna um a cpia da St ring dada no s e gundo argum e nt (l a 10) o inh e as s im a v ariv l t v f e s r ai icar com o v or da al St ring dado com o argum e nt ao m t o odo ge t ine . L

<20>

a program ar
D e pois de s t proce dim e nt bas t ut izar a e o a il f uno print do C para im prim ir a St f ring e para t rm inar o proce s s am e nt da St e o ring v os us ar a f am uno Re las e St e ringUTF ars Ch (l a 17) q ue v l rt a m e m ria us ada inh ai ibe ar para guardar a St ring, at no q ue e s t e e m t odo ape nas de v s e r ut izado de pois de e il t re m t rm inado t e e odas as ope rae s na St ring. V os agora para f izar o nos s o program a am inal capt urar o input do ut izador at s da il rav f uno s canf(l a 18) e guardar o input s ob inh a f a de St orm ring no array de ch ar de f inido na l a 7, e m s e guida bas t conv rt r o inh a e e array de ch ar para um O bj ct St e o ring e re t orn-l para o Jav para is s o v os us ar o a, am af uno Ne w St ringUTFcom o pode m os v r na e l a 19 . Ao e xe cut e s t e xe m pl o q ue v inh ar e o ai acont ce r s e r um int rcm bio de dados e e bas t e s im pls , o Jav e nv um a St ant e a ia ring q ue im pre s s a pe l C, e m s e guida a f o uno s canf v capt ai urar o input do ut izador e ir il re t ornar e s s e input para o Jav q ue o ir a im prim ir com o m t odo printn() l . P s am os agora ao t am e nt de array s de as rat o Jav para C, para is s o v os im plm e nt o a am e ar s e guint cdigo. e
public class IntArray{ private native int sumArray(int [] arr); public static void main(String args []){ IntArray p = new IntArray(); int arr[] = new int[10]; for(int i = 0; i < 10; i++){ arr[i] = i; } int sum = p.sumArray(arr); System.out.println("sum = "+ sum); } static{ System.loadLibrary("IntArray"); } }

Com o pode m os vr e o cdigo im plm e nt e ado v ai criar um array com 10 pos ie s e v ai pre e nch e l com os as nm e ros de 0 a 9 , e m s e guida v e xe cut ai ar o m t odo nat o s um Array q ue v s om ar iv ai t odos os v ore s pre s e nt s no array e v al e ai re t ornar o t al s om a. ot da V os agora pas s ar im plm e nt am e ao do m t odo nat o e para is s o v os com e ar iv am com o s e m pre por ge rar o f e iro I Array.h . ich nt

/* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class IntArray */ #ifndef _Included_IntArray #define _Included_IntArray #ifdef __cplusplus extern "C" { #endif /* * Class: IntArray * Method: sumArray * Signature: ([I)I */ JNIEXPORT jint JNICALL Java_IntArray_sumArray(JNIEnv *, jobject, jintArray); #ifdef __cplusplus } #endif #endif

Ao v rm os os argum e nt e os do m t odo pode m os v rif e icar q ue e s t agora pre s e nt e um j Array q ue corre s ponde ao array de int int iros do Jav q ue dado com o e a argum e nt na ch am ada do m t o odo.

<21>

a program ar
Agora o cdigo nat o do nos s o m t iv odo. O JNI t m e nt e re out ras um a f uno bas t e im port e para o t am e nt de ant ant rat o array s , t a-s e da f rat uno G e t Array L ngt e h q ue com o o prprio nom e indica re t orna o t anh o de um array, e s t f am a uno pode s e r us ada da s e guint f a : e orm

#include <jni.h> #include <stdio.h> #include "IntArray.h" JNIEXPORT jint JNICALL Java_IntArray_sumArray(JNIEnv *env, jobject obj, jintArray arr){ jint jint jint carr *carr; i = 0; sum = 0; = (*env)->GetIntArrayElements( env,arr,NULL); if(carr == NULL){ return 0; } for(i = 0; i < 10; i++){ sum += carr[i]; } (*env)->ReleaseIntArrayElements( env,arr,carr,0); return sum; }

jsize len = (*env)->GetArrayLength( env, arr);

Concl o us
E com is t e nce rram os e s t art o e igo s obre Jav Nat e I e rf , com o pode m v r a iv nt ace e um f e w ork m uit pode ros o m as m as ram o q ue de v s e r ape nas us ado com o re curs o e f t de out re curs o por part do Jav al a ro e a ou no cas o de criao de nov as bibl e cas . Em t iot odo o cas o de v s e r e ut izado com bas t e cuidado v t t aril ant is o rat s e de program ao no s e gura.

Analando o cdigo pode m os v r q ue na is e l a 7 criado um apont inh ador do t ipo j int q ue v s e r us ado para guardar o array dado ai com o argum e nt ao m t o odo, para is s o us am os a f uno G e t <Tipo> Array Elm e nt e s e m q ue o <Tipo> s ubs t udo ne s t cas o it e por I , e s t nt a f uno v ai re t ornar um apont ador para o array dado com o argum e nt com o s e pode v r na l a 10. o e inh Nas l as 15 a 17 e xe cut inh ado um cicl f , o or() q ue f a s om a de t az odo o array e guarda o v or na v al ariv l s um pre v e iam e nt criada. e D e pois dis t o bas t a us ar a f uno Re las e <Tipo> Array Elm e nt para l rt o e e s ibe ar apont ador q ue cont m o array (l a 19 ) e inh por f na l a 21 v os re t im inh am ornar a s om a.

<22>

F bio Corre ia

a program ar

L UA L inguage m de P rogram ao
P av l e nt s e o lit ouv al rov e m e e or ir gum f ar e m L al UA, ir l ogo pe ns ar no pl t s at it q ue o as t ane a le ronaut Ne il a Arm s t rong t v o priv gio de pis ar e e il pe l prim e ira v z. No e nt o ne s t a e ant e art igo ire m os f ar de al al go be m dif re nt , m ais ao al e e cance de um a pe s s oa com um

Q ue m no s e lm bra do grande t ul de e t o j ogo Es cape f rom M onk e y I l s and na dcada de 9 0. P av l e nt o q ue o rov e m e lit no s abe q ue L f ut izada ne s s e e or UA oi il j ogo para o de s e nv v e nt olim o da program ao re s pons v l l cont o da e pe o rol pe rs onage m principal t , odos os cl os cul ne ce s s rios m ov e nt im ao das pe rs onage ns e ram re al izados at s de rav s cript e m L s UA. Com a e nt rada no m undo dos j ogos , a rapide z e port idade da l abil inguage m de s pe rt a at no de out ou e ras Ent idade s . O s Es t ados Unidos da Am rica f a prxim a oi conq uis t t ndo inm e ras Em pre s as do a, e P ue I arq ndus t rialde Sil icon V ly opt al e ado pe l L para de s e nv v r grande part do a UA ole e s e u s ofw are . t P t riorm e nt a af ao f os e e irm inalde L UA cons ol idada com a int raco dos e s is t m as do program a e s pacialda NASA e e com al guns dos proj ct int rnos .NET da e os e M icros of. t M ais inf ao e m : orm P gina of icial L da inguage m L UA h tp:/w w w .l t / ua.org T cgraf e h tp:/w w w .t cgraf t / e .puc-rio.br/

H is t ria e Caracat rs t e icas


A L f de s e nv v UA oi olida e m l ngua P ugue s a ort por um a e q uipa de program adore s do de part e nt am o T cgraf da Univ rs idade e e Cat ica do Rio de Jane iro, e m cdigo ope nl s ource . O obj ct o inicialoi a ge s t de um e iv f o proj ct indus t da P t e o rial e robras . G raas s ua port idade , f idade de abil acil apre ndizage m , rapide z e ef icincia, rapidam e nt cre s ce u para out e ras re as de program ao, e s t ando act m e nt a f r ual e aze part de apl e icae s inf t orm icas de grande port . e A L um a l UA inguage m de program ao proce duraldo gne ro de P cal C, P t on, as , yh P P Cobol e nt H , , re out . P ras or e s t f o e act q ualue r program ador t r um a curv de q e a apre ndizage m curt e rpida. No e nt o a a ant m aior v age m da L ant UA t v z a s ua ale e norm e port idade abil q ue le h pe rm it e int raco com q ualue r out l e q ra inguage m de program ao ou s is t m a ope rat o. e iv Com a s ua s int axe s im pls , q ualue r s cript e q de de s e nv v e nt rpido, e com um m e nor olim o t m po de proce s s am e nt t v z t nh a s ido e o, ale e e s t caract rs t a e ica q ue cat ou a grande iv Em pre s a de Jogos para P L C ucas Art . s

A e v uo de L ol UA
Com um cre s cim e nt bas t e ace nt o ant uado, cada v z m ais program adore s t e ram a e iv curios idade de lr e s e inf ar o porq u e orm de t o se ant ouv ir f ar e m al L UA. Rapidam e nt os grupos de de bat da e e com unidade f oram aum e nt ando e os proj ct e os nov os s urgiam a um a rapide z al ucinant . P t e or udo is t a e v uo de L o ol UA t ria de pas s ar por al q ue s e t e go ornou indis pe ns v l no nos s o dia-a-dia . a e I e rne t Capaz de de s e nv v r W e bs it s nt . ole e com plt at s da bibl e ca CG I L e e os rav iot / UA L uaSQ L . I agine o q ue s e r de s e nv v r um w e bs it m ole e com plt e nt e m CG I L e am e / UA (e q uiv e nt al e para a L UA, t com o o IS para o ASP al I ) com re curs o a L uaSQ L .

<23>

a program ar
Com o B -e nd com pil ack ado e m ANSI C ou L pr-com pil ua ado, s e um dia de cidir t rocar o s e rv idor de W indow s para Sol aris por e xe m pl no s e r ne ce s s rio de s e nv v r a o, ole pl af a t at orm oda de nov bas t re com pil o o, a ar cdigo C e conf igurar o nov W e bs e rv r o e . M ais inf ao e m : orm M dul L para o Apach e o ua h tp:/os s .digirat t / i.com .br/ od_l 1.0/ m ua/ Pat orm a de D e s e nv v e nt de l af olim o apl icae s W EB e m L h t UA t / w w .k e plrproj ct p:/w e e .org/ Al am e nt de proj ct e m L h t oj o e os UA t /uaf p:/l orge .ne t / Com unidade de ut izadore s L t il UAh t p:/l /ua-us e rs .org/

At ribuio m l a de v t ipl ariv is e

D e f a a m axim izar o cdigo, com a L orm UA pode m os f r at aze ribuie s m l as de t ipl v ariv is : e
n, i = Ol, Mundo , 2;

F icando de s t f a a v a orm ariv ln com a e st ring O l M undo e a v ariv li com o e v or 2. al T roca de v ore s e nt at al re ribuie s m l as t ipl pos s v lno e nt o a at e ant ribuio m l a t ipl com t roca de v ore s e nt v al re ariv is : e
a, b = b, a;

A program ao
Com o e s t art e igo no pre t nde de m ons t a e rar t al ot idade da l inguage m de program ao L UA, m as s im abordar as principais caract rs t e icas q ue t ornam e s t l a inguage m nica, re com e nda-s e a lit e ura do m anual m e h tp:/w w w .l t / ua.org . T al com o e xis t no JAV a Jav V ual e A a irt M ach ine , t bm L t m al pare cido, am UA e go q ue t m o nom e de Am bie nt G l e e obalnico, e s t am bie nt guarda t e e odas as v ariv is e gl obais e de f inie s de f une s . aut at om icam e nt e act ado iv q uando o int rpre t e ador inicial izado, e e s t act o iv durant t e oda a e xe cuo do s cript O . Am bie nt G l e obal nico m anipul ado ape nas por cdigo e s crit e m L ou por bibl e cas o UA iot e m C, q ue ut ize m f il une s da int rf e ace C-L ua.

F ndo com q ue a re ce ba o v or aze al ant riorm e nt arm aze nado por b e q ue b, e e re ce ba o v or ant riorm e nt arm aze nada al e e por a, s e m ne ce s s idade de v ariv is e t m porrias . I agine o q ue s e r os v los e m e h al m os de bubbls ort para orde nao gorit e de dados com e s t v age m . a ant

Concat nao e

P ara s e pode r concat nar v e ariv is com e cont dos s t e ring ut iza-s e o ope rador ..: il
a = Ol; b = , Mundo; z = a .. b;

Re s ul t ado e m z s e r O l M undo. ,

V ariv is L e ocais

Q uando s e e xe cut cicl (if l ..e nd, a os ..e s e re pe at ..unt , do..w h il, e t il e c..) e xis t e a pos s ibil idade de criarm os v ariv is l e ocais dis ponv is ape nas de nt de s s e cicl e ro o.
a = 2; if a > 0 then local a = ( a + 2 ) * 5; print( a ); end print( a );

V ariv is e
T com o acont ce e m P P ou P t on as al e H yh v ariv is gl e obais no pre cis am de s e r de cl aradas , bas t ut izar al do gne ro: a il go
a = 2.3;

im port e re f rir q ue as v ant e ariv is gl e obais no t m t ipos de dados de f inidos , ape nas o cont do de f o t e ine ipo de v ariv l e xis t e , indo se t t e ipos bs icos : nilnum be r s t , , ring, f unct ion, cf unct ion, us e rdat e t e . a abl

O re s ul t ado do prim e iro print 20 e do s e gundo print 2. Com e s t caract rs t a e ica de L UA, pode m os criar um a v ariv lq ue e ape nas dura e nq uant o cicl e xis t o o ir, pode ndo re al izar as ope rae s q ue q uis e rm os m e s m o q ue a v ariv lt nh a o e e nom e igual e q uando s airm os do cicl a , o v ariv l e original cont inua com o v or inicial al .

<24>

a program ar
M l o re t t ipl orno e m f une s
D a m e s m a f a q ue pos s v l re al orm e izar m l as at t ipl ribuie s e m v ariv is pode m os e t r m l os re t e t ipl ornos de um a f uno e al a iar m l as v t ipl ariv is : e
function num_anterior_e_seguinte ( x ) anterior = x -1; seguinte = x +1; return anterior , seguinte; end num_actual = 5; anterior, seguinte = num_anterior_e_seguinte( num_actual );

I t ao e am bie nt ns al e de s e nv v e nt olim o

de

Ne s t f e o lit ce rt e nt de v e s t a as e or am e e ar de s e j o de e xpe rim e nt a L Ent v os os ar UA. o am prim e iro proce de r ins t ao. P al ara pode r ins t ar o Am bie nt G e ral al e nico de L de v r UA e re al o dow nl do I e rpre t izar oad nt ador e m : h tp:/prdow nl t / oads .s ource f orge .ne tl /uach e ia/ l uach e ia5-w in32-5.0.1a5.e xe ? nl dow oad Exis t m v e rias ope s e v rs e s de dow nl e oad, no e nt o v o-nos ce nt ant am rar na ins t ao al para W indow s . Aps re al o dow nl izar oad do int rpre t e ador v os e nt am o ins t ar a L al UA m ant ndo o dire ct e rio s uge rido por de f it e o (c:\l uach e ia\) Aps al . guns cl ue s m ais , e iq e s t os apt a program ar e m L am os UA. P ara de s e nv v r cdigo e m L q ualue r e dit de ole UA q or t xt s e rv o props it at m e s m o o s im pls e o e o, e bl oco de not (Not pad) do W indow s , no as e e nt o s ugiro a ut izao do f os o I E ant il am D Ecl e e a ins t ao do m dul L ips al o uaEcl e ips e m : h tp:/l cl e .l orge .ne tbr/ t /uae ips uaf / inde x.h t l m .

Com e s t cdigo pode m os f r us o de um a e aze f uno q ue nos ir re t ornar os nm e ros q ue ant ce de e s e gue o int e roduzido na f uno. O re s ul t ado s e r: a v ariv l e rior ir cont r o e ant e nm e ro 4 e a v ariv ls e guint ir cont r o e e e nm e ro 6.

Re curs iv idade

Em l inguage ns proce durais a re curs iv idade por v ze s m uit ut izada, o s e u us o e m L e o il UA al s im pls e rpido o q ue t go e orna a s ua ut izao m uit grande : il o
function factorial( n ) if n == 0 then return 1; else return n * factorial( n -1 ) end end

O prim e iro s criptde L UA


P ara f rm os cum prir a t aze radio o nos s o prim e iro s cript s e r o f os o O l M undo! am apare ce r no nos s o e cr. P ara t abrim os o al Boco de not do W indow s e incl os o l as um s e guint cdigo: e
print( Ol Mundo! );

Com a ut izao de s t f il a uno pode -s e v rif e icar q ue a ut izao da re curs iv il idade al go s im pls de im plm e nt P e e ar. ara program adore s de Jav e s t caract rs t a a e ica no inov adora, m as e m grande part de l e inguage ns de program ao, a re curs iv idade de f une s al q ue ainda no e xis t , obrigando os go e program adore s a um e s f oro e xt no cdigo ra para re al o m e s m o obj ct o. izar e iv M ais inf ao e m : orm M anual L da inguage m L 5.0 (ENG ) UA h tp:/w w w .l t / ua.org/t re f an-5.0.pdf fp/ m M anual L da inguage m L 3.1 (P UA T) h tp:/w w w .l t / ua.org/t nocoe s -3.1.pdf fp/

E e s t concl udo o nos s o s cript Sim pls , no . e ? Ao cont rrio de v rias l inguage ns q ue nos obrigam a s e guir um a e s t ura, e m L rut UA t udo e m f uno da rapide z s e j e l de a a proce s s am e nt ou de s e nv v e nt o olim o. No f de guardar na pas t C:\l im a uach e ia\ e de ace de r pe l D O S (e s cre v ndo cm d no o e m e nu e xe cut ar) bas t a e s cre v r cd e \l uach e ia\ s e guido de l uach e ia5 ol undo.l E apare ce -nos no e cr O l am ua. M undo!. O ut izador agora ape nas t m de dar il e l argas s ua im aginao e com e ar a de s e nv v r e m L ole UA.

<25>

B runo V az

a program ar
Ne s t s e nt e ido, e s t com plm e nt do H TM L e e o t orna a t f do program ador bas t e are a ant m ais s im plicada, v t q ue e s t pode if is o e al rar proprie dade s de v t e rias pginas , al rando ape nas um re s pe ct o cam po na t e iv f h a de e s t os . ol il

CSS: Cas cading St l ye Sh e e t


I roduo nt
H oj e m dia, com a gl izao das e obal t cnol e ogias e s obre t udo da I e rne t poucos nt , s o aq ue ls q ue nunca cons ul e t aram um a pgina w e b. T odav a s ua grande m aioria ia, no im agina com o e l aborada, e m uit o m e nos q ue por de t rs daq ue l be l a a aparncia e xis t , principal e nt , um a e m e l inguage m de program ao ch am ada H TM L Cont . udo, e s s a l inguage m , um a v z e q ue f conce bida para us os dif re nt s dos oi e e act , pos s ui al as l it uais gum im ae s , e m uit a da be lza q ue e l proporciona m uit s e e a o de v ao s e u al e iado CSS.

Re gras e Sint axe


Um a f h a de e s t os no m ais do q ue um ol il conj o de re gras CSS. P s e u t unt or urno, um a re gra CSS um a de cl arao com um a s int axe prpria cons t uda, na s ua f a it orm m ais s im pls , por t e rs part s : um e s e lccionador (e lm e nt H TM L ide nt icado e e o if por um a t ag, cl s e , id, e t q uals e r as c, apl icada a re gra e m q ue s t o e xe m pl o: <body > , <h 1> , .m inh acl s e ) as , um a proprie dade (q ual idade q ual v ai s e r apl icada a re gra e xe m pl f , borde r o: ont , col no e lm e nt H TM L e um v or or e o ) al (caract rs t e ica adopt ada pe l proprie dade a e xe m pl lt t o: e ra ipo v rdana, l a dupl e inh a, f undo branco) com o s e e xe m plica de , if s e guida:
seleccionador { propriedade: valor; }

O q ue ?
O CSS , e nt o, a s igl ingls a de a e Cas cading St l Sh e e t q ue e m port ye , ugus s ignif ica f h a de e s t o e m cas cat e ol il a, nada m ais do q ue um m e canis m o para adicionar e s t os (core s , e s paam e nt , il os av anos , t ipos de lt back grounds , e t e ra, c) aos docum e nt w e b. P out os or ras pal ras , av pode m os dize r q ue e nq uant o H TM L t m o e com o f uno e s t urar rut os t xt , e os cabe alos , h bot s , e t abe l , as l s, ink im age ns , ou s e j o cont do da pgina, o a, e CSS e ncarre ga-s e de de f inir as core s , o pos icionam e nt o e s t o das l as , is t , o, il inh o t udo q ue diz re s pe it ao v ual o is da m e s m a. P s ua v z, e s t t f de e s t izao, or e a are a il inde pe nde nt m e nt da f a de de f e e orm inio (e xt rna, incorporada ou inl ) s e m pre e ine f it apart do H TM L poro e s t q ue e a e , a cont m t odas as re gras de e s t o para os il e lm e nt do docum e nt e os o.

Com o pode m os v rif , na s int e icar axe de um a re gra CSS prim e iro e s cre v -s e o e s e lccionador e , e pos t riorm e nt e e a proprie dade e o v or s e parados por dois al pont os e e nt re ch av t . Cont e as udo, s e pre t nde rm os e de f inir m ais de um a proprie dade para um de t rm inado e e lm e nt cos t e e h bit (e m bora s e j e o, um o a opcional ut izar-s e o pont e v ) il o rgul para a as s e parar e us ar l as dis t as para as , inh int e s cre v r de f a a criar um a m e lor e , orm h lgibil e idade . Ne s t s e nt e ido, de f a a e l orm ucidar o lit , e or ne s t m om e nt t e o orna-s e int re s s ant o e e e nt ndim e nt dos e xe m pl dados de e o os s e guida:
body { background: #999999; }

<26>

a program ar
No e xe m pl acim a, o s e lccionador t o e odo o docum e nt (body ) a proprie dade o o , f undo e o v or a cor cinza. al
h1 { font-size: 40px; font-style: italic; color:#00FF66; font-family: verdana; text-align: center; }

Re s ul t ado:

P argraf v rm e lo e al ado dire it o e h inh a Se guindo a l a das cl s e s , t inh as orna-s e igual e nt im port e re f rir q ue um a m e ant e m e sm a t ag pode s e r pe rs onal izada com proprie dade s dif re nt s . e e P or out ras pal ras , as pot ncial av e idade s do CSS pe rm it m q ue no m e s m o docum e nt e o t nh am os , por e xe m pl dois t e o, ipos de t ul t os principais (h 1) um com lt : e ras v rm e las e e h out com lt azuis . P ro e ras ara is s o, bas t q ue a e s pe cif ue m os at iq rs do pont da cl s e o as por ns criada a e t ue t H TM L q ue iq a pre t nde m os al rar V j os o s e guint e t . e am e e e xe m pl o:
h1.vermelho { color: #FF0000; }

Tit o v rm e lo e al ado ul e h inh dire it a

Ne s t e xe m pl m ais e l e o aborado, o e lm e nt e o o t ul (h 1) e as cinco proprie dade s com t o1 , os re s pe ct os v ore s , f m com q ue o iv al aze re s ul t ado s e j q ue t a odos os t ul principais t os (s e guindo as caract rs t e icas pe l orde m e m a q ue s o de cl aradas ) t nh am um t anh o de e am 40 pixe is , s e j am e m it ico, de cor v rde , com l e o t de lt v rdana e al ados ao ce nt ipo e ra e inh ro. O re s ul t ado pode v r-s e im e diat e nt : e am e

Cont udo, ne m s as t ags (e t ue t ) do H TM L iq as pode m s e r e s t izadas . Com a e v uo do il ol CSS1 para o CSS2, para al m de aum e nt m o nm e ro de proprie dade s are pos s v is de pe rs onal , pas s ou-s e t bm e izar am a pode r criar l re m e nt um a cl s e e apl iv e as icl a q ualue r e lm e nt H TM L P a q e o . ara t , bas t al a q ue s e om it o t a pe rs onal , e q ue s e a ag izar col ue um pont ant s do nom e da cl s e oq o e as q ue pre t nde m os criar P e xe m pl e . or o:
.minhaclasse { color: #FF0000; text-align: right; }

h1.azul { color: #0000CC; }

Na nos s a f h a de e s t os de f os , e nt ol il inim o, dois e s t os dif re nt s para o t ul principal il e e t o , pe l q ue o no e xe m pl abaixo s e o de m ons t rar com o s e riam apl icados na f h a H TM L ol :
<h1 class="vermelho"> Ttulo vermelho. </h1> <h1 class="azul"> Ttulo azul. </h1>

As s im , e s t criada a cl s e , pe l q ue pode r as o agora apl a a q ualue r e lm e nt do ic-l q e o docum e nt w e b: o


<h1 class=minhaclasse> Ttulo vermelho e alinhado direita. </h1> <p class=minhaclasse> Pargrafo vermelho e alinhado direita. </p>

<27>

a program ar
P f , re l iv e nt aos s e lccionadore s or im at am e e I , e s t s dif re m das cl s e s na m e dida e m D e e as q ue s om e nt pode m s e r apl e icados a um e lm e nt H TM L de nt do docum e nt P e o ro o. or out ras pal ras , os I s o cl s e s t bm av D as am por ns criadas m as q ue s e pode m ut izar il ape nas num e lm e nt A s int e o. axe de um s e lccionador I m uit s e m e lant a um a e D o h e cl s e , t ndo ape nas de nov o # , as e o conf e pode m os v ual abaixo: orm is izar
#meuID { propriedade: valor; }

F h a de e s t o incorporada: ol il

Um a f h a de e s t o diz-s e incorporada ol il q uando a e s t izao f it no prprio il e a docum e nt o H TM L As re gras , v idas . l s om e nt para aq ue l docum e nt e e o, s o de cl aradas no cabe alo (h e ad) com a h t ag <s t l> , com o s e pode obs e rv de ye ar s e guida:
<head> . <style type=text/css> <!-body { background: #999999; } p { font-size: 10px; color: #000000; } --> </style> .. </head>

Tipos de v incul ao de f h as ol de e s t o il
Adq uiridas as re gras e s int axe de s t a l inguage m de e s t izao, o lit de v , il e or e ne s t m om e nt indagar-s e com o q ue , e o, af , o CSS e o H TM L s e as s ociam , v t inal is o e s t s s e re m puros al e iados . Na v rdade , as e f h as de e s t o pode m s e r v ol il incul adas aos docum e nt de t f as dis t as : os rs orm int 1- Ext rna; e 2- I ncorporada; 3- I ine ; nl

F h a de e s t o inl : ol il ine

F h a de e s t o e xt rna: ol il e

T com o o prprio nom e indica, no m t al odo e xt rno a pe rs onal e izao f it num e a docum e nt dif re nt do docum e nt H TM L o e e o , t ndo e s s e arq uiv (pode ndo s e r e l e o aborado e m q ualue r e dit de t xt a e xt ns o .cs s . q or e o) e As s im , de pois do docum e nt CSS criado, o de f -s e na f h a H TM L um l ine ol ink q ue carre gar as pe rs onal izae s por ns el aboradas . O e xe m pl abaixo de m ons t a o ra s int axe a col ocar no docum e nt para q ue o se t orne pos s v l e carre gar a f h a de e s t os : ol il
<head> . <link href="folhadeestilo.css" rel="stylesheet" type="text/css" /> .. </head>

Um a f h a de e s t o dit inl , q uando a ol il a ine pe rs onal izao f it de nt da t e a ro ag do e lm e nt H TM L Cont e o . udo, e s t m t e odo bas t e l it ant im ado, pois pe rde a grande v age m do pode r do CSS, is t , com o s ant o apl e laq ue l prprio e lm e nt no icv e e o, se pode com um a nica ins t ruo m odif icar v rios e lm e nt e os de v rios docum e nt com o m nim o do e s f os oro. Cont udo, a s ua s int axe pode v r-s e a s e guir: e
<p style=color:#999999; font-size:20px;> Isto um pargrafo de cor cinza e com um tamanho de letra de 20 pixeis. </p>

Agora q ue j t m um as razov is noe s de e e pe rs onal izao CSS, o lit pode com e ar e or por criar pginas s im pls H TM Le pe rs onal e izl a s e u gos t as o.

<28>

Sandro P o int

P , t bm , aprof ode am undar m ais conh e cim e nt e m : os h tp:/w w w .m auj .com / t / or h tp:/w w w .codigof e .com / s / t / ont cs

os

s e us

s e gurana

Se gurana e m Sis t m as D is t e ribudos


J l vai o t m po e m q ue e ra ne ce s s rio e com prar um s upe rcom put ador para re al t f m ais com plxas . H oj e m izar are as e e dia t udo f m ais s e nt az ido q uando a m e s m a t f proce s s ada e m parall are a e o por vrios com put adore s , ou q uando os m e s m os pe rif ricos s o ace didos por vrios t rm inais e m s im ul o. D a o e t ne conce it de Sis t m a D is t o e ribudo.

O com part h am e nt il o de re curs os (im pre s s oras , dados , CD s , e t , a c.) t rans parncia, concorrncia (ace s s o das v rias m q uina a um a s ) t e rncia a , ol f h as (conf al iabil idade - s e f h ar um al com put ador num a re de de v rios m ais f cilre cupe rar da f h a do q ue s e f s e al os ape nas num com put ador) e s cal idade , abil (f m e nt acil e pode m se r adicionados com put adore s re de ) aum e nt , o da capacidade de com put ao, aum e nt da o s e gurana / e s t idade gl , f or abil obal act e conm ico ( m e lor h tr e v rios com put adore s m e dianos /racos q ue um f f e ) e capacidade de proce s s am e nt ort o. So e s t as principais v age ns . as ant

O q ue um Sis t m a e D is t ribudo e f D inio

P roce dim e nt Re m ot os os

Um s is t m a dis t e ribudo um conj o de unt com put adore s inde pe nde nt s , int rl e e igados at s de um a re de de com put rav adore s , q ue s e apre s e nt ao ut izador com o um a il s is t m a nico e cons is t nt . P e xe m pl e e e or o, um a t f q ualue r a e xe cut , s e f f it are a q ar or e a por um conj o de com put unt adore s a com put ao dis t ribuda por t odos e no ape nas por um , no s e ndo ne ce s s ria s obre carga de proce s s am e nt o. Um a t f q ualue r s e div v le m v are a q , is e rias s ubt f pode s e r re al are as izada e m parall e o.

V age ns /D e s v age ns ant ant

A grande v age m dos Sis t m as D is t ant e ribudos pode r, com com put adore s barat e de os baixo proce s s am e nt o, f ar orm um s upe rcom put ador q ue norm al e nt s airia m e m uit caro. o

O s proce dim e nt re m ot t e ram orige m os os iv nos anos 80, s urgindo da ne ce s s idade de h av r um a m e t e odol ogia de program ao dis t ribuda. A prim e ira f o RP (Re m ot oi C e Cal P l roce dure ) num a al , t ura e m q ue a l inguage m dom inant e ra o C. Com o a e l inguage m C e ra proce dim e nt e pe rm it al ia ch am ar um a f uno e m q ualue r part do q e cdigo, pe ns ou-s e e m de s e nv v r um a ole t cnica q ue f it s e o de s e nv v e nt acilas olim o de apl icae s para Sis t m as D is t e ribudos m ant ndo a ide ia de ch am ar f e une s de m q uinas e xt riore s da m e s m a m ane ira e com o s e f s e na prpria. L os ogicam e nt q ue e t a de h av r al q ue f s e t al e nt inh e go os ot m e t rans pare nt para o program ador e q ue e f sse ize a conv rs o e dos dados re ce bidos / nv e iados para o cl nt e para o ie e s e rv , is t , as s t rout s . P idor o ub ine ara m e lor h pe rce be r e s t proce dim e nt pode olar e o, h para o s e guint e s q ue m a: e

<30>

s e gurana
q ue m e canis m os de prot co e pode m se r ut izados e cl il aro, f r um a aze av iao al das pos s v is e am e aas e f as orm de at ue . Es t polica t v aq a t e e orige m nos s is t m as e m ilare s , e m q ue o principal it problm a e ra a div gao e ul de inf ao orm no aut orizada. P ara al m do cont o rol do ace s s o inf ao orm t bm am ne ce s s rio garant a s ua ir int gridade . ne ce s s rio t r e e e m cons ide rao as v rias am e aas a de f inir na polica de s e gurana. Ent t re e l de s t as acam -s e o ace s s o e div gao ul no aut orizado de inf ao, m odif orm icao ilgt a da inf ao, ope rae s no e im orm aut orizados s ob re curs os do s is t m a, e bl ue io de ace s s o lgt o inf ao e oq e im orm v andalm o. is Q uant aos pos s v is at ue s , de s t o e aq acam s e : a pe rs onif icao (q uando al gum s e f az pas s ar por ns ) e xe cuo de ope rae s , q ue cont ornam os m e canis m os de s e gurana, int roduo de cdigo m al o icios ou pre j udicial(e xe m pl v ) nos s is t m as o: rus e inf t orm icos , criao ou ut izao de il canais para com unicae s ilgt as (f e im uga de inf ao) e s cut de m e ns age ns e orm , a adul rao de m e ns age ns (m odif t e icao, ins e ro, re pe t io de m e ns age ns ant igas ) .

Com o s e pode obs e rv , os s t ar ubs e ncarre gam -s e daq uil a q ue s e ch am a o m ars h al l ing, ou s e j conv rt r os dados a, e e para o f at int rm dio para e nv do orm o e iar cl nt para o s e rv ie e idor ou do s e rv idor para o cl nt , e v t a conv rt os do f at ie e ol ar e -l orm o int rm dio e no l ocal de de s t ino (unm ars h al . l ing) Al guns e xe m pl os de im plm e nt e ae s de RP s o: Sun RP C C (para pl af as UNUX / L at orm inux) Jav RM I , a (RP C para Jav , D CO M (RP a) C para W indow s ) SO AP (ut izado por s e rv , il ios da w e b) e CO RB (padro RP inde pe nde nt A C e da pl af a) at orm .

P t de Se gurana olica

Um a re de de com put adore s , por nat za, ure tm e v rias am e aas . Num s is t m a e inf t orm ico o principal e ct o prot ge r obj iv e a inf ao, ou s e j orm a, cont ar a rol capacidade de ace de r al rar ou e xe cut , t e ar um f e iro, um re gis t um a bas e de ich o, dados , e t M as o principalobj ct o de c. e iv um s is t m a dis t e ribudo a part h a de il inf ao, l orm ogo is t conduz a um dilm a o e porq ue t bm ne ce s s rio f it o am acilar ace s s o m e s m a. A s ol uo pas s a por de f um a polica de s e gurana, na q ual inir t s e de v t r s e m pre e m cont v e e a rios f ore s com o o cas o do cus t v or da act o, al inf ao, o q ue s e pre t nde prot ge r orm e e ,

Tipos de P t olicas de Se gurana

D e st acam -s e t rs t ipos de policas de t s e gurana. A prim e ira a ch am ada de is ol e nt dos age nt s . Caract riza-s e por am o e e l it im ar a int raco do age nt s ua e e m q uina v ual irt (com o s e f s e um a s e s s o os num s is t m a e ope rat o) iv . I pl m ica a ide nt icao de cada age nt , is t , if e o ne ce s s it de aut nt a e icar-s e (por e xe m pl a o v idao al re corre ndo ao par l ogin/ s w ord) pas .

<31>

s e gurana
Cada age nt pos s ui um I , is t , um e D o ide nt icador q ue o re pre s e nt cada v z if a e q ue t nt ace de r a um re curs o do s is t m a. e ar e Es t polica t m v a t e rias v age ns : im pl ant ica a im pos s ibil idade de cont ornar os m e canis m os de cont o de s e gurana e rol de criar ou ut izar canais de com unicao il e ncobe rt ou ilgt os . T bm pos s ui os e im am div rs as de s v age ns , al as de l j e ant gum as m e ncionadas : inf t il rao de cdigo m al o, e s cut de t rm inais de m onit s icios a e ore (at s da radiao e lct agnt rav e rom ica dos t rm inais pos s v lv r o q ue um a pe s s oa e e e f no s e u pos t de t az o rabalo) e o at ue h , aq s pal ras pas s e s dos ut izadore s (e m q ue av il a m aioria s o bas e adas e m dicionrios : s rie s de t lv o, f m e s , prprio nom e , e e is il f l m at am ia, rcul do carro, ) a . O ut ro t ipo de polica o ch am ado t cont o de ace s s os e f rol oca-s e na l it im ao da capacidade de int raco. Exis t um a e e m at riz de dire it os de ace s s o q ue d aut orizao ou no a um age nt q uando e e s t pre t nde e f ct e e e uar um a ope rao. T bm e xis t m as ACL (Acce s s Cont am e s rol L t ) q ue e m port is s , ugus corre nt s ignif e ica lt de cont o de ace s s os . Es t is a rol as s o arm aze nadas j o de cada obj ct e unt e o cont am o ace s s o de age nt s a obj ct rol e e os do s is t m a. H t bm as capacidade s de e am cada age nt pe rant os obj ct e e e os do s is t m a, m as e s t e as capacidade s s o guardadas j o de cada age nt . D e pois unt e im port e re al a im port ant ar ncia de dois m e canis m os : aut nt e icao (v idao da al ide nt idade , um a f h a na aut nt al e icao inv ida a ut izao da m at de dire it de al il riz os ace s s o) e aut orizao (ope rao q ue v ida os dire it al os do age nt s obre o e obj ct . D e pois h um a e s pcie de e o) M onit de cont o de re f rncia, q ue or rol e v ida na al al t ura de e xe cuo de um a ope rao s e o age nt t m o dire it de a e e o e f ct . I t t bm obriga a q ue cada e uar s o am obj ct s e j alo de um a ide nt icao e o a v if nica e ine q uv oca. O s at ue s a e s t t aq e ipo de polica v am al rar o is ol e nt e nt t is t e am o re age nt s , al rar a m at de cont o de e t e riz rol re f rncia e e l inar o cont o e f ct e im rol e uado pe l M onit de Cont o e Re f rncia. o or rol e O out t ro ipo de polica o cont o do t rol nv l s e gurana da inf ao e part e de orm e do princpio q ue s s e de v dar ao age nt e e a inf ao q ue e l re al e nt pre cis a. A orm e m e inf ao cl s if orm as icada de acordo com o s e u nv l de conf ncial e ide idade . O cont o de rol ace s s o dos age nt s e e f ct e uado com bas e e m duas re gras : no pode m lr inf ao cl s if e orm as icada e m nv is s upe riore s ao s e u, e no pode e e s cre v r inf ao cl s if e orm as icada e m nv is e inf riore s ao s e u. e

Cript ograf ia

D e f a de e v ar a e s cut e f s if orm it a al icao de m e ns age ns s urge a cif de m e ns age ns ra Cript ograf O u s e j e s t ia. a, abe lcido um e canal s e guro onde pas s am os dados cif rados . Es t t a cnica t m um s e no, pois e no e v a a re ut izao de m e ns age ns . it il Conv m re f rir q ue ape s ar das m e ns age ns e e s t m cif are radas , e xis t um a pe q ue na e probabil idade de um at acant de duzir a e ch av , e m bora e s t s e j m uit pe q ue na. O e a a o t anh o da ch av de cif f cral pois am e ra ul , um a ch av pe q ue na m ais f m e nt e acil e de s cobe rt (at s de f a rav ora brut por a e xe m pl q ue um a ch av m aior o) e .

Exis t m e dois t ipos de cript ograf ia: Cript ograf ia Sim t rica e Cript ograf ia As s im t rica. O s al m os de cif s im t gorit ra rica s o norm al e nt m ais rpidos q ue os de m e cif as s im t ra rica, a ch av s de v s e r e e conh e cida pe l int rv nie nt s lgt os e os e e e e im us ada t o nas ope rae s de cif ant ra com o nas de de cif Um e xe m pl dis s o o ra. o Al m o D ES (D at Encript St gorit a ion andard) . Na cript ograf as s im t ia rica us am -s e pare s de ch av s re l e acionadas : um a ch av e pbl ica (do conh e cim e nt de t o odos ) e out priv ra ada (do conh e cim e nt de um a o e nt idade ) D e s t . a f a e l ina-s e orm im o problm a da part h a de ch av s . e il e

<32>

s e gurana

P ara obt r a priv e acidade dos dados cif ras e com a pbl ica e de cif e com a ra-s priv ada, para a aut nt e icidade dos dados cif e com a priv ra-s ada e de cif e com a ra-s pbl ica. Um e xe m pl de um al m o q ue o gorit ut iza a cript il ograf as s im t ia rica o cas o do D ifie -H e l an, m uit ut izado e m cif de f m o il ra com unicae s e m re de s .

Concl o us
Com e s t art e igo pre t nde u-s e q ue o lit e e or f s e a s abe r por al o q ue um icas , t o, Sis t m a D is t e ribudo e q uais as s uas caract rs t e icas , nom e adam e nt : e as am e aas , v age ns , ant de s v age ns , ant al as t gum cnicas us adas na com unicao de proce s s os , e nt out . Conv re ras m re f rir e q ue ne nh um t m a f aprof e oi undado pe l o q ue s e q uis e r s abe r m ais s obre al gum as s unt t r q ue pe s q uis ar na I e rne t s obre o e nt o m e s m o. P ara f it a t f a s e guir acilar are a, e st o v rias h ipe rl igae s para s it s q ue e t am do as s unt rat o.

Aut nt e icao, Aut orizao e As s inat digit ura al


P ara a aut orizao de ope rae s dos age nt s e m Sis t m as D is t e e ribudos , us ado o m e canis m o m ais v gar e m ul s is t m as e m ul t iprogram ados , com o o cas o do UNI / L X inux. O u s e j a, cada grupo e cada ut izador il tm e um cdigo q ue at ribudo q uando o ut izador il s e aut nt e ica. As s ociados a e s s e cdigo e xis t m os dire it pos it os ou e os iv ne gat os s cat gorias de dono, grupo e iv e re s t e s ut izadore s . ant il Um f or de e xt m a im port act re ncia s abe r a aut oria de de t rm inada inf ao. A e orm is t d-s e o nom e de as s inat o ura digit e al proce s s a-s e de f a a cal ar um a orm cul de t rm inada H as h para a inf ao X e orm as s ociada ao Age nt A. Com is t pre t nde e o e s e garant q ue o re m e t nt da inf ao ir e e orm f XP (aut nt oi TO e icidade ) e q ue o cont do e no f adul rado (garant a int gridade ) oi t e ir e .

Re f rncias e
h h h h h

<33>

P dro T ixe ira e e

tp:/pt ik ipe dia.org/ ik i/ t / .w w Com put C3% A7% C3% A3o_dis t a% ribu% C3% AD da tp:/pt ik ipe dia.org/ ik i/ t / .w w Cript ograf ia tp:/w w w .inf e s t r t / ow e .com / cript ograf ia.ph p tp:/pt ik ipe dia.org/ ik i/ am ada_de _proce dim e nt t / .w w Ch o_re m ot o tp:/w w w .f s .org/ cs / c1831.h t l t / aq rf rf m

e lct e rnica

M icrocont adore s : rol P ocol SP rot os I


Es t art e igo f criado com o int o de oi uit apre s e nt o prot ar ocol SP apl o I icado com unicao e nt m icrocont adore s re rol e pe rif ricos . Com o int rf e ace s e r us ada um a apl icao f it e m V ual e a is B ic. as

O prot ocol SP um prot o I ocol s rie q ue o pe rm it t e rans m is s o s ncrona bidire ccional de 8 bit . s O SP ne ce s s it q ue e xis t um M as t r q ue I a a e cont e rol o re l gio. V t is o o SP s e r I bidire ccional o M as t r pode e nv , e iar ou re ce be r inf ao dos s l e s , m as e s t orm av e q ue ir dit q ue m e nv ou q ue m re ce be . ar ia P ara de t rm inar o e de s t rio inat da inf ao ne ce s s rio um a l orm igao dire ct a cada um dos Sl e s , q ue s e r a a av l igao q ue cone ct os pinos CS (Ch ip a Se lct. As s im q uando a inf ao t e r e ) orm iv com o de s t rio o Sl e 1, o pino CS1 t r inat av e q ue s e r act ado para q ue e s t ace it a iv e e inf ao. orm

P ocol SP rot os I

Vt is o os re curs os dis ponv is e num m icrocont ador s e re m l it rol im ados , por v ze s e h ne ce s s idade de os e xpandir As s im . e xis t m circuit int grados com as m ais e os e v ariadas f une s : m e m rias EEP M , s h if RO t re gis t rs , conv rs ore s A/ e e D P ara s e pode r com unicar com e s t s e pe rif ricos ne ce s s rio um prot ocol de o com unicao para q ue am bas as part s e s e e nt ndam . e D os m uit os prot ocol os dis ponv is , um q ue f e oi m as s iv e nt am e adopt ado para com unicao e nt re m icrocont adore s e pe rif rol ricos e xt rnos f e oi o SP (Se rial e riph e ralnt rf ) I P I e ace .

M icrocont adore s rol


P ara de m ons t rar a apl icao de s t e prot ocol s e r us ado um M icrocont ador o rol da M icroch ip (PC18F I 2580) e um a D AC (M CP 21) Um a D AC um dis pos it o q ue 49 . iv conv rt um s inaldigit para anal e e al gico (D igit -t alo-Anal og Conv rs ion) e , a D AC M CP 21 us a o prot 49 ocol SP para re ce be r o I a inf ao digit (8 bit ) prov nie nt do orm al s e e m icrocont ador e conv rt a inf ao rol e e orm re ce bida num a t ns o anal e gica. A D AC us ada re ce be a inf ao pe l orm o pino SD I e e m bora o SP pe rm it q ue a I a com unicao s e j bidire ccional no a , pos s v le nv inf ao da D AC para o e iar orm m icrocont ador rol . O com ando de e s crit da D AC cons is t e m a e 16 bit . Ne s t s 16 bit e s t s e s ar inf ao orm re l iv ao m odo de ope rao e aos at a dados . O s prim e iros 4 bit dize m re s pe it s o ao m odo de ope rao, os 12 bit re s t e s s ant corre s ponde m ao v or da t ns o a al e conv rt r e e .

<34>

e lct e rnica

A f ul de rm a s e guint e

conv rs o da D AC a e

void main(void) { unsigned char dac_val1,dac_val2, dac_val3; unsigned int node1,node3,node2,aux;

A t ns o de e As s im para ne ce s s rio s ignif iv icat os ou s e j a:

re f rncia us ada f de 4.09 6V e oi . um a t ns o de 3,265V e q ue os 12 bit s m e nos re pre s e nt m o nm e ro 3265, e

//Enable interrupts INTCONbits.GIE = 1; INTCONbits.PEIE = 1; // Enable interrupt priority feature INTCONbits.IPEN = 1; // GIEH must be set in order to get access to low priority interrupts INTCONbits.GIEH = 1; INTCONbits.GIEL = 1;

adcInit(); TRISAbits.TRISA4=0; //PORTA4->output

As f une s q ue pe rm it m q ue os re gis t e os se j am conf igurados s o dis ponibil izadas pe l M icroch ip, as s im no s e r obj ct o a e iv de s t art e igo e xpl com o as cons t , m as icar ruir s im com o as us ar t com o acont ce u nos , al e art igos re l acionados com m icrocont adore s das e die s ant riore s . rol e
#include #include #include #include #include <p18cxxx.h> <math.h> "usart_funcs.h" "function.h" <spi.h>

Act a-s e de s e guida a USART q ue s e r iv us ada para com unicar com o P C e f m e nt o m dul SP. inal e o I

//SYNC = 0, BRGH = 1, BRG16 = 0 //fosc=40Mhz,baudrate=115200-->spbrgh=21 OpenUSART(USART_TX_INT_OFF & USART_RX_INT_OFF & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_HIGH, 21); OpenSPI(SPI_FOSC_16, MODE_00, SMPMID);

P ara com e ar ne ce s s rio im port os ar prot ipos das f t une s SP I Ant s de com e ar a us ar os re curs os do e m icrocont ador ne ce s s rio act ar t rol iv odos os m dul q ue s e ro us ados . As s im os act am -s e as int rrupe s , as AD Cs e iv e de f -s e o t ine ipo de s ada da port us ada a com o Ch ip Se lct e

O program a ir aguarda por um a orde m v inda do P v USART Q uando f re ce bido C, ia . or al pe l USART o bit RCI do re gis t PR1bit go a F o I s f icar a 1.

<35>

e lct e rnica
As s im :
LATAbits.LATA4=1; while(1) { if(PIR1bits.RCIF) { switch (Re()) { case 's':

Se na v z de s e t r re ce bido inicial e nt o e e m e caract r s , s e s e t e r re ce bido o carct r e iv e r e nt o s ignif ica q ue s e pre t nde r lr o e e v or da AD C0, q ue al f az part e do m icrocont ador rol .
case 'r': Wr(adc_read(0)); break;

Cas o a inf ao re ce bida s e j orm a o carct r s , e nt e o os prxim os by t s a e s e re m re ce bidos dize m re s pe it ao v or o al q ue s e pre t nde conv rt r e e e .
dac_val1=Re(); dac_val2=Re(); dac_val3=Re(); dac_val1=convert_to_hex( dac_val1); dac_val2=convert_to_hex( dac_val2); dac_val3=convert_to_hex( dac_val3); aux=0; aux=dac_val2; aux=aux<<4; aux=aux|dac_val3;

Se o carct r re ce bido no f ne m o s e or ne m o r no s e e xe cut nada. a


default: Putsr("\r parametro incorrecto\r"); break; } } } }

As s im s e t rm ina o program a para o e m icrocont ador rol .

I e rf nt ace e m V ual as ic is B
Daqui em diante assume-se que o leitor est minimamente familiarizado com o programa Visual Basic P ara a int rf e ace pode -s e com e ar por criar o l outda m e s m a: ay

T ndo e m cont q ue os prim e iros 4 bit dos e a s 16 q ue s e ro e nv iados para a D AC dize m re s pe it ao m odo de f o uncionam e nt e nt o, o f e um a m s cara com o by t m ais az-s e s ignif iv para pode r concat nar com os icat o e 4 bit de conf s igurao.
LATAbits.LATA4 = 0; WriteSPI(0b01110000 | dac_val1);

O s out ros 2 by t s re ce bidos s e ro e concat nados e nt e re s i para q ue s e pos s am e nv para a D AC. D e not q ue iar ar ant s de e nv q ualue r inf ao a e iar q orm port A4 f col a oi ocada a ze ro para act ar o CS da D AC. Em bora pos s a s e r iv cont radit rio, o CS da D AC act ado iv q uando e s t e s t e r com o v or l e iv al gico 0
WriteSPI(aux); LATAbits.LATA4 = 1; break;

<36>

e lct e rnica
Um dos com pone nt s m ais im port e s e ant de s t int rf a e ace o com pone nt M SCom m . e aq ui q ue s e de f com o ir s e r us ada a ine port s rie do P T bm s e adicionam a C. am duas caixas de t xt e dois bot s . e o e As s im q ue o program a f or e xe cut ado conf igura-s e a port a s rie 1. Es t s e parm e t t ros m q ue e s t de acordo com ar os dados da inicial izao da USART do m icrocont ador rol .
Private Sub Form_Load() ' chose correct settings for your device Settings = "115200,N,8,1" MSComm1.Settings = Settings '''''''''''''''''''''''''''''' ' Open COM1 MSComm1.CommPort = 1 MSComm1.OutBufferSize = 4 MSComm1.PortOpen = True ' Make sure DTR line is low to prevent Stamp reset MSComm1.DTREnable = False MSComm1.RThreshold = 1 MSComm1.InputLen = 1 End Sub If MSComm1.CommEvent = comEvReceive Then sData = MSComm1.Input Private Sub send_Click() MSComm1.Output = "s" MSComm1.Output = Hex(tensao_dac.Text) End Sub

P ara s e re ce be r a t ns o da AD C do e m icrocont ador us a-s e o bot rol o q ue t m a e ins crio T ns o AD C [m V . A e s t bot f e ] e o oi dado o nom e Re q ue s t _butom . As s im q uando t e s t f pre s s ionado s e r e nv e or iado o carct r r e
Private Sub request_Click() MSComm1.Output = "r" End Sub

As s im q ue o m icrocont ador re ce be r o rol carct r r, v act ar a AD C aps a e ai iv conv rs o e nv o v or para a s ua USART e ia al . As s im q ue o m icrocont ador t e r e nv rol iv iado o v or da conv rs o pe l USART a port s rie al e a , a do P re ce be r e s s e v or C al
Private Sub MSComm1_OnComm() Dim sData As String Dim Lido As Integer ' If Rx Event then get data ' and process

pos s v lornar e s t int rf e t a e ace m ais robus t a, para q ue pe rant s it e uae s no pre v t is as e s t re aj de um a f a e s pe rada. a a orm A caixa de t xt re f re nt t ns o da D AC e o e e e t m o nom e t ns o_dac e o bot t m o e e o e nom e s e nd_butom . t As s im q uando o bot o s e nd_butom f t or pre s s ionado s e r e nv iado o v or da caixa al de t xt para o m icrocont ador e o rol . P ara no com pl icar a com pre e ns o do cdigo e para us ar os re curs os dis ponv is e no V opt B ou-s e por e nv o v or da t ns o iar al e num conj o de 3 by t s , ant ce didos do unt e e carct r s . e

tensao_adc.Text = Round( Asc(sData) * 19, 4) End If End Sub

<37>

Ricardo Roch a

A AD C f z um a conv rs o de 8 bit . O re s ul e e s t ado de s s a conv rs o e s t e ar com pre e ndido e nt 0 re e 255, o q ue im pl q ue e s t v or t nh a q ue ica e al e s e r adapt ado nat za da conv rs o. D a s e ure e m ul icar o v or re ce bido por 19 .4. P t ipl al ara t rm inar a int rf e e ace conv nie nt q ue s e e e de s act e a port s rie para q ue no e xis t iv a am confit f uros P los ut ara t s t t o o e nv de e ar ant io inf ao para a D AC pode -s e l orm igar a AD C do m icrocont ador s ada da D AC. A no rol coincidncia da t ns o l da AD C com a e ida t ns o de s ada da D AC e s t re l e acionada com o f o da AD C s e r de 8 bit . act s

t orial ut

P rogram ao e m C 2 P e art
D e pois de um a prim e ira part na e e dio ant rior e s t e , e art igo concl udo ne s t e dio. a
}

printf(contador chegou a %d\n, contador); entrar = 0; // obriga ciclo a //terminar da prxima vez que testar } } return 0;

6 Expre s s e s Condicionais e Cicl os

Cont inuando na l gica. A l gica na program ao de s e m pe nh a um pape l uit m o im port e ant porq ue nos pe rm it e t ar om de cis e s m e diant de ce rt condie s ou e as e xpre s s e s condicionais . Ne s t s e xt s e co a a v os v r cicl . Um cicl al q ue t m am e os o go e um a condio de parage m e s e e l f a or v rdade ira [t e r um v or dif re nt de ze ro] e iv al e e , o corpo do cicl e xe cut o ado, cas o cont rrio no o . v t de s t de f ol a a inio, e xis t m t cicl e m C: w h il () f ;;) e e rs os e , or( do w h il () V j os o prim e iro. e . e am O w h il () m uit f l de f e , o ie inio apre s e nt ada acim a. O u s e j a, t m um a e condio e um corpo. Se a s ua condio f v rdade ira, o s e u corpo e xe cut or e ado, cas o s e j f s o, o corpo no e xe cut a al ado. M as pode m os pe ns ar: is t igual um if () o a . O ra igualne s t de f a inio, m as t m um a e part aridade icul q ue o t orna m uit o int re s s ant e t . Um cicl e o prprio e e il o, nom e o indica, no pra de e xe cut o s e u ar corpo e nq uant a condio e xpre s s a na o condio do w h il () f f s a, ou s e j t e , or al a, odo o corpo do w h il () e xe cut e ado e nq uant o e l f v rdade ira. V j os um e xe m pl a or e e am o:
#include <stdio.h> int main() { int entrar = 1; int contador = 1; while (entrar == 1) // o mesmo que // while(entrar), visto que entrar=1 { if(contador < 6) { printf(contador vai em: %d\n,contador); contador++; } else {

O u s e j t m os um a v a, e ariv lq ue condiciona e o cicl e nt o, rar, q ue inicial izada com o v or al 1 [v rdade iro] de m odo a q ue pos s a e nt e , rar no corpo do cicl w h il () e a v o e ariv l e cont ador com o v or 1, q ue v s e ndo al ai incre m e nt ada, de cada v z q ue e nt no e ra corpo do w h il () e q ue f m e nor do q ue 6 e or [dit ado pe l if() ao m e s m o t m po. Q uando o o ] e cont ador f 5, e l e nt or e rar no cicl um a v z o e m ais , s e r m e nor do q ue 6 um a l a v z e t im e ao re e nt rar no cicl pe l l a v z, a o a t im e e xpre s s o condicionalcont ador < 6 [6 < 6] , dar f s o e port o s e gue para o e l , q ue al ant se dir o v or guardado no cont al ador e por a v ariv lq ue condiciona a e nt e rada no cicl o w h il () a ze ro, para q ue da prxim a v z q ue e , e a s ua condio s e j t s t a e ada, d f s o e o al cicl t rm ine . o e O s e gundo cicl q ue v os v r o f ( ;;) o am e or . T m e s t f a s int ica e s t e a orm ct ranh a m as v s e r ai f cilpe rce be r. Com o s e v o f ( ;;) e s t , or , div idido e m t part s . A prim e ira de dicada rs e de cl arao de v ariv is , a s e gunda s e e xpre s s e s condicionais do cicl e a t rce ira o e aos proce dim e nt de incre m e nt os ao ou de m udana de v ariv is . P e ara e xpl icar m e lor, h nada m e lor do q ue um e xe m pl h o:
#include <stdio.h> int main() { int entrar = 1; for (int contador = 1; contador < 6; contador++) { printf(contador vai em: %d\n, contador); } printf(contador chegou a %d\n, contador); return 0; }

<39 >

t orial ut
Ne s t cicl pos s v lre parare m q ue f e o, e ica t udo m ais arrum ado e s im pls de pe rce be r e . T m os a prim e ira part q ue de cl e at e e ara ribui um v or v al ariv l cont e ador [no obrigat rio s e r pre e nch ido] de pois t m os a , e s e gunda part q ue t m a condio de e e parage m do cicl e na t rce ira part t m os o e e e o nos s o m odif icador da v ariv l q ue ne s t e , e cas o a incre m e nt a um a unidade , e e nq uant cont o ador < 6, o corpo do f ( ; ) or ; av iado e e xe cut al ado. P f t m os o cicl do w h il () q ue or im e o e , prat icam e nt igualao w h il () m as t m a e e , e part aridade de e xe cut o s e u corpo icul ar ant s de t s t a condio de parage m . I t e e ar so t m um a v age m . Se q uis e rm os q ue um a e ant dada e xpre s s o se j a e xe cut ada inde pe nde nt m e nt e e de a e xpre s s o condicional w h il () s e j f s a ou no, e l do e a al a s e m pre e xe cut ada, pe l m e nos , um a v z. o e E m ais um e xe m pl o:
#include <stdio.h> int main() { int entrar = 1; int contador = 1; do { printf(contador vai em: %d\n, contador); contador++; } while (contador < 6); printf(contador chegou a %d\n, contador); return 0; }

7 rings [cade ias de St caract re s ] e


At agora v os v im rios t ipos de dados conh e cidos . A m aior part de ls , at s da e e rav m at m t e ica [int foat doubl]e v os um , l , e im t de dados , ch ar, q ue aj ipo udar a pe rce be r o t ipo de dados q ue v os v r ne s t am e a s e co, s t rings . Um a s t ring um conj o de unt caract re s s e guidos q ue t rm ina com o e e caract r e s pe cial t rm inador de s t e , e rings , '\0' [lia-s e , barra ze ro]O u s e j um a s t e . a, ring no m ais q ue um a f e q ue t m com o l it s , ras e im e inicial e f , o prim e iro caract r e o inal e caract r e s pe cial '\0', re s pe ct am e nt . Se e iv e q uis s s e m os e s cre v r a s t e ring " " e s t e ra ol , a com pos t da s e guint m ane ira: a e 'o' 'l '\0' = " " ' '' ol Em q ue a pos io 0 [ze ro] s t da ring t m o e caract r 'o', a pos io 1 t m o caract r 'l e e e ', a pos io 2 t m o caract r '' e a pos io e e 3 tm e o caract r e s pe cial '\0'. Se e re pararm os , e xis t m 3 caract re s v v is na e e is e st ring, m as e s t f ada por 4, um a v z a orm e q ue pos s ui o caract r t rm inador de s t e e ring '\0'. O ut as pe ct im port e t m a v r ro o ant e e com o f o de a cont act age m e pos t rior e s e lco das pos ie s com e a com o e nm e ro 0 [ze ro] no no 1. F e unciona com o inde x, ou com o pos ie s de cas as . Se a st ring t m n caract re s , as s uas pos ie s e e v o de 0 at n-1, e a pos io n, pre e nch ida com o caract r t rm inador de e e st ring '\0'. Com o v os at agora, q uando q ue re m os im us ar um a v ariv lt m os de a de cl . O ra e , e arar para criar um a v ariv ldo t e ipo s t ring s t m os de a de cl e arar e de indicar o e s pao q ue e l v ocupar P e xe m pl s e a s t a ai . or o, ring e m q ue s t o us ar 20 caract re s , pode m os e de cl arar:
char a-minha-string[20];

Com o s e v o corpo do do w h il() , e , e xe cut ado ant s da s ua condio de e parage m . D e pe nde ndo da s it uao, das v ariv is e m q ue s t e do s e u v or act , e o al ual d j it us ar um t e o ipo de cicl q ue re s ola o v m e lor o problm a. h e Com v ariv is , e e xpre s s e s condicionais e cicl , j os pos s v l f r m uit cois a e m C, um a e aze a q ue s t o de s e prat icar e de s e t nt e ar de s cobrir m e lor cada e lm e nt aq ui v t h e o is o.

E t m os a nos s a s t e ring com capacidade para 20 caract re s criada. e

<40>

t orial ut
Em s e guida, pode ram os us ar o e s pao re s e rv ado para e l da s e guint m ane ira: a e a-m inh a-s t ring = " l s ou um a s t O a, ring" ; E int rnam e nt is t s e ria e q uiv e nt a: e e o al e O u s e j de cl a, arm os um a v ariv l " e count " do t ipo int iro s e m ne nh um v or part e al ida, e v t os a de cl ol m arar a nos s a s t ring, de s t a f it com o nom e " y St , com as m e s m as e a m r" 20 pos ie s e a m e s m a s t ring " l s ou O a, um a s t ring" . Es t program a produziria o s e guint : e e s O s o l t u a r , i u n m g a P ode ram os ainda m os t rar o nm e ro de caract re s e im prim idos no e cr acre s ce nt ado ao cdigo o s e guint : e
printf("numero de caracteres imprimidos no ecr : %d\n", count);

0 1 2 3 4 5 6 , s o O la 7 8 9 10 11 12 13 u u m a s 14 15 16 17 18 19 t r i n g \0
So 20 caract re s de nt de um a s t e ro ring q ue cont m 19 caract re s v v is m ais o e e is e caract r t rm inador '\0', t al e e ot izando 20 pos ie s , inde xadas de 0-19 . A m anipul ao de s t rings d m uit j it e o e o bas t e f . V j os : s e q uis s s e m os ant cil e am ace de r pos io nm e ro 3 da s t ring [q ue nos d um caract r]f e , aram os :
a-minha-string[3]

Ant s do " t e re urn 0; [f do program a]e " im de pois do l f . oop or

8 - V ct s e ore
Com o v os na s e co ant rior um a s t im e , ring um a cade ia de caract re s t e odos orde nados e s e guidos de um caract r e e s pe ciale rm inador '\0'. t O ra um v ct t m e xact e nt o m e s m o e or e am e conce it m as cont o m q uais q ue r e lm e nt , e os de pe nde ndo do t ipo de dados ao q ual e s as s ocia o v ct . e or P e xe m pl pode ram os q ue re r um v ct or o, e or de int iros com os anos de v e rias dat de as nas cim e nt as s im f o, aram os :
int vecAnos[10];

E para q ualue r out pos io f q ra aram os am inh a-s t ring[n] . Um e xe m pl ut izando um s im pls cicl o il e o, m os t com o pode ram os im prim ir um a um ra e s e parados por l as , cada um dos inh caract re s da s t e ring acim a criada e o re s pe ct o nm e ro de ls . iv e
#include <stdio.h> int main() { int count; char myStr[20] = "Ola, sou uma string"; for(count = 0; myStr[count] != '\0'; count++) { printf("%c\n", myStr[count]); } return 0; }

Em q ue criaram os e por cons e q uncia re s e rv aram os m e m ria para 10 bl ocos de int iros s e guidos para o nos s o v ct . P e e or ara m anipul o v ct , f ar e or aram os t e q ual al nas st rings , um a v z q ue cada pos io do e v ct t m um ndice as s ociado, q ue v e or e ai de s de 0 at ao s e u t anh o, n, m e nos 1 [0 am -> n-1] .

<41>

t orial ut
Ut izando il o v ct e or acim a criado, m odif ue m os , iq ou ne s t e cas o, pre e nch am os o s e u cont do, um a v z e e q ue at agora o v ct e s t v e or azio.
vecAnos[0] = 1987; vecAnos[1] = 1988; vecAnos[2] = 1989;

9 -F une s
No ne nh um a nov idade f ar e m f al une s v t q ue t m os v is o e indo a f ar ne l e a us al as l de s de o incio. A m ais f ada, a m ais as al us ada e a e s s e ncialpara q ue q ualue r q program a e m C corra a f uno m ain() . M as e m ge ral um a f uno apre s e nt a a s e guint s int : e axe
tipo_de_retorno Nome_da_funo ( parmetros declarados ) { CORPO; RETORNO; }

e por a f ora. Se ria um a m aada andarm os a de cl arar t odas as dat , s e , para al do as m m ais , e l f s e m s e guidas . P as os ara is s o us am os um s im pls al m o, para pre e nch e r o e gorit v ct s abe ndo o s e u t anh o f . e or, am inal

#include <stdio.h> int main() { int vecAnos[10]; int start = 1987; for(i = 0; i <= 10; i++, start++) { vecAnos[i] = start; } for(i = 0; i <= 10; i++) { printf("vecAnos[%d]=%d\n", i,vecAnos[i]); } return 0; }

M uit o s im pls . Um e pe q ue no e xe m pl o t ornar m ais cl a ide ia de f ara uno:


#include <stdio.h> int func_soma(int x, int y) /*funo que retorna um int, que tem o nome func_soma, que tem os parmetros declarados "int x, int y", que tem um CORPO e um RETORNO do inteiro relativo -> soma (x + y) */ { return (x + y); // ou int temp = x + y; seguido de return temp; } int main() /* funo que retorna um int, que tem o nome main, que no tem parmetros declarados, que tem um CORPO e um RETORNO do inteiro 0 [zero] *\ { int a, b, soma; printf("SOMADOR:\n"); printf("Insira dois valores para\n"); printf("a:"); scanf("%d\n", &a); printf("b:"); scanf("%d\n", &b); soma = func_soma(a, b); printf("A soma de %d com %d e %d\n", a, b, soma); return 0; }

P ant o conce it de v ct o m e s m o ort o o e or da s t ring s q ue f unciona com m l os t ipl t ipos de dados pe l q ue ao v ct de ch ar o e or ch am am os -le s t h ring. Ape s ar de t udo, at s do q ue f aq ui rav oi e xpl icado at s e co 8 dos v ct s , e ore pos s v l f r-s e m uit cois a e m C. No e aze a e nt o, e xis t um a " at ant e m ria" bas t e ant im port e para a e f ant icincia e organizao de cdigo nos program as : f une s .

<42>

t orial ut

Com o pode m os v r a f e , uno "unc_s om a" f criada para auxil a s om a, t m o m e s m o iar e as pe ct da f o uno m ain() m as ut iza il parm e t de cl ros arados part ida. O u s e j a, a f uno "unc_s om a" re q ue r q ue s e f , " s e m " ce rt pas os argum e nt os para e l a f uncionar Ne s t cas o, a f . e uno e xige q ue pas s e m os dois int iros . de not q ue os e ar nom e s 'x' e 'y ' pode riam s e r 'a' e 'b' com o f oram e nv iados na ch am ada de nt da ro f uno m ain() um a v z q ue s o zonas , e dis t as . Ape nas f int oram e s colidos x e y h dif re nt s de a e b para f it e e acilar a pe rce po.

Se criarm os a s e guint s t e ring:


char revista[9] = PROGRAMAR;

8000H 8001H 8002H 8003H 8004H P R O G R 0 1 2 3 4 8005H 8006H 8007H 8008H 8009H A M A R \0 5 6 7 8 9

10 - P e iros ont
G e ral e nt , os pont iros s o a dor de m e e cabe a dos apre ndize s iniciados , e por is s o cos t am s e r e xpl um icados no f . No im v os f am ugir re gra e por is s o f ica aq ui a s ua e xpl icao. Em bora pos s a pare ce r com pl icado de incio, v re m os q ue m uit e o s im pls , m as q ue ape nas com prt e ica s obre o as s unt s e cons e gue pe rce be r be m o o se u f uncionam e nt o. Com o v os nas s e ce s 7 e 8, s t im rings e v ct s , re s pe ct am e nt , o s e u t e ore iv e ipo de dados um a e s t ura e m cade ia e m q ue rut pode m os im aginar v rias cas as s e guidas com cont dos l de nt re s pe ct os ao e ro iv se u t ipo de dados . O s v ct s s e ro de s t e ore e t ipo com v ore s int iros de nt das cas as e al e ro as s t rings s e ro de s t t e ipo com caract re s e de nt das cas as . ro No e nt o, q uando criam os um a s t ant ring ou um v ct , at e or ribum os -le um nom e . aq ui h q ue e nt ram os pont iros . O nom e de um e v ct no m ais do q ue um pont iro para e or e a prim e ira cas a [ndice 0] prprio v ct . do e or E um pont iro no m ais do q ue um e e nde re o da e s t ura para a q ual rut apont a.

Es t s e ria o e s q ue m a na m e m ria. E, com o e f e xpl oi icado ant riorm e nt , o nom e da e e e s t ura, re v t um pont iro para a rut is a e prim e ira cas a da e s t ura, q ue ne s t cas o rut e um a s t ring. P ant re v t ort o, is a apont a para a cas a 0 [ze ro] ue cont q m P e q ue por s ua v z t r um e nde re o. Supondo e e q ue a s t ring com e a no e nde re o 8000H , e nt o, re v t t m o e nde re o 8000H . is a e Com o um carct r ocupa 8 bit [1 by t ] e s e na m e m ria, os e nde re os s al t am de um e m um com o s e v na t abe l Se m andarm os a. im prim ir carct r a carct r e s t s t , e e , a ring, f m os al com o is t aze go o:

char revista[9] = PROGRAMAR; char c; while (*revista != \0) // \0 o carcter terminador de // strings { printf(%c, *revista); revista++; }

O ra apare ce aq ui um s m bol nov * O o o: . s m bol as t ris co, s ignif o e ica cont do. e Com o f e xpl oi icado ant s , o nom e de um a e st ring/ e ct v or no m ais do q ue um pont iro para o e nde re o da prim e ira cas a e de s t . Com o t , o nom e e m s i cont e al m o e nde re o de m e m ria, m as f t pode r al a ace de r ao s e u cont do. e

<43>

t orial ut
P ode m os inde xar f ndo re v t com i , aze is a, pe rt nce nt e nt 0 a 9 , m as com o o nom e e e re da s t ring/ e ct apont para a prim e ira v or a cas a, para s e ace de r ao cont do de s s a e pos io de m e m ria, ape nas s e m e t o * e ant s do nom e . E para q ualue r nom e de e q um a e s t ura de s t , ao pr-m os um rut as as t ris co ant s de s e u nom e , e s t os a e e am ace de r ao cont do da q uale s s e nom e e apont a. Com o v os na t im abe l acim a e pe gando a no pe dao de cdigo, no incio, re v t is a apont a para 8000H . Se m andarm os im prim ir o s e u cont do, at s da e rav ope rao * v t s e r im pre s s o o carct r re is a, e P porq ue o cont do de 8000H . e Se agora incre m e nt arm os re v t [q ue is a um e nde re o] e s t av , e ana um a pos io na m e m ria e port o f ant ica com o e nde re o 8001H , q ue por s ua v z, * v t e re is a, pas s a a cont r R. E as s im s uce s s iv e nt e am e at * v t e m q ue v cont e r \0 e a re is a ai, iv para porq ue acabou de im prim ir t oda a st ring. Es t proce s s o m uit s e m e lant com e o h e v ct s ou com out e ore ros t ipos de dados ne s t e s t uras s e q ue nciais na m e m ria. as rut Re capit ando, um nom e de um a e s t ura ul rut de s t um pont iro para e l e cont o as e a m e nde re o para onde apont [a m orada da a cas a]E para s e le ace de r ao cont do, . h e us a-s e o s m bol * ant s do nom e . o e

Concl o us
Exis t m m uit m ais " at e as m rias " e m C q ue pode m s e r f adas , m as para um incio, al im port e cat ar o apre ndiz com ce rt ant iv as m at rias m ais s im pls de m odo a q ue , s e e e s t de cidir av e anar com a apre ndizage m a f undo da l inguage m e m q ue s t o, no de s m ot e iv por f t al a de ce rt os conh e cim e nt bs icos q ue o im pe am de os av anar e de pe rce be r out ros cont dos e m ais av anados . Em bora s e j a pos s v l apre nde r-s e e a program ar at s de , rav l ros , t oriais , iv ut art igos , aul , e t im port e pe rce be r as c., ant q ue s e m prt ica aut nom a, m uit dif o cil adq uirir e xpe rincia e prt ica na program ao de q ualue r l q inguage m . Ent o, um ape l im port e a t o ant odos os program adore s iniciant s , de pore m e m e prt ica e xe rccios s e us e de t nt m e are pe rce be r a l inguage m por s ua aut ore criao.

<44>

M igue l ah non W

gnu/inux l

Apre s e nt ao do Ubunt 7.04 u "e is t F n" F y aw


J pas s aram 6 m e s e s de s de o l anam e nt da l a v rs o do o t im e Ubunt u, o 6.10 Edgy Ef e o t l anam e nt do F is t F n f no o e y aw oi dia 19 de Abril . Com e s t art e igo pre t ndo f r um a e aze apre s e nt ao s im pls de al as e gum das nov as f uncional idade s de s t a nov v rs o. a e

G nom e 2.18
O nov G nom e v m com m uit m e lorias a o e as h nv l de v l e e ocidade e e s t idade , com o abil um a int rf e ace m e lorada, m e lor s uport h h e para re de , e m uit m ais . O G NO M E Cont o rol Ce nt r v m com um a nov int rf e , e a e ace q ue agrupa as f uncional idade s e m t f are as s e m e lant s . O Cont ce nt r pe rm it al rar h e rol e e t e v rias de f inie s no s is t m a, com o f s , e ont t cl e ado, s om , t m as , e t e c.

prim e ira v t is a
O aparncia grf ica de s t e nov o l anam e nt cont o inua a s e guir a aparncia das v rs e s ant riore s com t e e ons de cas t o e l anh aranj a, h av ndo m e lorias e h s ignif iv . icat as Ao nv ldas apl e icae s ins t adas , al cont inua a s e r um s is t m a e com plt t ndo apl e o, e icae s para a m aioria das act idade s com uns iv m s ica, v o, de docum e nt ao, ins t m e s s aging. ant

D e s e m pe nh o
P ode m os cont ar com al as gum m e lorias a nv lde de s e m pe nh o, h e al as graas a nov v rs e s de gum as e al guns s is t m as , com o o Xorg 7.2 e (m ot or grf , ico) Ups t art 0.3.6 (Sis t m a de inicial e izao no Ubunt u de s de o 6.10) e K e rne l 2.6.20. A incl o do Xorg 7.2 ao Ubunt us u f um a s urpre s a, poucos e s t am oi av e s pe ra da s ua adio ne s t l e anam e nt o. Es t v rs o v m com v a e e rias m e lorias h s ignif iv icat as de e s t idade abil e f uncionam e nt o, com o aut o-conf igurao m ais e f nt , s uport m e lorado para icie e e h ge s t s bas e ados e m G L com o o Com piz ore , ou B ry l e policas de s e gurana m ais e t e xt ns as . e

I t ao ns al
A ins t ao grf al ica e s t m ais f , com cil nov as m e lorias h t o ao nv l de ant e e s t idade abil com o f uncional idade s do ubiq uit - Sis t m a de ins t ao grf y e al ico us ado no Ubunt u.

<45>

gnu/inux l
Um a das nov f as uncional idade s do ubiq uit y o M igrat ion-As s is t . Es t apl ant a icao pe rm it e aos ut izare s il im port m are docum e nt , f e iros e de f os ich inie s de out ros s is t m as ope rat os q ue e s t j e iv e am ins t ados , e conv rt r para os s e us al e e e q uiv e nt s e m Ubunt al e u. P e xe m pl pode copiar o cont do da or o, e pas t M y M us ic no W indow s para a pas t a a M us ic no Ubunt e adicionar ao Rh y m t u, box, ou s e t e r o F f I ou O pe ra ins t ado, iv ire ox, E al e s t ir com pil as book m ark s e adicionar e ar as do Ubunt u. Um a das apicae s q ue v m de bas e para e aj udar ne s t t f o Ne t ork M anage r a are a w , um a int rf e ace grf ica, no q ual s e pode conf igurar t o a re de por e t e rne t ant h , w ire ls s e V N. e P

M ul dia t im
Um dos m aiore s de s af ios para um nov o ut izador a part m ul dia, is t , a il e t im o capacidade para re produzir udio e v o de no s e u Ubunt u. M ais um a v z, para e s im plicar e s t proce s s o j no if , e al de out m undo. go ro Ao e xe cut um f e iro m e dia ar ich q ue no t nh a ne nh um code c e com pat e lins t ado, o s is t m a v al e ir l anar um av o e aj is udar no proce s s o de ins t ao dos al code cs ne ce s s rios . O ut m e loria a e s t nv l f a ra h e e , oi criao do pacot Ubunt e ure s t e d-e xt . Es t pacot rict ras e e na re al idade um m e t apack age q ue apont para a a ins t ao de ce rca de 20 al pacot s e para aj udar a e xpe rincia m ul dia. I ui Jav JRE, Fas h 9 , al t im ncl a l guns code cs e m ais uns pacot s . e

I t ar D riv rs P ns al e roprie t rias para as t o ant para as pl acas grf icas com o w ire ls s e m ais s im pls , us ando o Re s t e d D riv rs e rict e M anage r Num cl ue . iq os driv rs s o e ins t ados . al

Ef it G rf e os icos
P ara os q ue pe ns am q ue os e f it grf e os icos do V t s o nov is a idade , de v ro f e icar adm irados por s abe r q ue e m L inux j e xis t iam e no pre cis o um a m q uina l a t im ge rao para f uncionare m com fuide z. l O Ubunt F is t u e y vm e com o Com piz 0.3.6 ins t ado al de bas e , e se a v s a grf os ica f or com pat e l v , de v r f e uncionar l ogo s e m ne nh um a conf igurao e xt ra.

Re de Sim pls e
Se guindo a f os of do il ia Ubunt para s im plicar u if a e xpe rincia do de s k t ao m xim o de op ut izadore s , um a das il e s pe cif icae s para e st l e anam e nt f o o oi Z e roConf t ork ing, Ne w q ue re s um idam e nt e a capacidade de conf igurar o ace s s o re de aut at om icam e nt e e com o m nim o de int rv no do e e ut izador O Sis t m a t nt il . e e ar conf igurar o q ue pode r para t nt f r a re de f e ar aze uncionar corre ct e nt . am e

<46>

gnu/inux l
O rganizao das j ane l abe rt as as

Ef it de " e o cubo"

Re s um indo, e s t l e anam e nt a cont o inuao da e v uo v v l Ubunt A e xpe rincia ol is e no u. do ut izador e s t m ais s im plicada e o s is t m a m ais e s t e l com pat e l il if e v e v . Acons e lado a t h odos os q ue q ue re m e xpe rim e nt G NU/ inux. ar L

<47>

M arco Sila v

anle s is

M oodl: e Um a pl af a de e L arning at orm e


O q ue o M oodl? e
O M oodl um a f rram e nt q ue pos s ibila a e e a it ge s t o de apre ndizage ns e de t rabalo h col aborat o, pe rm it iv indo a criao e ge s t o de curs os on-l e m t ine orno de com unidade s com obj ct os e ducat os . A ide ia inicial oi e iv iv f de M art D ougiam as , q ue e m 19 9 9 pe ns ou in criar o M oodl, s e m q ualue r obj ct o e q e iv com e rcial , pois acre dit a nas pot ncial e idade s do e ns ino e da cons t ruo do conh e cim e nt at s da I e rne t D e pois o rav nt . de al as t nt iv iniciais e m Agos t gum e at as o de 2002 q ue s ai a v rs o 1.0 do M oodl. A e e part da a com unidade M oodl t m ir e e cre s cido bas t e e s o cada v z m ais as ant e e s col , univ rs idade s , ce nt de f ao, as e ros orm e m pre s as e organizae s a ut izar e s t il a f rram e nt e a. Em P ugal(q ue re gis t j um t alde 858 ort a ot M oodls re gis t e ados ) t m -s e v rif e e icado um a grande ade s o de v rias e s col e ce nt as ros de f ao a e s t f rram e nt Es t m oda orm a e a. a de v -s e e s s e ncial e nt s ua f idade de e m e acil us o, acom panh ada da aus ncia de cus t os com o s ofw are , be m com o ao nov Q uadro t o de Re f rncia da F ao Cont e orm nua de P e s s ore s na re a das TI rof C. P ara um bom f uncionam e nt o M oodl o e pre cis a corre r t f aut at are as om izadas (cron) e t r e s pao dis ponv l e e para a col ocao dos v rios re curs os dos curs os a criar No s it . e of icial s t ainda dis ponv l e e um conj o de unt pl ugins (m dul e bl os ocos ) q ue pe rm it m e al argar ainda m ais as pot ncial e idade s do M oodl. e

P e ncial ot idade s do M oodl e


O M oodl e pe rm it e a criao de curs os / cipl dis inas q ue pode m ou no e s t ar ace s s v is a t e odos os v it e s . Ne s t s e s paos is ant e pode m de pois s e r criados e col ocados re curs os . O M oodl, t ndo por bas e um a e e f os of cons t iv t da e ducao, t j um il ia rut is a raz conj o de f rram e nt unt e as q ue f it acilam a ne ce s s ria int raco e nt os part e re icipant s . e D e st aca-s e aq ui a pos s ibil idade de criar W ik is , f runs , gl s rios , ch at , bl , bas e s de os s ogs dados , dirios , inq urit , l s , t s t s . t os ie e e udo is t q ue pode t o ornar o M oodl num e s pao de e apre ndizage m m uit m ais rico q ue um s im pls o e re pos it rio de cont dos . e s s e o de s af e io l anado a q ue m pre t nde us ar o M oodl e m e e t oda a s ua plnit . e ude

Sit s de re f rncia e e
P gina of icial M oodl do e h tp:/w w w .m oodl.org t / e Com unidade P ugue s a de M oodl ort e h tp:/w e b.e ducom .ptm oodlpt t / / e / P gina onde s e pode t s t o M oodl e ar e h tp:/w w w .ope ns ource cm s .com t /

Q ue s t s t e cnicas
O M oodl O pe n Source dis t e ribudo s ob a G NU P ic L nce . No f ubl ice inaldo m s de M aro f oi l anada a v rs o 1.8, e m e lorando h a fe xibil l idade , a ace s s ibil idade e a us uabil idade da pl af a, nom e adam e nt no q ue diz at orm e re s pe it param e t o rizao dos papis dos ut izadore s . O M oodl corre e m P P e il e H s uport M YSQ L ou P t SQ L e m bora nas a os gre , l as v rs e s s e pos s a ainda us ar e m t im e al rnat a M icros of SQ LSe rv r ou O racl. t e iv t e e

<48>

Jos O l e ira iv

int rne t e

O Bl da L am og inTe
A L e am , um a das e q uipas do nos s o f inT orum q ue s e de dica ao G NU/ inux, de u, durant o m s de Abril um grande pas s o no s e u L e , t rabalo: l h anou um bl Com e s t bl o obj ct o lv o Sofw are og. e og e iv e ar t L re a cada v z m ais ut izadore s at s de t xt crt iv e il rav e os icos , art igos de opinio, not cias e de s e nv v e nt do m undo ope ns ource . olim os

h t p:/ w w w .l e am .port g al t / int u -a-prog ram ar.org

Es t s t at icas : pos t 18 s com e nt 45 rios ais de 1000 M vis it nicas as ais de 8000 M H it s is it de 16 V as pas e s dif re nt s e e

M oti j
O M oj i pe rm it pe rs onal it e izar v os al ados nos principais de oj s e rv idore s de v o da I e rne t D e pois de e s colido o v o de nt . h de pode m os col ocar lge ndas , anot e ae s , v rias f as , orm im age ns , anim ae s , t udo is t no l o ocalde s e j ado. O M oj i it adiciona de pois um l e r com e s t pe rs onal ay as izae s . Re ce nt m e nt e e f oram ainda adicionadas nov as f uncional idade s a e s t f rram e nt ne s t m om e nt pos s v l a e a. e o e t bm adicionar udio e v o a um out v o! Um re curs o am de ro de a conh e ce r .

h tp:/w w w .m oj i.com t / it

Conv rs o de V os e de
T odos ns gos t os de ir ao YouT am ube ou a out s it s do gne ro e v r al ros e e guns v os . M uit gos t de os am t bm de f r dow nl am aze oad dos m e s m os para a pos t rioridade . O problm a s urge no f do dow nl e e im oad: t nh o um v o e m .fv e de l , l ogo t nh o de f r dow nl e aze oad de um pl ugin ou de um program a! Norm al e nt m e is t um a grande m aada principal e nt q uando q ue re m os m os t o v o o m e rar de aos am igos e e ls t e m de ins t ar um program a. Com o v al ixy.ne t e s s e problm a e ev aporou-s e . pos s v l e conv rt r no prprio s it e s s e s v os .fv para AV, M O V e e e de l I para M ac, M P para o iP e para a P , 3G P para q ualue r t lm v l M P 4 od SP q e e e e 3, q ue ape nas conv rt o adio do v o. e e de

h tp:/w w w .v t / ixy.ne t

<49 >

bl s cre e n ue

P l m e nos m ais bonit e o o q ue a concorrncia...

A e s t e l... e ...o Bue Scre e n ofD e at ! l h

Se r q ue a t ura re s ul ort t a?
<50>

com unidade
Re lm bro q ue as candidat e uras a e s t as e q uipas e a t odas as out ras e s t abe rt , o as pe l q ue t o odos os m e m bros da com unidade s e pode m ins cre v r nas m e s m as . P e ara o f r bas t f ar com um m ode rador aze , a al , adm inis t rador ou com o ge s t do proj ct or e o. Em t rm os e s t s t e at icos , a com unidade cont inua e m grande cre s cim e nt o: no pas s ado m s de Abril t e m os 2219 2 , iv v t e s nicos , com um a m dia de 1171 is ant por dia. So nm e ros q ue indicam um bom cre s cim e nt e q ue nos m ot am para o iv cont inuar a t rabalar na e xpans o da h com unidade . Es pe ro q ue t nh am um bom m s de M aio, e q ue ace dam m uit f q ue nt m e nt ao o re e e f rum , q ue part icipe m nas nos s as dis cus s e s e q ue cont ribuam act am e nt para a iv e com unidade . V m o-nos no P P e @ .

Ch e gm os ao m s de M aio, um m s q ue m e cos t a t um raze r m uit e boas as lm branas . P u? ra, f e m M aio de e orq O oi 2005 q ue a com unidade P ugal ort -aP rogram ar f criada, m ais pre cis am e nt no oi e dia 28, s 19 h oras e 18 m inut . O u s e j os a, f m os no dia 28 de s t m s de M aio, dois aze e anos de e xis t ncia. E para com e m orar e s s e s dois anos de t rabalo e de dicao q ue h t os f os t t ant rut m razido, o s t fdo P ugal af ort a-P rogram ar de cidiu l anar um concurs o: RoboCode e m Jav P a. ara m ais inf ae s orm e para s e ins cre v re m , s ugiro q ue v it m a e is e nos s a s e co Jav ou q ue e nt m e m a re cont o dire ct com o m ode rador K nite r act o t . F ando do q ue s e f z e do q ue s e f al e ar, e s t os a pl ar av am ane anar com out ro proj ct l rado e e l e o ide aborado pe l s t f j o af a part de Julo. T r de s e r adiado para ir h e e s s a poca de v ido aos e xam e s e im port ncia q ue os m e s m os t ro na e carre ira prof s ional de cada um . O ut is ros proj ct e os t m s urgido por iniciat a dos iv ut izadore s e prov e l e nt v re m os m ais il av m e e de s e nv v e nt olim os nas prxim as s e m anas . Q uant ao q ue s e f z, t m os v o e e rias e q uipas at rabalar e m s im ul o e m v h t ne rias re as e q uipas de t raduo, de de s e nv v e nt olim o de s ofw are t e de t rabalo para a h com unidade - e port o be m prov e l ant v q ue m uit e m bre v com e ce m a s urgir o e not cias de proj ct acabados . D e s de o e os l anam e nt da l a e dio f o t im oram criadas duas e q uipas de t raduo, um a l rada ide pe l K nite r out pe l djh y rax, a D e s ign o t ra o t T am , q ue t r com o f e e une s f orne ce r e lm e nt de de s ign s v e os rias pl af as at orm da com unidade .

Q ue re s part icipar na re v t is a P G RAM AR? ue re s int grar e s t RO Q e e proj ct e s cre v r art e o, e igos e aj udar at ornar e s t re v t num m arco a is a da program ao nacional ? V a ai

w w w .re v t is a-program ar o .inf


para m ais inf ao com o orm part icipar ou e nt cont a-nos por o act

@ port ugal -a-program ar .org


P cis am os do apoio de t re odos para t ornar e s t proj ct ainda e e o m aior ... cont os com a t aj am ua uda

re v t is aprogram ar

<51>

Rui M aia

Eq uipa P G RAM AR RO
Um proj ct P ugal rogram ar e o ort -a-P .org

You might also like