e dit orial

Ev ução ol
Est proj ct cont e e o inua e m e v ução e ne st e dição isso se rá ol a m ais v e lq ue nunca. Um a m udança de v isív isualf al q ue oi go nos e ra pe dido nos com e nt ários sob re as ant riore s e diçõe s. e P ara auxil iar e st a m udança, usám os um program a propriam e nt de st e inado a pub l icaçõe s, o Scrib us. Tam b ém é ope n-source e , e m b ora possua ainda al guns de f it com o na e os, e dição de t xt possib ilou-nos a re v ução gráf e o, it ol ica de st a e dição, para m e lor ou pior de pois sab e re m os, m as gost os h ám dos re sul t ados. Ent t o, o nosso proj ct cont re ant e o inua a cre sce r, t o e m ant núm e ro de part icipant s com o e m cont uiçõe s. Num a re v a e rib ist de st t e ipo, q ue v e das cont uiçõe s dos m e m b ros e da iv rib v dade de st arie as, é se m pre im port e m ant r um grupo ant e act o de re dact s e out iv ore ro grupo de m e m b ros q ue part icipam ocasional e nt . Est ob j ct o t m sido cum prido m e e e iv e at agora, re sul é t ando num a pub l icação se m pre com post por a cont údos v e ariados, re q ue sit ne ce ssário num a áre a t v a o ão ast com o é a da program ação de com put adore s. Espe ram os q ue as al raçõe s e f ct t e e uadas se j am do v osso agrado e prom e t m os cont e inuar a prosse guir os nossos ob j ct os principais: ch e gar a cada v z m ais program adore s e e iv e at rair cada v z m ais ge nt para o nosso m undo. e e

<2>

Sérgio Sant os

not ícias

SH IFT
V re al ai izar-se na Univ rsidade Nov de L oa, e nt os dias 27 e 29 de e a isb re Se t m b ro de 2006, o Congre sso " if – Social e Sh t and H um an Ide as f Te ch nol or ogy" ce nt rado nas t cnol e ogias e m e rge nt s e no se u im pact na v e o ida das pe ssoas e re spe ct as com unidade s. iv Sh if é um a conf rência sob re o pape le as im pl t e icaçõe s da t cnol e ogia na socie dade act , se rv ual iços ce nt rados no ut izador, m ov e nt sociais q ue criam il im os nov re l as açõe s sociais e t cnol e ogia q ue m e lora a nossa v h ida diária. Te m com o púb l ico-alo, e urope us e nt v usiast da t cnol as e ogia, com principal incidência para o púb l port ico uguês e e spanh ol . Te m as propost para e st ano: os e - A re l ação e nt P ssoas e Te cnol re e ogia - Ge st do Conh e cim e nt ão o - O s Bl e as nov f ogs as orm as de part icipação cív ica - L e rdade s e P acidade nos m e ios digit ib riv ais M ais inf orm açõe s: w w w .sh if .pt t

Bugs e ncont rados nos proce ssadore s da Int l e

nov os

Googl aproxim a-se de nov m e rcado e o
Com o re ce nt l e ançam e nt do nov o o se rv iço Googl, q ue possib ila ut izar o e it il dom ínio do ut izador com o dom ínio de e il m ailnas cont Gm ail a e m pre sa nort as , e am e ricana aproxim a as suas sol uçõe s de um pacot de produt idade O f ice . e iv f R e ce b e ndo ainda grande part dos se us e l ucros de se rv iços pub l ários, a Googl j icit e á l ançou div rsos se rv e iços, com o f h as de ol cál o, calndários, conv rsação, q ue cul e e possib ilam it sol uçõe s sim pls e para indiv iduais e pe q ue nas e m pre sas. Em b ora a e m pre sa ainda não t nh a e de cl arado as suas int nçõe s, cada v z m ais e e surge a ide ia q ue a Googl pre t nde e e at ingir um a nov áre a de ne gócio, de st a a v z com sol e uçõe s t al e nt b ase adas e m ot m e pl af at orm as w e b . R e st a-nos e spe rar pe l o q ue pode rá surgir f uram e nt e v rif ut e e icar se se t ornará num a opção v e l ne st iáv e im port e m e rcado. ant

Num docum e nt disponib il o izado h á poucos dias, a Int l inf e orm ou os ut izadore s q ue q ualue r um dos il q proce ssadore s Int l e Core 2 D uo re cém ch e gados, possue m m ais de 60 b ugs ide nt icados. if A pe nas 20 dos 60 b ugs t rão corre cção e a curt o-prazo, o q ue garant q ue e ne nh um dos out ros, se gundo a Int l e , pre j udicará o ut izador e m t rm os de il e ut ização do sist m a, à e xce pção do il e A I39 , q ue pode corrom pê-l o.

<3>

para lr sinais e l ricos e éct prov nie nt s de se nsore s (ECG. P or sua v z os e Microproce ssadore s. são f undam e nt m e nt al e const uídos por um a AL (arit m e t and it U h ic l ogic unit re gist de dados. cont ). m icrocont adore s/m icroproce ssadore s.. re conh e ce r a v oz e out ros sons. P m . ral (m icrocont adore s e m parall é capaz rol e o) de ao m e sm o t m po cont ar: a e rol com b ust ão. a e circuit os digit ais const uídos it por.M ódul de com paração. il rof Um Microcont ador é um rol circuit o int grado. D om ót ica. t ransf orm adas Fourie r. Elct e rónica Indust /R e side ncial rial . O uso de m icrocont adore s num R ob ô conf re -le rol e h a capacidade para se de sv de ob j ct iar e os. a e ne rgia consum ida. t orna os m icrocont adore s rol m uit at o ract os e m proj ct e lct iv e os e rónicos.t m a de capa e çõe s m édicas. ft il ros… ge rar dados q ue t ) ransm it am inf orm ação út aos P issionais M édicos. <4> .Synch ronous Se rial ort(SSP com SP e I2C P ) I . M icrocont adore s rol Est e art igo t m com o ob j ct os a e e iv apre se nt ação de M icrocont adore s e a rol de pe ndência q ue h oj e m dia a e lct e e rónica no ge ral(R ob ót ica.. f r aze m ov e nt q ue v m um ob j ct o.AD C de 10 b it s .. Graças a e st o ícil a “int l e igência” com e çaram a se r usados e m circuit q ue re q ue re m al a aut os gum onom ia e capacidade de de cisão m e diant f ore s e act e xt rnos. os im cont unit e ne ce ssit rol ) am q ue a m e m ória e os pe rif éricos se j am adicionados e xt rnam e nt . TAC… e e e ) m e diant o proce ssam e nt de sse sinal e o (t ransf orm adas Z . e Est as e norm e s v age ns ant originaram o apare cim e nt de circuit o os “int l nt s” e capaze s de proce ssar e e ige e re l acionar a m ais v ariada inf orm ação. rol um a aut onom ia e int l e igência. TCU (t e and ). q ue de out ra m ane ira se ria m uit dif .Usart . e m q ue num único disposit o e iv cont ém al guns dos principais com pone nt s e ne ce ssários à re al ização de Sist m as D igit e ais P rogram áv is (m e m ória e o m ais v e ariado t ipo de pe rif éricos). e m b ora se j m ais dif a ícilde de scre v r um e al gorit o. Um im os ise e iv m icrocont ador pode se r usado e m apl rol ica- Est M icrocont ador t m disponív is: e rol e e . Exist m t o e . o e l inguage ns de m ais b aixo nív l(asse m b l e y).Tim e rs/Count r com P scalr e re e . Te lcom unicaçõe s… t m dos m e sm os. com unicando com o CP à e e U cust de t a rês b arram e nt (dat addre ss e os a. rol A v age m de pode r t r um grande ant e núm e ro de pe rif éricos disponív is de nt e ro de um ch ip. e ) e O s m icrocont adore s são unidade s q ue rol pode m se r program as e m l inguage ns de al nív l com o por e xe m pl C.P as I/O ort . do pont de v a do proj ct a m o ist e ist do circuit Est program ação conf re aos o. o ABS. Num sim pls aut óv l a ce nt ina e om e . Ne st e xe m pl se rá usado o P 16F877 e o IC q ue é um M icrocont ador de se nv v rol olido pe l M icroch ip Te ch onol a ogy. capt os w ura . o ESP e as m ais v ariadas f unçõe s.

h> #include <stdlib. O s Te rm opare s ne ce ssit am de um a com pe nsação da sua j unção f ria.t m a de capa e Q uando se com pra um P o cont údo da IC. O b oot oade r é o program a q ue -l corre im e diat e nt após o " se t do P am e re " IC. de sde os m ais sim pls at aos m ais e é com plxos. pois e st indica ida o ich e ao com pil ador q uais os re gist do P e e m os IC q ue e nde re ço e b ancos de m e m ória e st ão. Q uando corre . não se irá f r aze re f rência a t e odos os b it dos re gist de s os conf iguração.PAP #include <pic. f e uncional idade pe rm it pe l f e iro pic.h" //////////CONSTANTES////////// #define TermCh 0 //canal termopar #define MEDIA 6 //N de leituras da ADC #define T1_10MS 0xC350 //t1 value at 10ms D EV ICE-D R IV S ER Ne st art e igo se rão ab ordados os principais de v ice driv rs para um P e IC.Faze r lit e ura da t m pe rat e ura indicada pe l o se nsor (t rm opar) e -L igar e de sl a re sist igar ência de aq ue cim e nt o . rol t m pe rat e ura de um proce sso t érm ico. e spe cif icando se são port de saída de os dados ou de e nt rada. O s port usados com o os <5> . ash IC Mais um a v z para sim plicar o raciocínio e if v os assum ir q ue se e st am ão a re al izar de v -driv rs para o cont o de um ice e rol proce sso t érm ico. o R Est t e ipo de sof w are (M P AB e nt out t L re ros) é disponib il izado pe l f ricant s a t os ab e roco de al guns e uros t al com o os program adore s. nom e adam e nt o P .h> #include "sci. Assim a t m pe rat e ura se rá dada por um Te rm opar. para t suge re -se a consul al t a do dat e e t af de v rif ash im e icar o signif icado dos b it de cada re gist e m causa. P ara sim plicar a lit if e ura. P ara cont ar a re sist rol ência irá-se re corre r a um P M (P se w idt m odul ion) com W ul h at dut y-cycl v e ariáv l e sincronizado com a e re de . e sua m e m ória EP O M S v m v R e azia. t e ICP A m e m ória do P irá e st div IC ar idida. a a A prim e ira t f a re al are a izar se rá conf igurar os port os I/O (P R T_X e O TR IS_X). O f e iro sci. v t st a l a série e ai e ar inh v rif e icar se e st al á gum program a " out do ro l ado da l a" a t nt cont ar com e l. m as e xist m al rnat as e t e iv t o para program adore s com o para o ant sof w are . Est s de v e ice driv rs se rão a b ase para f uros proj ct e ut e os.h . im de e nv para a EP O M o código do b oot iar R l oade r. am e P ara um a m e lor com pre e nsão do código h de se nv v olido é aconse láv l consul o h e t ar D at e e tdo P e m causa.L r e e scre v r de int rf s com o ut izador e e e ace il (e x: t cl do P displ ) e ado C. inh e ar act e Caso e xist a com unicação pe l l a a inh série /usb com o P rogram ador e nt e sse ão código se rá e scrit na m e m ória EP O M . o e -H Todos os re gist os e port os do P são IC t ados com o v rat ariáv is. ay… Assum indo q ue o P j t m de v IC á e idam e nt e o b oot oade r conf -l igurado. D uas de ssas div isõe s dize m re spe it à m e m ória o onde e st o b oot oade r e a out onde irá á -l ra se r arm aze nada o código re sponsáv l l e pe o f uncionam e nt do P t com o dados q ue o IC al se j guardados durant o m e sm o. Se rá ne ce ssário re corre r a um “P rogram ador” (e x: P icSTAR T da M icroch ip… af ). P e xe m pl no cont o de e or o. passa-se ao de se nv v e nt do Sof w are q ue se rá olim o t de se nv v olido e m C e post riorm e nt e e com pil (M P AB… no f ado L ) orm at Int l e x. aq ui irá-se assum ir q ue e l é a f it por h ardw are e q ue à e nt e a rada do P IC ch e ga um sinal anal ógico com v ore s e nt al re 0e 5V . s o #DEVICE DRIVERS . os de v -driv s t rão q ue : ice e e .h é disponib il ich izado pe l a Microch ip e é onde e st ão de scrit os os prot ipos ót das f unçõe s usadas nas com unicaçõe s pe l port série (R S-232).

s dos re gist de v m f os e icar com o v or de 1. unsigned char Sci_GetChar(void). void Sci_PutNum (unsigned int num. /*no effect*/ TXIE = 0. Supondo q ue o sinalprov nie nt do t rm opar j e e e á e st á de v idam e nt e acondicionado e dim e nsionado e nt um a possív lf ão e unção para aq uisição de dados da AD C se rá: <6> . unsigned char n. /*disable tx interrupts*/ RCIE = 0.2kbps { BRGH = 1. /*disable rx interrupts*/ TX9 = 0. int rrupt de v m se r e s e conf igurados com o e nt radas. void Sci_PutChar(unsigned char). /*asynchronous*/ SPEN = 1. /*enable serial port pins*/ CREN = 1. /*enable the transmitter*/ } Um a das part s m ais im port e s é a e ant ob t nção de dados e xt rnos. al A m icroch ip disponib il um conj o de iza unt f unçõe s para uso e inicial ização da USAR T. void Sci_Init() // 19. /*enable reception*/ SREN = 0. v o t ist odas as out ras f re m aze uso da USAR T. Se rá ne ce ssário o se u corre ct o acondicionam e nt para q ue e st s possam o e se r proce ssados e usados por M icroproce ssadore s. /*8-bit transmission*/ RX9 = 0. posição. h um idade . /*Espera 22us (definida em delay. void Sci_PutStr(const char* ). /*TX*/ TXEN = 1. o q ue f it e m m uit o acila o proj ct de h ardw are (cust e o o. q uím icos … A apl éct ). O s P ICs t êm AD Cs inb ut idas. prov nie nt s e e e e de se nsore s (t m pe rat e ura. unsigned char Sci_GetFERR(void).72uS delay_uS(22). ou se j os b it a.h) para carregar completamente Chold e depende da impedância da fonte do sinal. Est f a unção t m e q ue se r inv ocada ant s de q ualue r um a e q das out ras. unção para re sponsáv l pe l e a inicial ização da USAR T. icação P ara dim inuir os e rros ine re nt s à m e dição. e norm al e nt m e f az-se um a m édia de conse cut as lit iv e uras da AD C. grande s av anços ne st áre as de v m -se à as e const e e v ução e div rsif ant ol e icação dos se nsore s. // Function Prototypes: void Sci_Init(). Est as f unçõe s pode m se r usadas e m q ualue r part do código. e spaço. à e xce pção da q e Sci_Init f . al ongam e nt os. } e nt rada das AD C. pie zoe l ricos.*/ ADGO = 1. M as a m aioria de ls produz sinais e de am plude s it m uit o b aixas.t m a de capa e dos se nsore s é t v a q ue v de sde a ão ast ai m e dicina at à indúst é ria aut óv l O s om e . /*set the baud rate*/ SYNC = 0. unsigned char comma). /*RX*/ TRISC6 = 0. /*8-bit reception*/ TRISC7 = 1. consum o pot ência … ) void adc_read(unsigned char channel) // Lê uma entrada analóogica { ADCON0 = (channel << 3) + 0x81. /*high baud rate*/ SPBRG = 64. unsigned char Sci_CheckOERR(void). É ne st f a ase q ue e nt ram as AD Cs (Anal ogic t D igit o al Conv rt r) e e pois conv rt m e e sinais anal ógicos e m sinais digit ais. //Enable ADC No canal Cannel //Acquisition time = 19. pre ssão.

(3) TMR1H =0. } (10)else if (CCP1IF) { (11) TMR1ON=0. para q ue t nh am um a corre spondência com a e grande za m e dida. //return value } No caso do P 16f IC 877 e xist m 8 canais e para AD C (AN0. (12) CCP1IF=0. A t écnica do P M é m uit W o pode rosa para cont ar rol circuit os anal ógicos (m ot s… at és de circuit ore ) rav os digit (P ). (6) TMR1ON=1. … time = T1_10MSdutycycle*(T1_10MS/100). ais IC… P ara q ue e xist sincronização do P M a W com a re de (a m e nos de uns nanosse gundos de dif re nça) é ne ce ssário e q ue “o P saib a q uando é q ue e xist um a IC” e passage m por ze ro da t nsão de re de . f ndo uso do m ódul de e aze o P M e xist nt no P se rá: W e e IC. Ent um a possív l ina de at ndim e nt ão e rot e o às int rrupçõe s. Supondo q ue s se t m um sinalanal e ógico.AN7). adc_val=0.i++) { adc_read(TermCh). v ariáv l nt 0 e 5 v t garant e e re ol s. Est e e P M t rá um dut W e y-cycl v e ariáv l e e proporcional ao t m po de act e uação da re sist ência. int e e Assim de nt do program a.01% a 9 9 . cont o de pe rif e rol éricos num P … C O cont o do dut cycl do P M se rá rol y e W v ariáv l e (0. e <7> . I-D ). se f rat or ne ce ssário.t m a de capa e Assim . P P … P rol I. o e nch im e nt de ais o um a f a de e spe ra de um b uf e r de um il f rout r. para q ue o act uador ob e de ça aos re q uisit os. t m po sub ida. t com o. com os dados ro ob t idos das conv rsõe s da AD C.. e nt ão o P M t rá q ue e st W e ar sincronizado com a t nsão de re de . é ne ce ssário um de t ct e or de passage ns por ze ro. //espera pela conclusão da conversão adc_val +=ADRESH. ara q ue se possam usar e st s al e gorit os é ne ce ssário m conh e ce r a dinâm ica do sinal(ov rsh oot e . ão para 0Vt m -se adc_v = 0 e para 5Vt m -se e al e adc_v = 255. ADCON1=0x00. circuit o e sse im plm e nt e ado à cust de um sim pls a e t ransíst Est e v nt pode se r idênt or. while(ADGO). //left justified for(i=0. // duty_cycle em percentagem … void interrupt isr (void) { (1) if (INTF) { (2) TMR1L =0. O v or do dut e al y cycl e st e ará de pe nde nt de um al e gorit o m de cont o (ram pa. (7) CCPR1H= time>>8. idos pe l acondicionam e nt do sinal e nt o o . à e nt rada da AD C. } } void read_term(void) { unsigned char i. Est s v ore s t rão q ue se r al e al e t ados. (8) CCPR1L= time. (4) CCP1CON=0b00000000. (5) CCP1CON=0b00001000. (9) INTF=0. A AD C usada ne st e caso é de 8 b it = 2^8 = 256.9 9 % ) e de pe nde nt da e t m pe rat e ura (ne st caso). e e o ico a m uit out os ros. // formata o resultado } adc_val/=MEDIA. t m po e st e lcim e nt ). e e ab e o… pois os act uadore s t êm nat zas f ure ísicas dist as e re age m de m ane iras dif re nt s.i<MEDIA. No caso de se e st a act ar uar sob re um a re sist ência. cal a-se o e cul v or corre ct al o.

Com o a a e int rrupção e st a ocorre r no pino INT e á e nt ão a cada e v nt ge rado pe l Z CD e o o (ze ro cross de t ct e or) irá se r ge rada um a int rrupção. v o t r q ue e ist e cont ar v rol ários m e canism os (ABS. sab e ndo o t m po q ue o sinalde m orou a at e ingir o ob j ct e a v t (re fe xão).t m a de capa e (1) Te st a orige m da int rrupção. e (2)(3) Inicial o t e r1 a ze ro. e iv -P ara a m e dida de um a dist ância a q ue um rob ô e st de um ob j ct pode -se usar ul á e o. Conh e cida a vl e ocidade de propagação (de pe nde nt das condiçõe s do e m e io). ). e Conh e cido e st t m po o rob ô sab e rá a e e dist ância at ao ob j ct e t ará as de v é e o om idas pre cauçõe s. iv im age (7)(8) V or a se r com parado com o t e r 1 al im ao q ual rá ge rado um m at se ch (9 ) L pa o b it q ue indica a orige m do im int rrupt e . (6) Act a o t e r1 (início de cont m ). e st no corre ct á o cont o rol do com b ust e l usado ív na com b ust ão. P e o ol ar l ara o cál o cul de sse t m po pode -se . Est opt ização a im se rá f it pe l ce nt ina. após o l e ançam e nt do o ul t ra-som . Esse de spe rdício pode rá se r m e nsuráv là saída do m ot e or. (10)(11)(12) No caso de ausência de um e v nt no pino INT. O cál o da q uant cul idade usada. opt izar a com b ust im ão. q ue e m b ora se j e a a ral a um a unidade com plxa. iza im (4) Ne ce ssário para f r o re se t ao pino ccp. Assim . graças a um se nsor q uím ico q ue m e ça a q uant idade de com b ust e l pode r-se -á ív . e v a-se q ue o ccp e st j e o it e a inde f inidam e nt act o. pode -se cal ar a dist cul ância. é de pe nde nt de m uit f ore s. . iniciar a cont m num t e r e age im q uando se re ce b e r a re fe xão e nt l ão o de t ct e or irá ge rar um a int rrupção. aze pois é a única m ane ira de col ocar o pino a ze ro após o int rrupt e . (5) Conf igura o t e r 1 a f im uncionar e m com pare m ode e a cada m at o pino ccp é ch act ado (5v iv ). e st s de v -driv rs. com o a e os act conce nt ração de com b ust e lde spe rdiçado ív durant a com b ust e ão. pode rão se r il e ice e usados e m m uit apl as icaçõe s: <8> R icardo R och a . pode se r v a ist com o v ários m icroproce ssadore s e m parall e o… Concl usão Tirando os porm e nore s da int rf e ace com o ut izador.Nos aut óv is o se gre do da re l om e ação pe rf orm ance /e conom ia. t rasons. ESP … .

17 } 18 function getEmail(){ 19 return $this->email. l a 2 f de cl inh oi arada um a cl de nom e ass “Use r”. com o v or “gue st com o se pode al ” v r na l a 3. $obj->printNome(). e Com e çam os por criar a nossa cl ass. e st pe dido é f it ass e e o at és da se guint sint rav e axe O b j ct -> e o Mét odo. e Agora v j os com o usar a cl e am ass q ue criam os. 11 } 12 function getNome(){ 13 return $this->nome. 23 } 24 } 25 26 $obj=new User("guest". A e re f rência $ h is é ut izada para dize r q ue a e t il v ariáv la usar se rá a v e ariáv lde f e inida na cl m ais á f nt v os v r m e lor e st ass. 21 function getPass(){ 22 return $this->pass. 4 public $email. b e m com o e asse os se us const ore s. 20 } V os agora anal am isar o q ue f f it na oi e o. de st ore s e rut rut h e rança. na l a 5 é de f e inh inh inida a f unção print Nom e () q ue ao se r ch am ada irá im prim ir o v or da v al ariáv l“nom e ”. "123456"). Agora q ue j sab e m os com o criar um a cl á ass sim pls v os agora v r com o f e am e uncionam e para q ue se rv m os const ore s e e rut de st ore s de cl s. e adicionado não pre cisa de se r col ocado de nt do f e iro da cl ro ich ass. 5 public $pass. function printNome(){ print($this->nome). ?> Cl s asse Ne st art e igo v os ab ordar as t am ão t m idas cl s de ph p. 14 } 15 function printNome(){ 16 print($this->nome). para isso v os e scre v r o se guint código. V os t nt de m onst am e ar rar de um a f orm a sim pls e com plt e e a com o criar e ut izar as cl s e m il asse ph p (v rsão 5).a program ar 4 5 6 7 8 9 10 function printNome(){ print($this->nome). 6 7 function __construct($nome. 9 $this->email = $email.pt". $email. } } $obj = new User(). e q um t com o se t asse de um a v al rat ariáv l e norm al Na l a 9 se rá pe dido ao ob j ct . <9 > . ara am e 1 <?php 2 class User{ 3 public $nome. e ssa cl ass cont ém um a v ariáv l e “nom e ”. $pass){ 8 $this->nome = $nome. para isso adicionam os o se guint e código f ora da cl at nção q ue o código ass. } } ?> Com o pode m os v r na l a 8 v se r criado e inh ai at és do com ando ne w um ob j ct de rav e o nom e “ob j e st nom e pode se r q ualue r ”. "guest@pap. ass rav ude 1 2 3 <?php class User{ public $nome = "guest". 10 $this->pass = $pass. am e e 1 2 3 4 5 6 7 8 9 <?php class User{ public $nome = "guest". pode e at é de v se r col e ocado nout ro f e iro e ich im port ando a cl at és do incl . re e am e h a re f rência. rut asse P isso v os usar o se guint código. inh e o “ob j q ue e xe cut o m ét ” e odo print Nom e () de f inido na cl “Use r”.

“e m ail e “pass” v t r os v ore s ” ão e al “gue st “gue st ”. Basicam e nt o $ h is de v se r e t e ut izado se m pre q ue nos re f rim os a um a il e v ariáv l const e ou f e . function printNome(){ print($this->nome). q ue ao cont rário da f unção __const ruct e st é (). com as v ariáv is “nom e ”. ge t ail e ge t ass() q ue Em () P re t orna cada um um a v ariáv l da cl e ass. A cl asse “Sub Cl t m ace sso a t ass” e odos os ob j ct da e os cl asse “Cl rincipal A f assP ”. $mail = $obj->getMail(). ant unção de f inidas na cl ass. Com o pode m os e e v r nas l as 8. } } $obj = new SubClass(). 9 e 10 é ut izada a e inh il re f rência $ h is e o q ue o $ h is v f r e m e t t ai aze P uguês é dize r q ue a v ort ariáv l e nom e para a q ual l apont é a v e e a ariáv l cl e não e de ass as v ariáv is q ue f e oram dadas com o argum e nt os. O s asse asse ob j ct h e rdados pode m se r re de f e os inidos ou ut izados na sua f il orm a original at és da . P ara al ém da f unção __const ruct t m os () e t b ém a f am unção __de st ruct (). Não é possív l e r um a cl e t asse a h e rdar de v árias cl s. } ?> O ut part im port e é a h e rança. e odo __const ruct f de f () oi inido para re ce b e r t rês argum e nt os “nom e ”. não v os e nt a am rar e m m aior de t h e v o se r um m ét al ist odo de b aixa im port ância. ?> Com o pode m os v r é de f e inida um a cl ass “Use r”. } function printNome(){ parent::printNome(). Um e xe m pl e o: <?php class ClassPrincipal{ public $nome = "guest". ra e A f unção __const ruct () é e xe cut ada aut at om icam e nt q uando um ob j ct de e e o cl ass é criado. P m os t b ém v r um e xe m pl de ode am e o sob re carre gam e nt de f o unçõe s e m q ue se cria um a f unção com o m e sm o nom e do de f inido na “Cl rincipal e q ue v assP ” ai e xe cut a print ar Nom e () da “Cl rincipal assP ”. function printAll(){ print($this->email). Um a ra e ant cl asse pode h e rdar m ét odos e v ariáv is de e um a out cl ra asse usando a pal ra e xt nds av e na de cl aração com o pode m os v r a b aixo. @pap. $obj->printNome(). “e m ail e e ” “pass”. Nas l as 26 a 29 pode m os v r com o inh e ut izar e st cl prim e iro criam os o ob j ct il a ass. ém im prim ir o v or da v al ariáv l “m ail v e ”. } } class SubClass extends ClassPrincipal{ public $email = "guest@pap. $pass = $obj->getPass(). <10> Fáb io Corre ia . Est f inh a unção de v se r nom e ada da e f orm a com o se e ncont aq ui pre se nt . rav ut ização da cl il ausul pare nt para f a :: unçõe s e se l para v f :: ariáv is. ai t b ém im prim ir o v or da v am al ariáv l e “nom e ” com o e st de f á inido na “Cl rincipal assP ”. l as ” inh se guint s v m os com o ut izar os m ét e e il odos para re t ornar os v ore s das v al ariáv is de e cl ass. Agora a nov idade . a f unção __const ruct (). unção print l al () ut iza a f il unção print Nom e () de f inida e m “Cl rincipal assim print l para al de assP ” Al (). l a 7. e o com os v ore s dados ou se j na l a 26 v al a inh ai se r criado um ob j ct e m q ue as v e o ariáv is e “nom e ”. $obj->printAll().a program ar 27 28 29 30 31 $user = $obj->getNome(). Foram de f inidas duas cl s a cl asse asse “Cl rincipal e a cl assP ” asse “Sub Cl ass”. m as é possív lt r asse e e v árias cl s a h e rdar um a só cl . parent::printNome().”e m ail e “pass” e ” at uir e sse s v ore s às v rib al ariáv is de cl e ass de f inidas ant riorm e nt . t odo o código pre se nt e de nt de st f ro a unção se rá e xe cut ado q uando f criado o ob j ct ne st caso o m ét or e o. e Um a cl asse ape nas pode h e rdar de um a out cl ra assa. ou se j q uando é “apagado”.pt".pt e “123456”. a e xe cut ada q uando o ob j ct é de st e o ruído. Foram t b ém de f am inidos os m ét odos ge t Nom e ().

ossui al gum as se m e lanças com P h on e J a. window = Gtk::Window. Gt ::W indow ::TO P EV . com t odas as opçõe s norm ais.. Agora ane a am a e xpl icação de t h ada. b ib l e ca b ase do am b ie nt gráf iot e ico Gnom e .new( Gtk::Window::TOPLEVEL ) window.. e m b ora pouco usada. . b ase adas e m b ase de dados. por e xe m pl e ich k o.a program ar require 'gtk2' Gtk. P ara inst ar e st b ib l e ca al a iot conv ém se guir as inst ruçõe s da página of icial h t p://rub y-gnom e 2.show Aq ui é criada a j l principal sob o ane a . se m f izar o proce sso.source f : t orge . Exist m v e ários pacot s para dif re nt s e e e dist uiçõe s GNU/L rib inux e a possib il idade de com pil at és do código-f e . j incl al ia á uída e m al gum as dist uiçõe s. ar rav ont Escusado se rá dize r q ue é ne ce ssária a inst ação prév de R ub y. rib P e iro ire m os criar ape nas um a j l rim ane a. h yt av se ndo orie nt ada a ob j ct e os. de coraçõe s. nom e de w indow .new( Gtk::Window::TOPLEVEL ) window. O com ando se guint irá m ost e rar a j l no ane a e crã. O argum e nt passado à o f unção. A part de a ir agora pode m os com e çar a criar os ob j ct e os q ue irão com por o GUI. guardar o a f e iro com o gt . possui um grande pot ncial P e . b ordas. indica k L EL q ue a j l criada irá usar as ane a caract ríst e icas norm ais das j l do ane as am b ie nt gráf e ico.rb .j p.main R ub y + GTK 2 Int rodução à criação de GUIs Ne st art e igo ire m os dar um a pe q ue na int rodução à criação de GUIs. e scre v r na l a de com andos 'rub y e inh gt . R ub y é um a l inguage m de script ing ope nsource int rpre t e ada q ue .init Est com ando irá inicial a AP de m odo e izar I. M as a b ib l e ca pode se r iot inst ada nout al ros sist m as. inal Bast copiar o código acim a.show Gtk. Usare m os GTK 2 para a criação do GUI. al require 'gtk2' Est l a irá carre gar a b ib l e ca rub ya inh iot GTK 2. com o re dim e nsionar m inim izar. e m q ue ape nas f ch ar a j l não é possív l e ane a e . usando R ub y e a b ib l e ca iot GTK 2. dos sist m as e ope rat os iv GNU/L inux. Se t k udo corre r b e m . m axim izar. pode rão v r e um a j l de 200x200 de t anh o.init window = Gtk::Window. <11> . para pode rm os usar os se us m ét odos. ram e w ork de st inada à criação de pl af at orm as w e b . com o o e W indow s. a pre pará-l para se r usada. Ganh ou grande not il ab idade at és do R ub y on rav R ail um a f s.rb '. Gtk.

show window.signal_connect( "destroy" ) do destroy( window ) end button = Gtk::Button.main def delete_event( widget ) return false end def destroy( widget ) Gtk. Ape nas ne ce ssit am de sab e r q ue a f unção de lt _e v nt de v rá re t e e e e ornar f se .. il a window.new( Gtk::Window::TOPLEVEL ) window. ão window.set_default_size( 200. ar ane a.show Gtk.main_quit end Gtk.add( button ) button.main_quit end Est as duas f unçõe s irão pe rm it ir o e nce rram e nt e de st o ruição da j l ane a. 200 ) Est com ando irá de f e inir o t anh o da am j l para 200 por 200 pixe l Est ane a s.set_default_size( 200. ão. 200 ) window. a j l iria t ar o t anh o e ane a om am m ínim o do b ot q ue ire m os adicionar. O com ando se rá e scre v r or e “O l na l a de com andos. No e xe m pl se guint .a program ar Gtk. am e require 'gtk2' def delete_event( widget ) return false end def destroy( widget ) Gtk.. ire m os j criar um o e á b ot ão. e com ando é ne ce ssário de st v z porq ue .new( "Olá!" ) window. O re sul t ado de v rá se r se m e lant a e st : e h e e Est ch am ada irá indicará q ue o program a a irá e spe rar agora e re cole r t h odos os e v nt q ue ocorre re m . de al m odo a proce de r-se à de st ruição da j l ane a. a e se m e st .signal_connect( "delete_event" ) do delete_event( window ) end window. O program a á!” inh passará t b ém a e nce rrar se m prob lm as. e pe rgunt ao ar ut izador se de se j m e sm o sair. Est f a unção pode rá se r usada para e v ar it q ue a j l f ch e l ane a e ogo.init window = Gtk::Window.signal_connect( "destroy" ) do destroy( window ) end A f unção signal _conne ct pe rm it capt e urar um e v nt q ue t nh a ocorrido e m al e o e gum ob j ct Ne st caso o ob j ct o é capt e o. adicioná-l à nossa j l e o ane a e xe cut um com ando cada v z q ue e st ar e e f pre ssionado. e e <12> .signal_connect( "delete_event" ) do delete_event( window ) end window. e e iv urar os e v nt de f ch o e de st e os e ruição da j l e ane a ch am ar as f unçõe s ant riorm e nt criadas.signal_connect( "clicked" ) do puts "Olá!" end button.main At uam um nom e ao program a e corram rib no. com o o carre gar e os de um b ot o arrast da j l .

true.show Gtk. e os P ara t rm inar.main D e st a v z de f e inim os m ais al gum as proprie dade s da j ane l q ue são út is e m a. or o com ando put irá e scre v r na l a de s e inh com andos O l á!.main window. require 'gtk2' def delete_event( widget ) return false end def destroy( widget ) Gtk. m ost m e ram os os dois ob j ct e os criados no e crã e e spe ram os para q ue ocorram os e v nt e spe rados.new( "Olá!" ) window.show Gtk. a e b ot ão.pack_start( text. adiciona o b ot criado à nossa j l ão ane a.a program ar button = Gtk::Button. Se m pre q ue f pre ssionado. para v rif e icarm os q uando e st é e pre ssionado. ab . ne st úl o e xe m pl irá e e t im o de m onst rar o uso de caixas para cont r e e organizar div rsos ob j ct e o uso de um e e os nov t o ipo de ob j ct o L e l e o. button. 200 ) Criam os um ob j ct do t e o ipo But on.init window = Gtk::Window. O re sul t ado de v rá se r e se m e lant a e st : h e e <13> .show window.show window. e m uit os casos.pack_start( button.add( box ) button = Gtk::Button.show box. button.signal_connect( "destroy" ) do destroy( window ) end box = Gtk::VBox. true.signal_connect( "clicked" ) do puts "Olá!" end window. com a t e t ue t de O l O com ando a se guir iq a á!. true. 5 ) button.new( "" ) button.main_quit end Gtk.label = "Olá!" end Final e nt . 0 ) Usam os nov e nt am e a f unção signal _conne ct m as de st v z com o nosso .border_width = 5 window.title = "Hello World" window.new( Gtk::Window::TOPLEVEL ) box.new( false.add( button ) window.set_default_size( 200.show text.new( "Cumprimentar" ) text = Gtk::Label.signal_connect( "delete_event" ) do delete_event( window ) end window. 5 ) box. true.signal_connect( "clicked" ) do text.

label = "Olá!" end Criam os o ob j ct de t e o ipo L e l se m nada ab . a ida. e o o f orne cido. usando a f unção pack _st . true.new( "" ) button. 0 ) window.pack_start( button. e m pixe l e os e re s. Est t e ical e ipo de caixas organiza os ob j ct e os q ue cont êm v rt m e nt .add( box ) Agora adicionam os o b ot e a e t ue t à ão iq a caixa. se m dúv rib os. pode rão ir ao sit of e icial (h t p://rub yt gnom e 2.signal_connect( "clicked" ) do text. O se gundo argum e nt de f o ine o e spaçam e nt o q ue os ob j ct irão t r e nt si. de m odo e os e a q ue a caixa ocupe o m áxim o de e spaço possív lO t rce iro argum e nt f e . ane a e ob j ct de nt da caixa. O se gundo com ando de f ine um a b orda int rna de 5 pixe is. true. <14> Sérgio Sant os .pack_start( text. e m pixe l à v t e o e e s. O se gundo com ando adiciona a caixa à j l Assim a j l pode rá cont r ane a. cont rário de pack _e nd. um a caixa v rt . ância a q ue os ob j ct se de v rão e ncont e os e rar da b orda e xt rior da j l e ane a. e nq uant as H Box o f m e ical e o aze h orizont m e nt .title = "Hello World" window. O se gundo argum e nt indica se o os ob j ct de v rão e xpandir-se . ao ro. ou ape nas por e spaçam e nt o. Se f icaram int re ssados pe l e xe m pl q ue v e os os iram . true. 5 ) window. Criam os um ob j ct do t e o ipo V Box. e o unciona se o se gundo f v rdade iro. prim e iro argum e nt indica o ob j ct a o e o adicionar. e de f or e ine se o e spaço ganh o pe l e xpansão da caixa a de v rá se r ocupado pe l ob j ct e os e os. ou se j a. e com os re st e s ob j ct ant e os da caixa. true. ol a de l. e ro E aq ui t rm ina e st int e a rodução à criação de GUIs usando o GTK 2. e scrit com o pode m v r pe l argum e nt o. um a das m e lore s e m ais sim pls b ib l e ca para a h e iot criação de GUIs. O q uart e o úl o argum e nt de f t im o ine o e spaçam e nt o q ue o ob j ct de v rá t r. ít o. de nt da caixa. box = Gtk::VBox. e os ro text = Gtk::Label. Est art a f unção v adicionando os ob j ct um a ai e os se guir ao out pre e nch e ndo a caixa.j p) e procurar m ais inf orm açõe s sob re dif re nt s ob j ct e os e e e os se us at ut Est é. O prim e iro argum e nt al e o de f ine se o e spaço q ue cada ob j ct irá e o ocupar de v rá se r h om ogéne o ou não.border_width = 5 O prim e iro com ando de f ine o nom e da j l q ue irá apare ce r na b arra de t ul ane a. para e scre v r al na e t ue t q ue criám os: O l e go iq a á!. q ue f o opost O az o.a program ar box.source f orge .new( false. D e pois al ram os o com ando q ue t e ocorre q uando o b ot ão é pre m ido. 5 ) box. ou se j a dist e a.

ada a ob j ct e e os a e v nt q ue ace de do D O M do b row se r. e os É um a l inguage m inde pe nde nt e da pl af at orm a onde corre . .ge rar cont údos dinâm icos. av possív l odif e m icar dinam icam e nt os e st os e il das páginas. Á sua união com o CSS ch am a-se de D H TML assim usando o J aScript é . A l inguage m Act ionScript da Macrom e dia b ase ia-se no st andard do J aScriptcriado pe l ECMA. P e ncial ot idade s do J aScript a t r av e e m cont a: . . Assim . e ut ização w e b b ase d por Bre ndan Eich da il Ne t scape e m 19 9 5. e . P P Foi criada para t r um a av H . com o principal propósit o de pe rm it ir um a int ract idade e iv supe rior à q ue se conse guia com o H TM L e para at nde r e principal e nt às se guint s ne ce ssidade s: m e e .é rápida por se r int rpre t e ada no b row se r. t de si: a a O J aScript é um a l av inguage m e m b e b ida no se io do H TM L é orie nt . V age ns ant J aScript av : da ut ização il do -f ácil apre ndizage m .v idar f al orm ul ários. Est ura dos rut J aScript av program as em O J aScript é norm al e nt inse rido e m av m e f e iros H TM L e é col ich ocado de nt das ro m arcas <script </script > >. e . D e v aos e ) ido b row se rs t re m e DO M dif re nt s e e é ne ce ssário conh e cê-l os e spe cif icam e nt . e daí v m as div rsas im plm e nt e e e açõe s do J aScript av . . . J aScript av Int rodução J aScript é um a l av inguage m m uit sim pls o e e de f ácil apre ndizage m . . para um a b oa program ação e m J aScript é av ne ce ssário conh e ce r o D O M (D ocum e nt O b j ct Mode lde cada b row se r.Int ração com a página. P ossui um a sint axe (f orm a de e scrit se m e lant ao a) h e J a.o código pode se r f m e nt copiado pois acil e f e xpost ica o. É um a l inguage m q ue não é com pil e é int rpre t ada e ada pe l o b row se r. C. O código t m de e st ou e nt as t e ar re ags <h e ad> </h e ad> ou e nt as t re ags <b ody> </b ody>. f f it e oi e a com o um a l inguage m de script .0. <15> .não é um a b oa f rram e nt para int ragir e a e com b ase de dados. Assim .a program ar O s re cursos b ásicos para q ue m q ue r program ar e m J aScript são um e dit de av or t xt sim pls para e scre v r o código e um e o e e b row se r para o t st e ar.é m e nos v rsát q ue out e il ras l inguage ns ge néricas.e xist m m uit re cursos na Int rne t e os e .re agir conf orm e as acçõe s do v ant . Exist m e v árias im plm e nt e açõe s J aScript com l iras dif re nças e nt av . isit e . . e pode ndo ace de r a ob j ct e os. D e sv age ns ant J aScript av : da ut ização il do A principalcaract ríst do J aScript é a e ica av f orm a com o int rage com o b row se r. a im plm e nt e ação da Ne t scape e im plm e nt e ação da M icrosof .criar e f it gráf e os icos.V idação de f al orm ul ários e m cl ntside . b ase ando-se e m ob j ct e os. com o um a e xt nsão e para o b row se r Nav igat v or 2. ie . C+ + . ige e re o st andard de f inido pe l ECM A.não e xige re cursos se rv r side . av a .ge rar código H TM L .

por um a q ue st de ão organização. e undido com um a v ariáv lnão inicial e izada. conv ém col ocar código de nt ro de um com e nt ário pois e st não se rá l e ido.de v se r inv e ocado a part de um ir f e iro H TM Lcom a se guint f ich e orm a <script src= " oTal e rno.a program ar Q ue st s de Sint õe axe O J aScript é se nsív l a m aiúscul e av e as m inúscul de st f as. t e al <16> . ai ar e Todas as inst ruçõe s de v m t rm inar com e e um pont e v o írgul (. M ode l o de D ocum e nt o O b j ct e os do Fich e iros Ext rnos e Q uando é pre t ndido ut izar um código e il por v árias páginas ou. O s num éricos com o o l ine nom e indica pode m arm aze nar v ore s al int iros e com pont fut e o l uant e pode m e f r part de ope raçõe s de arit m ét aze e e ica com o a som a. t e l ab as. daí ram if ane a ica-se e m parágraf os. O s v ore s l al ógicos ape nas pode m arm aze nar dois v ore s o t al rue (v rdade iro) e o f se (f so). os l ógicos. O J aScript pe rm it ace de r de um a f av e orm a dinâm ica aos v ários ram os.a e xt nsão do f e iro t m de se r . o nul e o unde f d. com o m ost o e xe m pl ra o: <html> <head> <title>Inserir código seguro</title> </head> <body> <script type="text/javascript"> <!-document. t nh a e m inh e at nção q ue os com e nt e ários v ão se r ignorados pe l J aScript por isso não o av . as st rings.j e ich e s 2 . al rando os se us v ore s. a sub t racção. a m ul icação t ipl e a div isão. al l são v ore s e spe ciais. em f orm at de árv . re pre se nt um al a ob j ct nul não de v se r conf e o o. e nt re out ros. por isso de ixar e spaçam e nt é ape nas um a o q ue st de e nt ndim e nt pois o J aScript ão e o av não v not dif re nças. pois o v or nul e xist e e xist e m m e m ória. O s v ore s e al al al st rings são cade ias de caract re s. a raíz é a j l do b row se r. D e st f o ore a orm a. é possív l e conv nie nt e e e col ocá-l num f e iro e xt rno q ue de v o ich e e O D O M (D ocum e nt O b j ct M ode l de um a e ) página é um a re pre se nt ação h ie rárq uica. lndo-os e . inicial e nt t m e odas as v ariáv is se e ncont e ram ne st e st e ado.write("bla bla bla") Tipos de dados Exist m v e árias possib il idade s de t ipos de dados e m J aScript e nt e ls de st av re e acam se os num éricos. O s e spaços não pre e nch idos são ignorados. f orm ul ários. Se pre t nde q ue o script q ue e st e r a e iv de se nv v r e m ole J aScript só av se j a apre se nt ado na página caso o b row se r e m q ue st e st j b e m conf ão e a igurado e suport e J aScript col ue o se u código de nt de av oq ro '<!--' e '-->'. a ). a orm a e scre v r 'Nom e ' e e 'nom e ' não é a m e sm a coisa e v se r l ão idas com o inde pe nde nt s um a da out e ra.de nt do f e iro e xt rno não se de v ro ich e e incl a t <script ne m a t </script uir ag > ag > D e st f a orm a um f e iro e xt rno de v t r ich e e e e st f a orm at ação: document. se e ne ce ssário. O al l e e v or unde f d signif al ine ica q ue a v ariáv l e não f oi criada. P ara inse rir com e nt ários pode e scre v r e nt e re os de l it im adore s '/*' e '*/' ou e nt ão '//' e e scre v r at ao f e é im da l a. É aconse láv l de sde o início a col h e ocar com e nt ários no código para o t ornar de m ais f ácil lit e ura e e dição.j ></script Ext s" > 3 . o m aior e núm e ro q ue um a st ring pode cont r e de pe nde do b row se r e m q ue st ãoe os v ore s st al rings são de l it im ados por apóst e (') ou por aspas(" V ore s nul rof ).write("bla bla bla") //escreve bla bla bla na página --> </script> </body> </html> se guir as se guint s re gras: e 1 .

assim é e possív lt e ornar a página m ais at ract a e iv m ode l ada para cada ut izador pois não il apre se nt t a udo m as só o q ue o ut izador il pre t nde . O D O M do IE im plm e nt as ore e a re com e ndaçõe s do W 3C m as é m ais v o ast q ue e st . P l o e o il e o sist m a q uando re sul e t am do f o de act carre gar ou de scarre gar um a página.bgColor='yellow'. az ane a de av no ce nt do e crã q uando a página iso ro é carre gada q ue m ost um a m e nsage m .">Fundo vermelho<br> <input type="radio" name="campo" onclick="skin2(). } function skin2() { document. o da Ne t scape e o do Int rne t e Expl r. } --> </script> </head> <body onload="entra(). e As f unçõe s só são e xe cut adas no m om e nt o e m q ue e st são inv as ocadas.">Fundo amarelo<br> <input type="radio" name="campo" onclick="skin4(). de st f e il a orm a só são inv ocados por acção de st . } </script> </head> <body> <form name="cores"> <input type="radio" name="campo" onclick="skin1(). ra " m v Be indo. } function skin4() { document. e <head> <script language="Javascript"> function skin1() { document.. O s e v nt e os pode m se r produzidos de duas f orm as: pe l sist m a ou pe l ut izador. oad am e Ev nt e os O Jav aScript é um a l inguage m orie nt ada principal e nt a e v nt m e e os e ob j ct e os.. " nt e ra()" f surgir um a j l . e st s são os e e xe m pl m ais com uns ape sar de e xist m os ire m uit m ais.alert("Bem vindo").bgColor='#FFFFCC'. <17> . unção (f unct ion).">Fundo amarelo<br> </form> </body> Ev nt do Sist m a e os e Um e xe m pl de re spost a e v nt do sist m a: o a e os e <html><head> <script language="JavaScript"> <!-function entra(){ window. } function skin3() { document.bgColor='green'.</p> </body></head> No <h e ad> de f m -se duas inst ine ruçõe s. por isso as f unçõe s pre se nt s no e xe m pl 3 só são e o e xe cut adas no onl oad do b ody e no onunl do b ody re spe civ e nt . unção (f unct ion). } function sai(){ window.bgColor='red'. o da W 3C.">Fundo verde<br> <input type="radio" name="campo" onclick="skin3(). e xe m pl de um a re accao a um o e v nt do sist m a" Na se gunda f e o e . a " nt e ra()" e a " sai()" Na prim e ira f . os Ev nt de ut izador e os il O s e v nt e os pode m se r ut izados para il int ragir com o ut izador. az ane a av iso q uando se sai da página com a m e nsage m " ol se m pre " V t e . at és de sob re por o rav rat ou carre gar num b ot o ão. " sai()" f surgir um a j l de . pe l o ut izador na m e dida e m q ue pode int ragir il e com as suas acçõe s.alert("Volte sempre")." onunload="sai().a program ar Exist m v e ários st andards dos D O M."> <p>Texto da página.

sw it ). e os O e ore D e cl aração de V ariáv is e É possív lde cl e arar um a v ariáv lde duas e f orm as m as só ire m os ab ordar um a de l a as. é D e se guida v se r m ost ai rado um e xe m pl o de m anipul ação de v ariáv is: e <html><head></head> <body> <script type="text/javascript"> var mensagem="Aqui está a mensagem". </script></body></html> var nome. w h il. av .write( "<p>"+mensagem+"</p>"). 2. na q ual ist v os am ab ordar ope radore s. A part daí al de lt ir ém e ras.a program ar Ne st e xe m pl o v ant da página pode e o isit e e scole r q ue cor q ue r dar ao b ack ground. q ue consist e m ut izar um a il e il pal ra re se rv av ada " ar" Um a v v . f unçõe s. se u cont údo é " e unde f d" ou NaN (Not a ine Num b e r). ant unde f d e nulde v m se r e scrit se m pre ine l e os e m lt m inúscul Se um a v e ra as. e e port o. b rak e ). m ais ut izada. caso e st j e a num cont xt e o num érico. e e cont inue . e e J aScript é se nsív l a m aiúscul e av e as m inúscul ou se j lt as. e ras m inúscul e as m aiúscul as são dif re nt s. a se gunda part sairá e e na próxim a e dição da re v a. program ação orie nt ada a ob j ct (P O ) e v ct s. e q ue acab aram de lr. e o e V ariáv is e V ariáv l um a posição de m e m ória onde é e é possív larm aze nar ce rt inf e as orm açõe s. As v ariáv is são re pre se nt e adas por nom e s de nom inados ide nt icadore s q ue t if êm um a e st ura de f rut inida: 1. <18> J oão P re ira e . e o e com o pode rá v r no e xe m pl se guint . inst ruçõe s condicionais (if . D e st f h a orm a é m ost rado um a f orm a de o J aScript av int ragir com o v ant .write(mensagem). document. do-w h il. " " pode $ cont r dígit e os(0 at 9 ). var pais="Portugal". Concl usão Ne st prim e ira part do art a e igo de J aScript av f oram ab ordados t m as b ásicos e iniciais da e program ação com J aScript No e nt o. ariáv l é e de cl arada ape nas. ant não f icam os por aq ui pois de v ido à grande e xt nsão do art e igo. D e v m iniciar ob rigat e oriam e nt por um a e lt ou pe l sím b ol " " e ra o o $. var idade. com o com ando " ar" o v . ariáv lq ue e não t nh a sido inicial e izada. h No e nt o se o ut izador sair da página a ant il sua e scola se rá pe rdida. e isit e D e cl arar um a v ariáv l é m uit sim pls. //define a variável mensagem document. a. e é ant e Tipos de V ariáv is e Em J aScript não é ne ce ssário indicar o av t ipo de v ariáv l e com a q ual v t alar se ai rab h de v ido às v ariáv is e m J aScript pode re m e av arm aze nar dif re nt s t e e ipos de dados. ch inst ruçõe s it rat as (f e iv or. possui o v or al de " unde f d" e t nh a e m at nção q ue o ine . e st v se r div e ai idido e m duas part s um a de l A prim e ira part é a e as. Com o pode ob se rv no e xe m pl ant rior ar o e de cl arar um a v ariáv l b ast e sim pls.

al ot e os razão pe l q ualé indicada com o prim e ira a posição. a. Um re e dos inconv nie nt s na e e ut ização do P se rv .nom e Array(0) – P e ira posição rim .t orial ut Ex: Dim nomeArray(. podia-se de f inir se a posição 0 ou 1 se ria a inicial . Um array é am e const uído por um nom e e por um it núm e ro. m ais im port e s e st uras de dados e ant rut t b ém um a das m ais sim pls. Q uando t alam os com arrays. a posição 0. ao cont rário do q ue acont cia no V e B6. . ut izam os o R e D im . <19 > . m e im P ara pode rm os m ant r e ssa inf e orm ação. P ara f rm os e st aze a ope ração. no ist caso de se r uni-dim e nsionalou um a m at . por v ze s rab h e v m o-nos ob rigados a re dim e nsiona-l pois e o. num e ro t al e lm e nt – 1. "elemento4"} 'Declara o array e atribui valores' . de nom inado de índice .Uni-dim e nsional D im nom e Array(num e ro t al ot de e lm e nt – 1) as Tipo de D ados e os Ex: Dim nomeArray(3) As String 'Declara o array com 4 elementos' OU Dim nomeArray() As String = {"elemento1". Um array de cl arado com o nom e Array(9 ) irá suport ar 10 posiçõe s.nom e Array(índice ) . riz no caso de se r b i-dim e nsionale é um a das . O q ue o R e D im f é apagar o az array act uale criar um nov array com as o de f iniçõe s indicadas no R e D im . e t as Tipo de D ados ot de e os c) (num e ro t al e lm e nt – 1) – t rá q ue ot de e os e se r o v or t alde e lm e nt m e nos 1. O R e D im é il usado para al rar o t anh o de cada t e am dim e nsão do array. 10) As String 'Array com duas dimensões de 10x10' ReDim nomeArray(10. Dim nomeArray(10. "elemento3". 15) 'Redimensiona o array para 15 elementos na 2ª dimensão' D e cl aração de arrays . t rm os de usar j am e nt com o R e D im . 10) As String 'Array com duas dimensões de 10x10' . m as nunca pode al rar t e o núm e ro de dim e nsõe s ou t ipo de dados do m e sm o. é q ue ape nas pode rá il re e se r al rada a ul a dim e nsão do array.NET 3ª P e art Arrays Um array é conh e cido com o um a l a. não pode m os de f inir um a dim e nsão f ixa para o m e sm o.NET. a prim e ira posição do array é se m pre no índice 0.nom e Array(Ub ound(nom e Array)) – Úl a posição t im OU Dim nomeArray(10. num e ro ot de e os t al e lm e nt – 1.Bi-dim e nsional D im nom e Array(num e ro t al ot de e lm e nt – 1. t e t im t ndo q ue m ant r o núm e ro de e lm e nt e e e os das out ras. num e ro t al e lm e nt e os ot de e os – 1) as Tipo de D ados Com o o array act ual é apagado. t oda a inf orm ação cont ida é igual e nt e l inada.Mul t i-dim e nsional D im nom e Array(num e ro t al e lm e nt ot de e os – 1. Em V B. o e unt e P se rv . "elemento2". ou se j de 0 a 9 .) As String V isual Basic.

ro <20> . ém Inde xO f Re t orna o índice da prim e ira ocorrência de um v or e m um array de um a dim e nsão. Init ize ial Inicia cada e lm e nt de um array e o ch am ando o const or padrão. Ge t Type (h e rdado de O b j ct e ) Ge t Uppe rBound (Eq uiv e ao al UBound do V B6) O b t o t da inst ém ipo ância act . ToSt ring (inh e rit d f e rom O b j ct e ) Re t orna um a st ring q ue re pre se nt o a ob j ct act . para f se ou para nul al l . Ge t e ngt L h P roprie dade s IsFixe dSize Indica se o array t m um t anh o f e am ixo. Eq ual (h e rdado de O b j ct s e ) O s arrays possue m com o q ualue r out q ra cl asse do V B. L ngt e h O b t o t al e lm e nt e m t ém ot de e os odas as dim e nsõe s do array. R e v rse e Inv rt a orde m dos e lm e nt de um e e e os array de um a dim e nsão. 10) 'Redimensiona o array para 15 elementos na 1ª dimensão e mantem a informação armazenada' Inicial um a nov inst iza a ância da cl asse array. Copy Copia a se cção de um array para out ro array e re al o cast iza ing e o b oxing re q ue rido. O b t o num e ro de e lm e nt de um a ém e os dim e nsão e spe cif icada de um array. e o ual (inf orm açõe s re t iradas de w w w .m acorat i. rut Mét odos Clar e D e f o int rv o dos e lm e nt de um ine e al e os array para ze ro. Se t al V ue D e f o e lm e nt e spe cif ine e o icado e m um array para um v or de f al inido. Cl one Cria um a copia do array. R ank O b t o núm e ro de dim e nsõe s do array.NET um conj o de m ét unt odos e proprie dade s. al SyncR oot O b t um ob j ct q ue pode se r usado ém e o para sincronizar o ace sso ao array. Ge t ow e rBound L O b t o m e nor índice inf rior da ém e dim e nsão e spe cif icada e m um array. D e t rm ina se duas inst e âncias de ob j ct e os são iguais.t orial ut Cre at Inst e ance ReDim Preserve nomeArray(15.ne t t ) CopyTo Copia t odos os e lm e nt de array de um a e os dim e nsão para out array. ual IsSynch ronize d Indica se o ace sso ao array é sincronizado (t re ad-saf ). Sort O rde na os e lm e nt de um array de um a e os dim e nsão. Ge t al V ue O b t o v or de um e lm e nt de f ém al e o inido no array. h e O b t o índice supe rior da dim e nsão ém e spe cif icada num array. IsR e adO nl y Indica se o array é som e nt lit e e ura (re adonl y).

Caso e xist dá um e rro. UNICO D E. inido o m odo de ab e rt ura do f e iro. Com o os dados e st re e ão arm aze nados em b uf e rs f e não dire ct e nt no f e iro. ASCII. Com e st cl re e a asse pode m os e scre v r num f e iro usando e ich v ários t ipos de codif icação (UTF-8. e t c). e para isso usam os o ich FilSt am . aze t m os disponiv is as cl s para a e e asse m anipul ação de f e iros. P f r a lit ich ara aze e ura de um f e iro ire m os re corre r à cl ich asse St am R e ade r.txt" 'Abre o ficheiro' 'Modo = Abertura | Tipo de Acesso = Leitura | Acesso de outros processos = Leitura' Dim fs As New FileStream(strFicheiro.ReadLine() End Sub End Module P m anipul os um f e iro.Close() Console.NET re corre m os q uase se m pre às cl s do Syst m .Read. aze e Import System. Caso não e xist o f e iro im a ich e nt cria um nov ão o. Truncat e Ab re o f e iro e re m ov t ich e odo o cont udo. Imports System. Escre v r um f e iro e ich P ara e scre v r num f e iro ut izam os a e ich il cl asse St am W rit r.IO L r um f e iro e ich Após f rm os o im portdo nam e space IO . se não cria um nov o.FileMode. e para isso. ou e nt o m ét ich ão odo Cl para q ue ose f orçe a e scrit e f ch e a st am . e <21> . ou se j se ich a. Cre at e Ab re o canal para e scrit ou lit a e ura e e scrit a e apaga o cont údo caso o f e iro e xist e ich a. Est cl re a asse possui m ét odos com o o R e adL (pe rm it -nos lr o f e iro ine e e ich l a a l a).ReadToEnd) 'Liberta o ficheiro' sr.IO . ich e ir. a e re Cre at Ne w e Cria um nov f e iro para e scrit o ich a.IO Module Module1 Sub Main() Dim strFicheiro As String = "C:\ficheiro.FileAccess. ant s ara arm ich e ne ce ssit os de criar um canal am para e sse m e sm o f e iro.Open. Dim ficheiro as New FileStream (Nfich. O s m ét odos W rit e e W rit l são os ut izados para a e scrit e ine il a e m f e iros. Caso não e xist dá um e rro. O FilSt am pe rm it -nos e nt e re e re e ão a criação de sse canale pode rá se r de f .Write(sr. O e FilMode é const uido pe l se guint s e it os e m e m b ros: Appe nd Ab re o f e iro para e scrit e posiciona-se ich a no f do m e sm o. FileAccess. o R e adToEnd (pe rm it -nos lr inh inh e e o f e iro do se u inicio at ao f e carre gáich é im l num a v o ariav l ob j ct e nt out e ou e o). FileMode. a O pe nO rCre at e Ab re o f e iro se e l e xist se não cria-o. de v -se inv am e ich e ocar o m ét odo fush para q ue se j e scrit no l a os f e iro. O Fl e o Cl são t b ém ich ush ose am m ét odos im port e s ant da cl asse St am W rit r.Read) 'Carrega o stream no StreamReader' Dim sr As New StreamReader(fs) 'Imprime o conteudo do ficheiro no ecra' Console. t m os asse e e q ue f r o im portde st . FileShare.FileShare) P indicarm os o m odo de ab e rt ara ura do canal il ut izam os o e num e rador FilMode . re ros.t orial ut Fich e iros P ara t alarm os com f e iros e m rab h ich V B. a O pe n Ab re o f e iro para e scrit ou lit ich a e ura e posiciona-se no inicio do m e sm o. irá se r de lit e ura e /ou e scrit a.

Irão se r ab ordadas nov cl s com o D ire ct as asse ory.. q ue v os irão pe rm it um ir m aior cont o e int racção sob re os rol e v ossos f e iros. FileShare.Open.. FileMode.NET. e t e P h . FilInf e o.Close() Console.. FileAccess.t orial ut Imports System. .IO Module Module1 Sub Main() Dim texto As String 'chama a funcao para ler o ficheiro' ler_ficheiro() Console.Read) 'Carrega o stream no StreamReader' Dim sr As New StreamReader(fs) 'Imprime o conteudo do ficheiro no ecra' Console. FileShare. et at c.Read. Não pe rcam a próxim a ich e dição.Close() End Sub End Module <22> Tiago Sal gado & M arce l M art o ins Na próxim a e dição ire m os cont inuar e st e t orial O t m a da próxim a e dição ut .txt" 'Abre o ficheiro indicado na variavel com os atributos' 'Modo = Adicionar | Tipo de Acesso = Escrita | Acesso de outros processos = Leitura' Dim fs As New FileStream(strFicheiro.Write(sr. D ire ct oryInf o.WriteLine() Console.ReadLine() End Sub Private Sub ler_ficheiro() Dim strFicheiro As String = "C:\ficheiro.ReadLine Console.WriteLine("Insira um texto para adicionar ao ficheiro:") texto = Console.ReadToEnd) 'Liberta o ficheiro' sr. e cont inuará a se r m anipul ação de f e iros e m V ich isual Basic.Write. FilA t rib ut s.WriteLine() End Sub Private Sub escrever_ficheiro(ByVal texto As String) Dim strFicheiro As String = "C:\ficheiro.WriteLine() Console.WriteLine() sw.txt" 'Abre o ficheiro indicado na variavel com os atributos' 'Modo = Abertura | Tipo de Acesso = Leitura | Acesso de outros processos = Leitura' Dim fs As New FileStream(strFicheiro.Clear() 'chama a funcao para escrever no ficheiro o texto inserido' escrever_ficheiro(texto) 'imprime no ecra o ficheiro ja actualizado' ler_ficheiro() Console. FileMode.Append. FileAccess.Read) 'Carrega o stream no StreamReader' Dim sw As New StreamWriter(fs) 'Escreve no ficheiro o texto inserido pelo utilizador' sw..Write(texto) sw.

t ria q ue se r o próprio ut izador a e il e xe cut o v ar írus. t ndo a m aioria dos out h e e ros dire ct órios pe rm issõe s re st iv à e scrit e rit as a. o 1 l iv igado/pe rm issão act a. O 0 signif de sl ica igado/pe rm issão não act a. ao grupo. t e O sist m a de e pe rm issõe s de m onst rado num a t e l ab a: pode se r Se gurança e m sist m as GNU/L e inux Int rodução M uit ge nt pe rgunt a si m e sm a porq ue é a e a q ue “aq ue ls t e ipos dize m q ue GNU/L inux é m ais se guro? Ne st art ”. pode ndo e st se r de f as inidas conf orm e o de se j ado. e scrit e e xe cução e t a rês grupos. é f it ao nív ldo sist m a de pe rm issõe s. P ara um e v nt e ualv írus at acar um de st s e sist m as com v a a f r q ualue r t e ist aze q ipo de e st rago. P ode m os dar pe rm issõe s para o v izinh o do l ado v r os e m e us f e iros. m as ainda assim b ast e e f e ant icaz. o 'w ' a e scrit e o 'x' a a e xe cução. ich m as t b ém am dar pe rm issõe s para out ro v izinh o não v r e nada. se q uisésse m os t r um f e iro com pe rm issõe s e ich t ais para o dono do f e iro. O 'r' iv sim b ol a lit iza e ura.gnu/l inux ut izador. o único dire ct il ório no q ual um ut izador norm al e m pe rm issõe s t ais. as e scl çam . P ara se pe rce b e r m e lor o sist m a de pe rm issõe s h e conv ém se parar cada grupo de t rês b it s indiv idual e nt . e aos “out ich ros”. de st f a orm a à al ração ou re m oção. e e am b os b ase ados no Unix). apre se nt os a ácil am t b ém um a t e l de conv rsão de am ab a e b inário para de cim al : b inário 000 001 010 011 100 101 110 111 de cim al 0 1 2 3 4 5 6 7 <23> . e e are A t e l de m onst e xe m plica o sist m a de ab a ra if e pe rm issõe s. e pe rm issão ot ich de lit e ura e de e xe cução t o para o Grupo ant com o para os out t ria-m os al com o: ros e go P rm issõe s e O cont o de se gurança m ais b ásico do rol sist m a. q ue t m o m e sm o sist m a. na q ual h á v ários t ipos de ut izadore s il com v ários t ipos de pe rm issõe s. m e D e st a f orm a. e ainda assim (caso e m m odo não-root o único e st ) rago q ue de v ria re sul e t ar da e xe cução se ria a possív l rda dos f e iros da H O M E do e pe ich P ara q ue se j m ais f . Est as pe rm issõe s corre sponde m a t rês grupos de 3 b it cada b it corre sponde ndo à s. Ist é m uit im port e e é e st um a o o ant a das razõe s pe l q ual um v a írus não se e spala f m e nt e m GNU/L h acil e inux (t al com o e m M ac. lit e ura. e igo pre t ndo q ue e pe ssoas q ue nunca usaram GNU/L inux e q ue t nh am dúv e idas e m re l ação à se gurança de st sist m a. v o il t ot ist q ue le pe rt nce . e (do f e iro). de sse s t ais t rês b it re f rindo-se ao dono s. e o e e Est as consist m e num a e st ura rut h ie rárq uica.

por f . A f w al il rar e ire l m ais usada é a ipt ls . a orm a se q uise sse m os de f inir o t f e iro com as pe rm issõe s j re f ridas. . É aconse lado h b l ue ar as port ab aixo de 1024 porq ue oq as e st e xe cut as am se rv iços q ue ut izam o m odo il de root O s se rv . Um a Fork Bom b rot ra é um a f orm a de e xe cut um D oS (D e nialof ar Se rv ). e <24> J l am os oe R Ist pre v o ine os ut izadore s de t re m m ais de il e 150 proce ssos a corre r e m ost um av se ra iso 100 proce ssos e st e re m a corre r. e -Conf igure a f w al de um m odo re st iv ire l rit o. P a inh acil e assw ord’s de sse t ipo são por e xe m pl a dat de nascim e nt o o a o.Todos os com ando t de se r e xe cut êm ados “as root caso os f e iros aos q uais se v ”. um at ue q ue sob re carre ga o ice aq sist m a e q ue f e az a m aq uina andar e xt m am e nt lnt É díf re e e a. O ut ra m ane ira. ich ai e dit a t e l de pe rm issõe s não t nh am ar ab a e pe rm issõe s t ais para o use r e m q ue st ot ão. D NS. e il . É ape nas um iv e xe m pl o. e Ent ão. usou-se o ch m od at 755. L AP SMTP R CP X-W indow de v m D . prot ge r os se rv e iços q ue e st j e am a corre r e f t pacot s.O ~ / re f re -se à h om e do ut izador. o r v e 4. O h ack e r pode usar a m áq uina da v im a para se prot ge r e l ít e ançar o at ue a part dout m áq uina. o x v e 1. o e al w v e 2 e . Adicione m as se guint s l as: e inh username soft nproc 100 username hard nproc 150 Not as: . t v z m ais sim pls de ale e e xe m plicar o proce sso é dando v ore s aos if al t ipos de pe rm issão. D e st m odo. É ne ce ssário criar as re gras ne ce ssárias para o sist m a. A f w al ire l Um a f w al GNU/L ire l inux v isa prot ge r o e com put ador cont ra ace ssos inde se j ados. Não é inst ar e e spe rar t r t al e udo conf igurado. t e go inde se j ráf ado. im a -P e ge r cont Fork Bom b s. m as “m ais v e al pre v nir q ue re m e diar”…Um a Fork Bom b cria e m uit os proce ssos at a m aq uina crash ar é com plt e nt . e ne . q ue é o q ue de f as pe rm issõe s. & M igual ais P . Se q uise rm os al im al dar pe rm issõe s t ais t re m os r+ w + x = 4 + 2 ot e + 1 = 7. com o t b ém com o pont am e para at acar out ros. icil e xe cut e sse ar at ue se t e r um a f w al b e m conf aq iv ire l igurada um a v z q ue não e nt e ram no pc. act izaçõe s de al e ual se gurança. ich ut izare m os a e xt nsão -R . se ndo e st o núm e ro q ue e ut izare m os.4 e m sub t uição da ipch ains.gnu/l inux P ant de st f ort o. iços com o rl ogin. P v ze s h á b ug’s e m dist uiçõe s or e rib q ue pode m se r f ais. Caso q ue iram os apl icar a pe rm issão a um a past e a t a odos os se us sub -f e iros. se ndo e st núm e ro a agl inação da e ut conv rsão para de cim al das pe rm issõe s e de m onst radas acim a. P e am e ara se prot ge re m t e êm de de f inir no f e iro l it ich im s. t l t f p. m ais conh e cida ab e pe l se u GUI f st e r. um a v z q ue são pot ncial e nt e e m e inse guros pode ndo se r usados. ras -Inst a. se m pre q ue h ouv r. aq ir ra D icas -Não t r um a cont com um a passw ord q ue e a se j adiv ada f m e nt . O u se j t r um a a e conf iguração re st iv rit a. pode rão de f inir consoant e as ne ce ssidade s das v ossas m áq uinas. al ich á e usaríam os o com ando ch m od. da se guint m ane ira: ine e # chmod 755 ficheiro. izar ch ual -L it o núm e ro de proce ssos na m áq uina. ape nas para o ne ce ssário. para o ut izador e m q ue st il il ão. D e st m odo e st e ará a dar um grande passo na sua prot cção. nom e . t NFS.conf q ue e st e m ig á /e t c/se curit o núm e ro m áxim os de proce ssos y/ q ue a m áq uina pode corre r. Fe l e nt at izm e a com unidade da grande part das dist e ros é b ast e ant rápida a e ncont os rá-l e a disponib il pat ’s de act ização. não só para at acar a m áq uina. “123456”… -Nunca f orne ce r passw ord’s a out pe ssoas. A it f w al não f ire l unciona por si m e sm a. P e xe m pl il e or o: # chmod -R 777 ~/ se r pe rm it idos ape nas a m áq uinas de conf iança. o q ue prot ge r? O m e lor a f r é e h aze ab rir ape nas o ne ce ssário. q ue f int o ire art oi roduzida no k e rne l2. .txt Com o se pode const ar.

ich cdrom . É se m e lant ao /b in. q ue nada t m a v r com o W indow s. O s ut izadore s com uns só il conse gue m ace de r à sua própria past (a a não se r q ue le s e spe cif ue m out t h iq ro ipo de ace ssos). se não é um ich f e iro. ch am ado de “root re pre se nt ”. Encont ram -se f e iros com o h da1. e m q ue t udo f ica ace ssív l a part de e ir v ários sub -dire ct órios. D e nt ro de cada past de a ut izador t b ém se e ncont il am ram os <25> . /b oot Cont ém os f e iros de arranq ue e o k e rne l ich do L inux. do sist m a gráf X11. e t q ue re pre se nt c. h da2. P e e ode pare ce r um pouco alat e ório. m as na re al idade e xist um a l e ógica e f unção para cada dire ct ório.gnu/l inux b in/ de v h om e / l + f / ost ound/ proc/ sb in/ usr/ b oot e t l / m nt root t p/ v / c/ ib / / m ar/ Se gue -se a e xpl icação de para q ue se rv m e cada um de st s dire ct e órios: /b in Sist m a de e dire ct órios Int rodução Um a das prim e iras dif re nças q ue sal a e t a v a para q ue m com e ça a usar L ist inux é a e st ura de dire ct rut órios do L inux. script de arranq ue . /e t c Cont ém a m aioria de t odos os f e iros de ich conf iguração e m anipul ação do sist m a e L inux. e nt o q ue é um D ire ct ão ório? São f e iros com l as de out ich ist ros f e iros. e h e m as cont ém ape nas program as e sse nciais ao sist m a. no “/” pode m os e ncont rar os se guint s dire ct e órios: /de v Cont ém os f e iros q ue re pre se nt ich am o h ardw are pre se nt e na m áq uina. l IL O Sist m a e A prim e ira coisa q ue é pre ciso pe rce b e r é q ue e m L inux os discos e part içõe s não apare ce m ne ce ssariam e nt com o unidade s e dif re nt s. Cont ém a m aioria dos e xe cut e is m ais áv com uns q ue se rão usados pe l os ut izadore s. do W indow s. q ue são ace didos ant s do re st e o do sist m a e st m ont e ar ado.Binários. o ob j ct o de st t xt é e iv e e o apre se nt e f il ar am iarizar com o sist m a e L inux. t ou unam e . e e Tudo f part de um único dire ct az e ório. com o adm inist e ração e m anut nção e é e sse ncial para o se u e arranq ue . ar /sb in Ab re v ura para “Syst m Binarie s” iat e Binários do Sist m a. am disposit os iv re conh e cidos e inst ados no L al inux. ich ão Se assim é. e ico s /h om e Cont ém as past de cada ut izador (H om e as il D ire ct ory). (Não conf undir com o ut izador 'R oot q ue é o Adm inist il ' rador) Um aspe ct sob re o sist m a L o e inux q ue é int re ssant sab e r. por e xe m pl o: su. l s csh . Assim . Ab re v ura para “Binarie s” iat . adm inist il radore s e sist m a e Norm al e nt cont m e ém as sh e l com o b ash . D :. assim com o com andos. com o o C:. ich Nav gando no sist m a de f e iros do e e ich L inux. ado por “/”. e nt é um proce sso. Ne l pode m e ncont por e xe m pl e rar o f e iros de conf ich iguração de program as. e part dos e b ootoade rs (L O e GR UB). é q ue t e e udo num sist m a L e inux é um f e iro.

/proc É um pse udo-dire ct ório q ue f orne ce inf orm açõe s sob re o k e rne l e sob re os proce ssos q ue e st act os no m om e nt ão iv o. iot program as. iv e Cada sub -past re pre se nt um proce sso. Concl usão Est t xt é um a apre se nt e e o ação sim pls do e Sist m a de D ire ct e órios do L inux.Cont out f e iros b inários ém ros ich re f re nt s aos ut izadore s.gnu/l inux f e iros de conf ich iguração re spe ct os para iv cada um . com o por e e xe m pl f t de e ne rgia. onde só e l t m ace sso.Cont o código f e do ém ont K e rne l . com o f e iros de l e ich ogs. Cada o sof w are t rá a sua própria past t e a. ant /l ib Cont ém as b ib l e cas b ásicas do sist m a iot e q ue pode m se r com part h adas por il div rsos program as. páginas de m anuais e out ros f e iros e st icos q ue são ne ce ssários para ich át of uncionam e nt norm al sist m a. /root Est é o H om e D ire ct e ory do ut izador root il ( Adm inist rador ). f e iros ich de conf iguração de corre io e lct e rónico. /opt Est e dire ct ório cont ém program as opcionais. e t Em al art c. É aq ui e iv q ue irá t r ace sso aos Cdrom s. Caso um f e iro e st j ich e a corrom pido. m as um conh e cim e nt o ne ce ssário para pode r aprov it o pot ncial q ue e st sist m a e ar e e e of re ce . m as q ue não e e il são e sse nciais. pois s não e xist m l it e im açõe s nos m ountpoint s. b ib l e cas. e Não é aconse láv l guardar aq ui h e f e iros ich im port e s. com o por e xe m pl K D E. /v ar Cont ém f e iros q ue possue m dados ich v ariáv is. a a Al guns program as com o 'ps' ou 't op' ace de m a e st past para re cole r a a h inf orm ação do sist m a e m e v z de e com unicar dire ct e nt com o k e rne l am e . Usb s. al de inf ém orm açõe s sob re a ut ização de il al guns disposit os e do sist m a. o L o al a inux irá t nt e ar re cupe rar o q ue e st corrom pido no á próxim o arranq ue . de im pre ssão. Al gum s sub -dire ct órios: /usr/doc . e A m e lor m ane ira de pe rce b e r e apre nde r h é usar. P ode criar os m ount point q ue pre cisar. rib ce rt unidade s com o Usb s e cart s de as õe m e m ória são m ont ados e m /m e dia. e e <26> M arco Sila v . /usr/b in . e P içõe s. /usr/src/l inux . e nt out re ros. o do e /l + f ost ound D e pois de um “crash ” do sist m a. e l se rá col e ocado ne st e dire ct ório. É l po durant o arranq ue e e im e sh ut dow n do se u sist m a. P ode se r com parado ao " ocum e nt and Se t ings” do W indow s D s t /t p m Est dire ct e ório arm aze na os f e iros ich t m porários. Cont ém a m aioria das m ont age ns do sist m a ope ract o.Cont ém docum e nt ação do L inux grande part e da /m nt Ab re v ura para " ount point (pont de iat m " o m ont age m ). Est dire ct e e ório pode se r com parado ao dire ct ório Syst m 32 ou e Syst m do W indow s. e /usr Ab re v ura para “Unix Syst m R e sourse s” iat e Cont ém t odos os com andos. gum as dist uiçõe s.

At és do uso de e rav XSL (idiom a XML q ue t T ransf orm a XML nout ros f orm at os) f oram criadas t m pl e s e at q ue pe gam no XML dos re cursos e o t ransf orm am em páginas do m anual (f orm at w ik i) e t b ém e m f e iros o am ich Jav aScriptpara uso do m ot de com b at . e t ab c. P ara e st f f e im oi criado um idiom a XMLcapaz de re pre se nt ar e st inf a orm ação.proj ct e o Finda a int rodução. as de pe ndências e e caract ríst e icas v árias. ab e O O B cont com um grande núm e ro de a re cursos: 43 e dif ícios. dano. No OB o j ogador com e ça com um h om e pl t e pode part à conq uist de out ane ir a ros pl t pe l gal ane as a áxia. O uso de XMLf z com q ue o m ot se j m ais e or a sim pls e al ge nérico. h á v árias out v age ns e m se t r usado XMLpara ras ant e de scre v r os re cursos. al cance e t ipo de m ov e nt im o. Est m ot e or de com b at e st e á im plm e nt e ado e m J aScript av . at ue cat e aq apul at ue t o. Est e idiom a XML pe rm it e de scre v r e f m e nt t acil e odas as capacidade s de um q ualue r re curso. A f ácilm anunt nção/adição de e re cursos f um dos prim e iros ob j ct os oi e iv para o m ot de j or ogo. Al gum as unidade s t êm ainda caract ríst e icas e spe ciais com o: at ue aq ricoch e t .com Int rodução O O rion's Be l é um j t ogo w e b -b ase d e l orado por dois port ab ugue se s com o t alo f rab h inalde b ach are l o. e t êm de passar um a f ase de grupos e de se guida os pl f Est s ayof s. Est e scrit at á o e m C# e f unciona e m cim a de ASP . Todas e st caract ríst as e icas f m com q ue aze o com b at se j m uit t ico. e pe rm it m sab e r q ue m e são os m e lore s j h ogadore s no t uliro.NET. No O B h á incl e t usív orne ios à part e m e q ue os j ogadore s são f orne cidos com um a arm ada. se ndo ne ce ssária a const rucção de e dif ícios. A ge st de pl t ão ane as é um dos aspe ct m ais im port e s do os ant j ogo. Cada unidade t m um conj o de e unt caract ríst e icas com o: at ue . aq e v ida. 25 unidade s e 48 pe sq uisas. É possív l e e de scre v r o pre ço. pe sq uisa ou unidade s de com b at . se j e l e dif q a e ício. de f sa. Sist m a de R e cursos e h t p://orionsb e l t t . aq ripl b ónus de at ue /de f sa e m ce rt t aq e os ipos de t rre no ou cont ce rt t e ra os ipos de unidade s. Cont e go udo.zi-yu. or e O t uliro de j ab e ogo do O rion's Be l t <27> . para e v uir t o t cnol ol ant e ogicam e nt com o e e cnom icam e nt . e O aspe ct q ue dif re ncia o O B dos out o e ros j ogos do géne ro é o m ode l de com b at . e t orne ios cont am para um sist m a de e R ank ing b ase ado no EL R ank ing Syst m O e (usado no Xadre z). Est e j ogo t m e v árias caract ríst e icas se m e lant s a out h e ros j ogos do géne ro m ais conh e cidos: O gam e e D ark gal axy. v se r ab ordados dois ão t m as da arq uit ct e e ura do O rion's Be l t . e l oração de pe sq uisas. e um dos e a o áct aspe ct m ais al os iciant s do j e ogo. o e Todos os com b at s são re al e izados num t uliro com as unidade s produzidas nos ab e pl t ane as. t a.

ce rt e scolas b e m as h pe nsadas no início de de se nv v e nt olim o t ornaram -se grande s e scolas no f uro do h ut j ogo. rav t Toda a cam ada de ace sso a dados f oi pe nsada com o um a ab st racção ao SGBD usado e m runt e . e st l de com b at são as uas e inspiradas pe l D e at St da Gue rra das a h ar Est l e com b at s com q uat j re as. O j ogo é div idido e m rondas e . ir Al ianças. ob ao Cada cl asse Ut it usa t b ém o de sign ily am pat e rn singlt t e on... P im ara at ingir e st f é e im criada um a cl asse b ase ab st ract com as a f uncional idade s e lm e nt s e e are cl s asse de riv adas q ue cont êm e spe cial izaçõe s para cada SGBD . a ários t ipos de SGBD at és da de sign pat e rn b ridge . public abstract Alliance[] GetAll(). Cont udo. }. . É aq ui q ue h á a pont para a e im plm e nt e ação corre nt . P e xe m pl para pe rsist as or o. acil e Conv idam os t odos os int re ssados a e e xpe rim e nt o j ar ogo. Concl usão O O B é um proj ct j com al a e o á gum dim e nsão. q ue são e scondidas da re st e l ant ógica de apl icação. public abstract void Save(Alliance a).zi-yu.com /inde x.ph p/V os t . <28> P dro Sant e os . Q ue m t e r m ais curiosidade no j iv ogo pode passar pe l e nde re ço: o h t p://pt ik i. at q ue indica q ual o ob j ct q ue t a da e o rat pe rsist ência.t e orne ios com com b at s e 1x1x1x1 ou 2x2. se m pre disponív l É usada um a proprie dade st ic e . P gre SQ L e t O O B suport v ost . irá com e çar ol a e um a nov ronda. c.proj ct e o <resource type="Unit" value="ColonyShip"> <dependencies> <resource-ref type="Building" value="StarPort" /> <resource-ref type="Research" value="AdvancedFlightI" /> </dependencies> <cost> <resource-needed type="gold" value="5000" /> <resource-needed type="mp" value="8000" /> <resource-needed type="energy" value="1000" /> <resource-ref type="Building" value="StarPort" /> <duration value="15" quantity="1" /> </cost> <attributes> <attribute type="TeletransportationCost" value="350"/> </attributes> <oncomplete/> <battle unitType="special"> <attack base="230" range="1" minimumDamage="200" maximumDamage="250"/> <defense base="8000" hitPoints="9200" canStrikeBack="true" /> <movement cost="6" type="all" level="air" /> </battle> </resource> Base s de D ados Idiom a do Sist m a de R e cursos e D e st a f orm a é possív l t r v e e árias im plm e nt e açõe s de pe rsist ência. O SGBD alo é e v de cidido e m com pil t e at és de e im rav parâm e t no com pil ros ador. P a ara e st nov ronda a a e st ão pl adas ane al as gum nov idade s int re ssant s: possib il e e idade de const rução de D e at St h ars. Um a apl icação w e b norm al e nt e st m e á associada a um SGBD (sist m a de ge st de e ão b ase s de dados) com o o MySQ L . e ro ogadore s ao m e sm o t m po . para prov nciar um ide único ob j ct e o daq ue l t e ipo. por v t de Se t m b ro. pois pe rm it m e um a e xce lnt e e f idade de m anunt nção. e xist a cl e asse Al l iance Ut it ily: public class AllianceUtility { public abstract Alliance Get(int id).w íde Ne st e nde re ço e st e ão v os de dois íde com b at s e um de int e rodução gl al O B.

P ab l Me dia Paye rs e s ort e l (Arch os P MA400). f r scrol e ink aze l v isual com porm e nor as im age ns. o O pe ra Mini conse gue dige rir com pl icadas páginas e t orná-l m uit sim pls de f as o e orm a a f it a sua v acilar isual ização. cl acil icar e m l s. izar Ent as f rram e nt re e as incl uídas e st ão um h ist órico de páginas v isual izadas. A Adv ance d conse gue t b ém m e lore s re sul am h t ados a 're nde rizar' páginas grande s criando um a grande página. isit e v ar incl e a página do f isit usiv órum port ugal -aprogram ar. P ois agora j e xist um a opção de al á e t a q ual idade para q ue m q ue r t irar t odo o pot ncial da Int rne t associada ao v e e osso t lm óv lpda ou sm art one . é im e e <29 > Sérgio M at ias . h e scrol m ais suav e um re l l e ógio. se pe nsarm os b e m q uase t odos nós possuím os um t lm óv lcom gprs com suport para e e e e apl icaçõe s j a.com com o w ap do v osso t lm óv l e a página indicará os passo e e e ne ce ssários para inst are m o O pe ra Mini. E e ngane m -se e e e . um a v z q ue a l a de e q uipam e nt é e xt nsa e é e ist os e const e m e nt act izada. E ape sar de al as páginas se re m m uit grande s e gum o f icare m m uit com pridas o O pe ra Mini o pe rm it -nos nav gar na página com im e nsa e e f idade . um a v z q ue e e e xist m duas a Basic e a Adv e ance d. or As re st e s f ant uncional idade s pode m dif rir e da v rsão do O pe ra m ini. R e st iõe v a sab e r q ual o l it de st b row se r.com /product ob il/ t s/m e ope ram ini/ph one s. Ape sar das páginas se re m de m asiado grande s para q ualue r e crã de um t lm óv l q e e e . e e m disposit os m óv is é e h iv e act m e nt o re i. Fica ape nas a f t o ual e al ar suport para fash . ode consul a l a de disposit os com pat e is t ar ist iv ív e m h t p://w w w . os Com o se não b ast asse e st sof w are é e t f e w are e de f re ácil inst ação b ast al ando ace de r a m ini. iu t ar no gm ail v ar a m inh a página e por v ze s .ope ra. e e não o possue m . q ue pe rm it um a l av e igação e st e l de 56k b ps. m as o f o é q ue a áv act m aioria de ls não possue m um b row se r h t l e m re al e nt f m e uncionalou pura e sim plsm e nt .anál s ise O pe ra M ini O m ais f rant para os act rust e uais w e b de pe nde nt s é não pode r consul o e -m ail e t ar ou v ar um a de t rm inada página w e b só isit e porq ue e st l á onge de um pc. ph aq ue ls q ue pe nsam q ue são poucas as e pl af at orm as e t lm óv is suport e e e ados. porq ue de re st não e l o e xist nada a apont de ne gat o a e st e ar iv e b row se r. Te ndo e m cont q ue o O pe ra se m pre f um a oi b row se r int re ssant . Act m e nt o O pe ra e st t b ém a se r ual e á am incl uído e m out ros t ipos de e q uipam e nt os com o consol (Nint ndo W ii e D S). suport para dow nl e oad de im age ns e um ge st de passw ords.ope ra. al se lccionando a v rsão corre ct P rão e e a. suport aut át e om ico para pe sq uisas no googl e al e guns dicionários. P ant e ual osso dize r q ue o m e u 7250i se t ornou um com panh e iro im port e no t m po e m q ue e st e l ant e iv onge da Int rne t e m e pe rm it consul o e -m ail e .org. av s e t b ox’s. Int rne t as e e Tab lt (Nok ia 770). A Adv ance d possui um a m e lor com pre ssão de h t xt e de im age ns o q ue pe rm it m e lorar e os e h o t m po de carre gam e nt assim com o um e o. int rf e ace m e lorado com suport para icons. H oj e m dia e e xist m out e ras f orm as de ace de r à Int rne t e se m f r uso de um com put aze ador. um ge st or de f orit av os. e nq uant q ue a Basic t m de o e criar v ários se gm e nt de página. não surpre e nde q ue o e e O pe ra Mini siga as passadas do se u irm ão m ais v lo.

“L inguage ns W e b ” é um l ro de iniciação à iv program ação orie nt ada à W e b q ue re úne t odas as principais l inguage ns de program ação ut izadas na Int rne t de il e . f orm a concisa e b e m apre se nt ada para possib ilar um a apre ndizage m m ais rápida it e progre ssiv a. e t e ace c). As l inguage ns ab ordadas são: H TM L CSS. am e Est ob ra é aconse lada a q ualue r a h q program ador no e nt o é e xce lnt para ant e e program adore s q ue se e st j e am a iniciar pois ut iza um a l il inguage m cl e de f ara ácil e nt ndim e nt com e xe m pl e xpl e o os icados para um a m ais rápida e e f nt icie e apre ndizage m . . Mário Mart ins.NET (V B. H av Fal um pouco sob re cada l a inguage m onde é ab ordada a sua e st ura. . no e nt o. ab ordados os aspe ct m ais im port e s q ue os ant e st l a inguage m suport (cl s. com o por e xe m pl a e o m odul aridade e a e xt nsib il e idade .inf e o R ui Gonçale s v <30> J oão P re ira e . a de 450 páginas. de dicada à t cnol e ogia JAV se ndo A. os m ais av ançados da l inguage m não são ab ordados. P ossui m uit os e xe m pl de código onde são apl os icados os conce it os ab ordados. e ncapsul e nt am o e a dif re nça e nt e re inst âncias e cl s. P ce -m e um l ro b ast e indicado para are iv ant q ue m q ue r apre nde r JAV ou para q ue m A procura apre nde r met odol ogias de program ação q ue pe rm it am aum e nt ar a q ual idade das apl icaçõe s q ue de se nv v . Not a-se t b ém a am pre ocupação de e nsinar t écnicas de program ação q ue pe rm it am q ue o sof w are t de se nv v olido sat aça isf proprie dade s e sse nciais h oj e m dia. asse e iv cont udo. rut axe sua f orm at ação e com o a ut izar il corre ct e nt . h ie rarq uias. ole Não se rá. aut oria de F. nom e adam e nt o q ue é um ob j ct o e e o.anál s ise P rogram ação O rie nt ada a O b j ct e m J A 2 e os AV L inguage ns W e b O l ro f a de program ação orie nt iv al ada aos ob j ct usando a l e os inguage m JAV É da A. É f orne cido apoio on-l a e st l ro e m ine e iv h t p://l t inguage ns.m e diat ca.NET e C#). prof ssor e associado da Univ rsidade do Minh o e e coorde nador do grupo SIM . a sua sint . a asse e xce pçõe s. int rf .Sof w are . A m aior part do l ro é. J aScript ASP ASP av . P Pe J a. Est l ro f e scrit por Alxandre P re ira e iv oi o e e e Carl P os oupa e e dit ado por " diçõe s e Síl o" D at do ano 2004 e possui ce rca ab . o l ro m ais indicado ant iv para q ue m j t m al a e xpe riência com á e gum JAV e com P O e m ge ral pois aspe ct A O . t Int racção e Mul édia. e t im Ne st ob ra com e çam por se r ab ordados os a principais conce it os associados à program ação orie nt ada aos ob j ct e os. f it acilando a com pre e nsão dos m e sm os. .

/L M uit se t m f ado no q ue é a W e b 2. P ois b e m . icar h t p://w w w . organizados por m ês e ano. e ope h t p://w w w . am e as e m pre go. q ual os b e ne f m e ícios q ue pode re m os t irar disso.com /pub /a/ore il yne l y/ t /ne w s/2005/09 /30/w h at im -is-w e b 20.com P se u l or ado o cssBe aut of re ce y e aos se us ut izadore s il um a galria se m e lant e h e ao do cssv t m as t b ém of rt de aul . h t l m . aq ui e st m ais um docum e nt a t nt á o e ar e xpl isso m e sm o. h t p://cssv t t aul .0.ore il t t l . t odos e ls de grande e q ual idade .int rne t e O cssv t disponib il aul iza um a l arga galria de w e b sit s de e e q ual idade . j ascript e out av ros de grande int re sse e para os w e bde v l rs.0 o e al re al e nt .ua.pt inux. Est página criada pe l a o Grupo de L inux da Univ rsidade de Av iro e st e e á disponív l e para consul e m h t p://gl t a t ua.h t l m <31> D anie l Corre ia .cssb e aut t y.com Foi criada e m M arço de st ano – e só agora e de scob rim os – um a pe q ue na página com 12 pe rgunt as f q ue nt s de ut izadore s q ue nunca re e il v iram L inux na sua v ida. art igos de css. É se m dúv ida um e xce lnt sít de consul do e e io t a q ue de m e lor e xist h e no m om e nt o na W eb 2.

.b l scre e n ue e m acs ou v ? im o se gre do por t do P nt rás e ium 2 m ais um cl ássico.. <32> .

Bruno M ont iro. Ainda e t m os m uit t alo pe l f nt . iv Q ue re s part icipar na re v a ist P O GR AM AR ?Q ue re s int grar R e e st proj ct e scre v r art e e o.inf ist o para m ais inf orm ação com o part icipar ou e nt cont a-nos por ão act @port ugal -a-program ar. Est os t b ém no início da am am criação de um a nov pl af a at orm a de apre ndizage m . para conh e ce re m b e m a com unidade .org P cisam os do apoio de t re odos para t ornar e st proj ct ainda e e o m aior. rib q ue são ob v e nt part f iam e e undam e nt de t al oda a com unidade . a e a q ue e st ará pront e ace ssív la t o e odos para e scl ce r de f are orm a m ais prát ica t odas as v ossas dúv idas e t b ém para pode re m dar am as v ossas cont uiçõe s.com unidade Um ano passado da criação da com unidade e . m as e o rab h a re e possuím os grande s pe rspe ct as para e st iv a pl af at orm a. A com unidade cont j com m ais de 1800 a á ut izadore s re gist il ados e com um a m édia de v as diárias a t isit ocar o al garism o dos m ilare s. H ugo V ant ) por v e iol e m ot os prof iv issionais e /ou pe ssoais. b ase ada no m oodl.org <33> D av P assil id int go .. e as coisas v de " e nt e m poupa" ão v o . P ant m e e ort o..re v a-program ar. o w ik i do p@p. H ouv ne st s úl os t m pos a h e e t im e saída de al guns m e m b ros do st f (Sara af Sila. Sérgio L s. V ários pe q ue nos proj ct e os t êm v indo a apare ce r de nt da com unidade e são al ro go q ue re al e nt m e re ce a pe na v r.port ugal -a-program ar. m as cont os j com a part am á icipação act a de iv nov pe ssoas com v ade de const as ont ruir e inov (Fe rnando M art ar ins. e igos e aj udar a t ornar e st re v a num a ist m arco da program ação nacional ? V a ai w w w . h w w w . ope J oão M at e J os osé O l e ira). nada m e lor do q ue passar por.. cont os com a t aj am ua uda re v aprogram ar ist D e nt e m b re v pode rão cont com um a ro e ar nov f rram e nt de apoio.. com o t odos de v m sab e r.

Sign up to vote on this title
UsefulNot useful