Professional Documents
Culture Documents
índice
3 notícias
4 te m a de capa
10 a program ar
26 s e gurança
28 e le ctrónica
33 te cnol ogias
38 tutorial
44 gnu/l inux
47 e ve ntos
49 anál is e s
50 inte rne t
51 bl ue s cre e n
52 com unidade
e q u ipa PR O G R A M A R
col
aboradore s A partir de s ta e dição ire m os te ntar acom panh ar m ais e ve ntos q ue
Jos é O l
ive ira aconte çam por Portugal , no s e ntido de divul gar o q ue s e vai
Sérgio Santos
faze ndo pe l o nos s o país e prom ove r a dis cus s ão nos m e s m os . Por
contacto is s o, pe dim os q ue nos notifiq ue m de futuros e ve ntos , para
re vis taprog ram ar
@ portug al -a-prog ram ar.org
pode rm os divul gar na re vis ta, de ntro do pe ríodo pos s íve l
. Tam bém
pode rão e nviar-nos re s um os e fotos de e ve ntos já de corridos para
w e bs ite s urgire m na nova s e cção Eve ntos , inaugurada com o e ve nto
w w w .re vis ta-prog ram ar.info Te cnonov 2007, no q uale s tive pre s e nte .
<2>
notícias
O e ve nto irá contar com um l e q ue s ignificativo de oradore s de pre s tígio, e ntre os q uais s e
de s tacam Jos é M agal h ãe s (Se cre tário de Es tado da Adm inis tração Inte rna), Carl os Batis ta (T-
Sy s te m s ), Jorge Lope s (BRISA), António M arce l o (TECM IC Eas y tran Vodafone ), e ntre outros .
<3>
te m a de capa
<4>
te m a de capa
O l e itor ne s te m om e nto pode e s tar um pouco confus o e m re l ação al guns tópicos m e nos
e xplorados e por is s o é pre fe ríve lq ue obs e rve um e xe m pl
o de um de ck , para m e l
h or cons ol
idar
os conh e cim e ntos até agora adq uiridos :
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
</wml>
Re s ul
tado:
Expl
icação do Código:
<p> - Parágrafo
<b r /> - Q ue bra de l inh a
<b ig> - Te xto G rande
<sm al l> - Te xto Pe q ue no
<b > - Bold
<i> - Itál
ico
<u> - Subl inh ado (Unde rl ine )
<5>
te m a de capa
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card title="Tabela">
<p>
<table columns="2" border="1">
<tr>
<td>Coluna 1</td>
<td>Coluna 2</td>
</tr>
</table>
</p>
</card>
</wml>
Re s ul
tado:
<anchor>Clique Aqui
<go href="teste.wml"/>
</anchor>
O s form ul ários s ão e l e m e ntos m uito úte is para adicionar inte ractividade ao s e u s ite ou portal ,
ape s ar dos util izadore s não ficare m m uito te m po a nave gar na W APao contrário da Inte rne t.
Ne s ta s e cção vam os de ixar o l e itor e xpl
orar por s i próprio código de form ul ários já conce bidos ,
be m com o o s e u re s ul tado, de m odo a pode r apre nde r m e l h or a trabal
h ar com form ulários e m
W M L. (e xe m pl os re tirados do s ite w 3s ch ool s .com e tradu zidos para portu gu ês )
<6>
te m a de capa
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD
WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card title="Input">
<p>
Nome: <input name="Nome" size="15"/><br/>
Idade: <input name="Idade" size="15"
format="*N"/><br/>
Sexo: <input name="Sexo" size="15"/>
</p>
</card>
</wml>
(im age m e ncu rtada de vido ao tam anh o do
e crã do s im u l
ador)
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD
WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card title="Lista de seleccao">
<p>
<select>
<option value="htm">HTML Tutorial</option>
<option value="xml">XML Tutorial</option>
<option value="wap">WAP Tutorial</option>
</select>
</p>
</card>
</wml>
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD
WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card title="Lista de seleccao 2">
<p>
<select multiple="true">
<option value="htm">HTML
Tutorial</option>
<option value="xml">XML Tutorial</option>
<option value="wap">WAP Tutorial</option>
</select>
</p>
</card>
</wml>
<7>
te m a de capa
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD
WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card title="Fieldset">
<p>
<fieldset title="CD Info">
Titulo: <input name="titulo"
type="text"/><br/>
Premio: <input name="premio" type="text"/>
</fieldset>
</p>
</card>
</wml> Nota: Es te s im ul
ador não re produz o fie l
ds e t
da m e l
h or form a.
Pre vious :
<anchor> Re fre s h
Anterior Actual
iza a página ao cl icar, e tam bém
<prev/> actual
iza as variáve is dadas .
</anchor>
<anchor>
Re fre s h : Actualizar a página
<anchor> <go href="paginaactual.wml"/>
Actualizar <refresh>
<go href="pagina.wml"/> <setvar name="a" value="20"/>
<refresh> </refresh>
<setvar name="a" value="10"/> </anchor>
</refresh>
</anchor>
No O pe ration (noop)
C om andos W M L Pre vine um a acção de s e r re al
izada.
Go <anchor>
D irig e para a pág ina indicada no h re f. Ir para abc
<go href="abc.wml"/>
<anchor> <noop/>
Ir para abc </anchor>
<go href="abc.wml"/>
</anchor>
<8>
te m a de capa
Tim e rs
Utilizam -s e norm alm e nte para
re dire ccionar para um a página
e s pe cífica, de pois de x s e gundos .
<card ontimer="test.wml">
<timer value="30"/>
<p>Vai ser redireccionado em 3
segundos.</p>
Variáve is e m W M L
D e finir um a variáve l
:
<card id="carta1">
<select name="escolha">
<option value="pap">Portugal-a-
Programar</option>
<option value="revista">Revista
PROGRAMAR</option>
</select>
</card>
<card id="carta1">
Seleccionaste: $(escolha)
</card>
<9 >
a program ar
Program ação
O rie ntada aos
As pe ctos com
As pe ctJ
Introdução
D urante os úl tim os anos as s is tim os a um a M as , com o já foi re fe rido ante riorm e nte ,
grande divul gação da program ação ape s ar da orie ntação aos obje ctos te r
orie ntada aos obje ctos (PO O ). Es ta ve io trazido m e l h orias na form a de program ar,
re s ponde r a re q uis itos e s s e nciais no não cons e guiu re s ol ve r alguns probl e m as .
de s e nvolvim e nto de s oftw are , nom e adam e nte Exe m pl os cl ás s icos s ão o re gis tos das
no q ue diz re s pe ito às facil idade s de ope raçõe s e m fich e iros de l og q ue
m anute nção e re util ização do código. M as e ncontram os e m m uitos s oftw are s , ou
ape s ar de todas e s tas e vol uçõe s , ne m tudo program ação concorre nte /dis tribuída. O
aq uil o q ue a PO O s e propunh a cons e guir foi código as s ociado a e s te tipo de
al cançado. É ne s te conte xto q ue s urge a funcional idade s e ncontra-s e norm al m e nte
program ação orie ntada aos as pe ctos (PO A). e s pal h ado por todos os m ódul os , o q ue
Es te novo paradigm a de program ação s urgiu dificul ta a m anute nção e a e vol ução do
e m 19 9 6 por G re ge r K iczal os e pe l a s ua código. Em PO A dize m os q ue is to s ão
e q uipa no Xe rox PARC, q ue tam bém foram inte re s s e s e ntre cortante s , pois cortam
re s pons áve is pe lo de s e nvol vim e nto do trans ve rs al m e nte todos os m ódul os . A PO A
As pe ctJ, a linguage m PO A m ais us ada. ve m re s ol ve r e s te probl e m a introduzindo
um novo níve lde s e paração de inte re s s e s ,
Q uando vam os de s e nvolve r um a os as pe ctos .
apl icação, é conve nie nte dividir o
probl e m a q ue nos foi propos to e m parte s . Bas icam e nte e s te s inte re s s e s trans ve rs ais à
A s e paração do probl e m a de acordo apl icação s ão e ncaps ul ados ne s tas novas
com os dados e as funcional idade s a e l es unidade s m odul are s e pos te riorm e nte
as s ociadas facil ita o e s tudo dos re q uis itos fundidas com as cl as s e s num único s is te m a.
da apl icação. Is to é o q ue s e de s igna por Is to não s ó aum e nta a facil idade de
s e paração de inte re s s e s . O paradigm a m anute nção de s tas funcional idade s da
OO e s tabe le ce um a s e paração de apl icação, vis to q ue tudo s e e ncontra num
inte re s s e s te ndo e m conta os tipos de único l ocal , com o aum e nta as pos s ibil idade s
dados , re pre s e ntados pe l os obje ctos , e as de re util
ização das cl as s e s noutros conte xtos ,
funçõe s q ue util izam cada tipo de dados , pois e s tas e ncontram -s e l im pas de s tas
ou s e ja, os m étodos a q ue um obje cto funcional idade s q ue norm al m e nte variam
re s ponde . m uito de cas o para cas o.
<10>
a program ar
<11>
a program ar
Para de finirm os pointcuts tam bém te m os à nos s a dis pos ição ope radore s l
ógicos (!, || e & & ,
cujo s ignificado é o h abitual
).
pointcut p1(Xpto x,int y,float z) : execution(* *(..)) && target(x) && args(i,j);
D e s ta form a re s tringim os os join points aos m étodos e nviados a um obje cto do tipo Xpto e q ue
re ce be m 2 argum e ntos (o prim e iro do tipo int e o s e gundo do tipo fl oat). É claro q ue is to
pode ria te r s ido cons e guido com a e xpre s s ão * Xpto.*(int,fl oat), m as , com o ve re m os de
s e guida, e s ta opção pe rm itirá us ar o obje cto ao q ualfoi e nviado o m étodo, as s im com o os
argum e ntos re ce bidos na e s pe cificação de advice s .
Advice s
Se os pointcuts indicavam o conjunto de pontos de um a apl icação onde q ue ríam os re alizar
outras ope raçõe s , os advice s pe rm ite m -nos de finir q uais s ão e s s as ope raçõe s .
Te m os 3 (ou 5) tipos de advice s . Us am os o:
•be fore , q uando q ue re m os e xe cutar acçõe s ante s de um join point;
•afte r, q uando q ue re m os e xe cutar acçõe s de pois de um join point, e xis tindo três al te rnativas :
•o afte r(), q ue é s e m pre e xe cutado;
•o afte r() re turning, q ue ape nas é e xe cutado q uando o m étodo as s ociado ao join point
re torna;
•o afte r() th row ing, q ue ape nas é e xe cutado q uando o m étodo as s ociado ao join point
lança um a e xce pção.
•around , q uando q ue re m os e xe cutar acçõe s e m ve z de um m étodo (s e ndo q ue de ntro do
advice pode m os e xe cutar o m étodo original ).
<12>
a program ar
Prim e iro de finim os o pointcut q ue , para além de re s tringir os m étodos à e xe cução do toString(),
tam bém capta o obje cto ao q ualo m étodo é e nviado através do targe t. D e s ta form a foi
pos s íve lutil
izar o obje cto no advice , com o s e pode ve r nas l inh as 5 e 6. Foi tam bém us ado
proce e d, q ue e xe cuta o m étodo original . D e pois é s ó acre s ce ntar o nom e da cl as s e e de vol
ve r
o re s ultado.
after(int x) : init(x) {
System.out.println("Classe: " +
thisJoinPointStaticPart.getSignature().getDeclaringType().getName());
System.out.println("Argumentos: " + x);
}
<13>
a program ar
Date d=(Calendar.getInstance()).getTime();
bw.write("Data: " + d + "\nObjecto: " + obj + "\nMetodo: "
+ thisJoinPointStaticPart.getSignature().getName()
+ "\nArgumentos:\n");
Object[] args = thisJoinPoint.getArgs();
String[] ids = ((CodeSignature)thisJoinPoint.getSignature())
.getParameterNames();
for (int i = 0; i < args.length; i++) {
bw.write(" " + ids[i] + "=" + args[i] + "\n");
}
bw.close();
} catch(Exception e){System.out.println(e);}
}
Aq ui já re corre m os à variáve lth is JoinPoint para obte r os argum e ntos us ados no m étodo, as s im
com o os ide ntificadore s dos argum e ntos . O re s ultado obtido s e rá al
go com o:
Concl
us ão
Ao l ongo de s te artigo ficaram vis íve is al guns dos be ne fícios q ue pode m os obte r com a PO A.
Contudo h á al guns factos q ue é ne ce s s ário re al çar. Em prim e iro, q ue um a abordage m dos
probl e m as s e gundo e s ta m e todologia, é bas tante m ais com pl icada do q ue a abordage m O O .
É difícilde finir a e s trutura do s oftw are , ide ntificando corre ctam e nte todas as parte s q ue o
com põe m . M e s m o de pois de de finida a e s trutura, com e te m os facil m e nte e rros na de finição
dos as pe ctos (aconte ce várias ve ze s de finir as pe ctos q ue originam cicl os infinitos , pois ao
e xe cutá-l os criávam os s ituaçõe s onde outros as pe ctos pode riam s e r e xe cutados ), q ue por
ve ze s não s ão m uito vis íve is . Subl
inh a-s e ainda q ue não é obje ctivo da PO A s ubs tituir a PO O ,
tratam -s e s im de dois paradigm as com pl e m e ntare s .
Por úl tim o re fe ria-s e q ue e s te te xto é ape nas um a introdução à PO A/As pe ctJ e , com o tal
, m uitas
das capacidade s de s te novo paradigm a não foram aq ui de m ons tradas . Suge re -s e a q ue m
q uis e r aprofundar os s e us conh e cim e ntos ne s ta áre a, a cons ul ta da página w e b do As pe ctJ,
onde pode rá e ncontrar um a vas ta docum e ntação s obre e s te te m a.
Re fe rências
ve s
Rui G onçal
<14>
a program ar
Sock e ts de Be rk e l
y util izar o m odo TCP do protocol
conjunto de apl
o TCP/IP e o
icaçõe s s ão fe ch adas
M ode l
o Cl
ie nte –Se rvidor
O m ode l o Cl ie nte – Se rvidor é com pos to
por um conjunto de dois program as e m
e xe cução q ue com unicam e ntre s i. O
s e rvidor e s tá s e m pre à e s pe ra de pe didos
e fe ctuados pe l os cl ie nte s m as de s conh e ce
a s ua l ocal ização. O cl ie nte te m de
conh e ce r obrigatoriam e nte a l ocalização
do s e rvidor (IP) para pode r l igar-s e e
com unicar com e l e.
<15>
a program ar
do {
2 - D e finir a e s trutura de de s tino
scanf("%s", palavra);
(s e rvidor) e as variáve is : // envia para o servidor os dados
// contidos na variável “palavra”
// definição da estrutura do servidor write(sock, palavra, 50);
struct sockaddr_in target; if(strcmp(palavra, "exit") != 0){
// criar o socket, indicando a família // recebe do servidor os dados
// a que pertence (AF_INET), o tipo de // e guarda-os na variável
// protocolo (neste caso TCP - // “palavra2”
// SOCK_STREAM) e o parâmetro do read(sock, palavra2, 50);
// protocolo (0). printf("%s\n", palavra2);
int sock = socket(AF_INET,SOCK_STREAM,0); }
// variáveis }while(strcmp(palavra, "exit") != 0);
char palavra[50], palavra2[50];
// tamanho da estrutura do servidor
int ad1 = sizeof(target);
7 - Fe ch ar o s ock e t:
close(sock);
3 - Inicial
izar a e s trutura:
<16>
a program ar
2 - D e finir a e s trutura do cl
ie nte , do 6 - Es pe rar por pe didos . É criado um
s e rvidor e as variáve is : novo s ock e tpara tratar ape nas de s te
pe dido e nq uanto q ue o outro s ock e t
continua à e s pe ra de pe didos :
// definição das estruturas do
// cliente e do servidor
struct sockaddr_in me, from; // coloca o socket à escuta.
// criação dos sockets.o “sock” é // Podem ser mantidos em espera 5
// declarado identicamente ao cliente // pedidos de ligação
int newSock, sock = listen(sock, 5);
socket(AF_INET,SOCK_STREAM,0); // gera um novo socket específico
// declaração das variáveis // para essa ligação
int tam = 0, i = 0; newSock = accept(sock, (struct
int ad1 = sizeof(me); sockaddr *)&from, (void *)&ad1);
char palavra[50], palavra2[50]; // fechar o socket antigo
close(sock);
3 - Inicial
izar a e s trutura:
for(;;){
4 - D e finir as proprie dade s do s e rvidor: // recebe os dados do cliente e
guarda-os na variável “palavra”
// indica a família do protocolo read(newSock, palavra, 50);
me.sin_family = AF_INET; if(strcmp(palavra, "exit") != 0){
// fica associado a todos os tam = strlen(palavra);
// endereços IP do host local for(i=0;i<tam;i++){
me.sin_addr.s_addr = htonl(INADDR_ANY); if((palavra[i]>='a') &&
// porta em que o servidor vai (palavra[i]<='z')){
// estar à escuta palavra2[i] =
me.sin_port = htons(8450); toupper(palavra[i]);
}
}
palavra2[i] = '\0';
5 - Al ocar a porta. Se e s tive r ocupada é // envia os dados que estão na
fe ch ado o s e rvidor. variável “palavra2” para o cliente
write(newSock, palavra2, 50);
// se a porta estiver ocupada o }
servidor não pode correr e é else{
terminado close(newSock);
if(bind(sock, (struct sockaddr exit(0);
*)&me, ad1) == -1) }
{ }
close(sock);
puts("Porta Ocupada!");
exit(0);
}
<17>
a program ar
Se rvidor
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <ctype.h>
int main() {
struct sockaddr_in me, from;
int newSock, sock = socket(AF_INET, SOCK_STREAM, 0);
int tam = 0, i = 0;
int ad1 = sizeof(me);
char palavra[50], palavra2[50];
me.sin_family = AF_INET;
me.sin_addr.s_addr = htonl(INADDR_ANY);
me.sin_port = htons(8450);
listen(sock, 5);
newSock = accept(sock, (struct sockaddr *)&from, (void *)&ad1);
close(sock);
for(;;){
read(newSock, palavra, 50);
if(strcmp(palavra, "exit") != 0){
tam = strlen(palavra);
for(i=0;i<tam;i++){
if((palavra[i]>='a') && (palavra[i]<='z')){
palavra2[i] = toupper(palavra[i]);
}
}
palavra2[i] = '\0';
write(newSock, palavra2, 50);
}
else{
close(newSock);
exit(0);
}
}
return 0;
}
<18>
a program ar
Cl
ie nte
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/ioctl.h>
#include <unistd.h>
int main() {
struct sockaddr_in target;
int sock = socket(AF_INET, SOCK_STREAM, 0);
char palavra[50], palavra2[50];
int ad1 = sizeof(target);
target.sin_family = AF_INET;
target.sin_addr.s_addr = inet_addr("127.0.0.1");
target.sin_port = htons(8450);
do {
scanf("%s", palavra);
write(sock, palavra, 50);
if(strcmp(palavra, "exit") != 0){
read(sock, palavra2, 50);
printf("%s\n", palavra2);
}
}while(strcmp(palavra, "exit") != 0);
close(sock);
return 0;
}
Para conh e ce r m e l h or com o s ão com pos tas al gum as e s truturas o l e itor pode vis itar os l
ink s :
h ttp://jan.ne tcom p.m onas h .e du.au/Cl ie ntSe rve r/s ock e t/s ock e t.h tm l e
h ttp://w w w .de i.is e p.ipp.pt/~ andre /docum e ntos /s ock e ts -be rk e l e y.h tm l
Pe dro Te ixe ira
Se não pode tam bém pe s q uis ar na Inte rne t já q ue e xis te inúm e ra inform ação no q ue diz
re s pe ito à API s ock e ts de Be rk e l
e y.
<19 >
a program ar
Es tatís ticas e m PH P
•M aani PH P/SW FCh arts
É um a fe rram e nta l ivre q ue nos pe rm ite
1ª Parte
criar gráficos e m Sh ock w ave Fl as h e m
te m po re al com dados e s táticos ou
dinâm icos . Encontram o dow nl oad e
inform ação m ais com pl e ta e m :
h ttp://w w w .m aani.us /ch arts /inde x.ph p
Ins tal
ação
Q ue m já criou um w e bs ite ce rtam e nte
te ve a curios idade de s abe r q uantas Após te r fe ito o dow nl oad de am bas as
pe s s oas por l á pas s aram e de onde fe rram e ntas (G e oIP e M aani Ch arts ), de ve rá
s e riam e s s as pe s s oas . A curios idade de s com pactá-l as para a raiz do s e u
h um ana é natural e l e va a e s tas w e bs ite .
q ue s tõe s . Es ta é a prim e ira parte dum O s fich e iros de s critos nas próxim as páginas
tutorialq ue s e rá concl uído na próxim a de ve rão tam bém s e r guardados na raiz do
e dição. w e bs ite .
Para re s ol ve r de um a form a s im pl es e
inte iram e nte ao nos s o gos to irá s e r
SQ L
de s e nvol vido aq ui um tutorial “pas s o-a-
Com o o proje cto irá s alvaguardar os dados
pas s o” de form a a q ue no finalde s te artigo
de todos os vis itante s q ue pas s am no
te nh a um s is te m a de e s tatís ticas s im pl es e
w e bs ite , de ve rá guardar os re s pe ctivos
funcionalcom as inform açõe s m ais util izadas .
dados num a bas e de dados e m M y SQ L.
Todas e s tas inform açõe s s e rão m os tradas
com auxíl io vis ualde gráficos , para q ue os
re s ultados s e jam m ais ape l ativos aos
vis itante s .
•G EO IP
É um a cl as s e com ve rs ão ope ns ource e
ve rs ão l ice nciada. Nós ire m os util
izar a ve rs ão
livre para nos re tornar o código e nom e do
País de orige m do vis itante s . Pode rão re al izar
o dow nl oad e m :
h ttp://w w w .m axm ind.com /app/ge oip_country
<20>
a program ar
USE `stats`;
Re col
h a de Inform açõe s
Agora q ue já te m a bas e de dados pronta e pre parada para re ce be r dados , pas s a à fas e do
PH Pcriando o fich e iro 's tatis tics .ph p'.
Inicia as s im o fich e iro l
ogo com a função m ais im portante de todo o s is te m a. A função q ue
pe rm ite re col
h e r os dados do vis itante , e irá ins e rir na re s pe ctiva tabe l
a.
<?php
function saveStatistics ( ) {
include( "connection.php");
include( "geoip.inc" );
Util
izando a função ‘ge oip_ope n’ q ue faz parte da Cl as s e G e oIP faz com q ue s e carre gue com
a ‘bas e de dados ’ q ue irá s e rvir para ide ntificar os País e s .
<21>
a program ar
O próprio PH P te m q uas e todas as ins truçõe s ne ce s s árias para re col h e r a inform ação q ue
ne ce s s ita. A variáve l‘$_SERVER’ pe rm ite s abe r o IP do vis itante através de ‘REM O TE_AD D R’. Com
‘H TTP_REFERER’ cons e guir s abe r de q ue página é originário. No e ntanto o ‘H TTP_REFERER’ é um a
ins trução m uito traiçoe ira, pois por ve ze s dá inform açõe s incorre ctas q ue te m q ue s al vaguardar.
Se não e xis tir ne nh um ‘H TTP_REFERER’ s ignifica q ue o utilizador provave lm e nte ins e riu dire ctam e nte
o URLdo w e bs ite e com o tal , ficará catalogado com o ‘URLD ire cto’. Cas o e xis ta um ‘H TTP_REFERER’
e ntão não irá pre cis ar de todo o ‘REFERER’ para o tratam e nto, irá ape nas ne ce s s itar de al go do
géne ro: w w w .portugal -a-program ar.com . Para talutil iza um a s érie de ins truçõe s do PH P q ue irá
is olar a inform ação q ue pre te nde de toda a inform ação q ue ve m a m ais no URL.
O últim o probl e m a a de re s olve r pre nde -s e com o facto de q ue s e fôr e fe ctuado um ‘REFRESH ’ na
própria página o ‘H TTP_REFERER’ de vol ve ape nas um “array ()” vazio. Irá catal ogar um ‘REFRESH ’
com o um 'h it' de ‘URLD ire cto’.
Num s is te m a de e s tatís ticas é im portante q ue te nh a conh e cim e nto de q uais as páginas m ais
vis itadas no s e u w e bs ite . Util
izará $_SERVER['PH P_SELF']
, contudo ao utilizar e s ta ins trução re ce be
inform ação adicionalno URLq ue não ne ce s s ita. Te rá q ue is ol ar a parte finaldo URLde form a a
q ue te nh a ape nas a página vis itada.
if(ereg("^(([1]?[0-9]{1,2}|2([0-4][0-9]|5[0-5]))\.){3}([1]?[0-9]{1,2}|2([0-4][0-
9]|5[0-5]))$", $visitor_hostname)) {
$visitor_hostname = "Indefinido";
Para q ue pos s a s abe r q ualo código e o nom e do País do vis itante através do IP vol ta a utilizar a
cl as s e G e oIP com as funçõe s 'ge oip_country _code _by _addr()' e 'ge oip_country _nam e _by _addr()'
re s pe ctivam e nte .
Com o '@ ge th os ty addr()' pode s abe r o dom ínio do vis itante . No e ntanto pode te r não cons e guir
s abe r o nom e do dom ínio por e s tar a s e r utilizado um Se rvidor Anónim o, ou ainda a s e r util izado
um s e rvidor q ue s e e s conde por várias inte rligaçõe s e m form a de s al tos (h ops ), e acaba s e m pre
por s e r re tornado um novo IP. Salvaguardando e s ta h ipóte s e , te s ta s e o q ue é re tornado é um IP
vál ido com a função ‘e re g()’, cas o s e ja um a condição ve rdade ira e ntão de fine -s e o dom ínio do
vis itante com o 'Inde finido'.
<22>
a program ar
D e ve m os conh e ce r q ue Expl orador de Inte rne t (Brow s e r) util iza o vis itante , ao criar um w e bs ite
de ve rá s e r s e m pre com patíve lcom todos os Expl oradore s e xis te nte s . É óbvio q ue com patíve l
com todos a 100% é praticam e nte im pos s íve l , portanto é ne ce s s ário s abe r s e m pre q uais s ão os
m ais im portante s e m ais util izados pe l o vis itante , de form a a de s e nvol ve r no s e u w e bs ite a
com patibil idade com os outros Expl oradore s dos vis itante s . Com o código acim a de s crito pode -
s e e ntão ve rificar q ue a ins trução $_SERVER[‘H TTP_USER_AG ENT’]de vol ve um a s tring, na q ual
pe rm ite s abe r o Expl orador de Inte rne tq ue e s tá a s e r util
izado na vis ual ização do s e u s ite .
D a m e s m a form a q ue s oube q ualo Expl orador de Inte rne t através da 's tring' re tornada pe lo
'H TTP_USER_AG ENT', tam bém s e cons e gue s abe r o Sis te m a O pe rativo do util izador. É um dado
bas tante im portante , principal m e nte s e e s tive r a de s e nvol
ve r um w e bs ite com conte údo para
PC's , Sm artph one 's ou PD A's . Tam bém aq ui o código foi re s um ido, pode ndo e ncontrar m ais
Sis te m as O pe rativos no Scriptcom pl e to.
Cl
as s e
Continuando o fich e iro 's tatis tics .ph p' ch e gou a al
tura de criar e ntão a 'Cl as s e ' re s pons áve l
pe l
a ge ração dos gráficos e re l atórios através dos dados e xis te nte s na Bas e de D ados .
A próxim a função da 'Cl as s e Statis tics ' é de m e ra pe rs onal ização do gráfico para o s e u
as pe cto vis ual
, com o talnão irá s e com e ntada. M ais inform ação s obre a pe rs onal ização dos
gráficos de ve rá s e r obtida e m : h ttp://w w w .m aani.us /ch arts /inde x.ph p?
m e nu=G al
le ry .
<23>
a program ar
class Statistics {
Com e s ta função pre para-s e o as pe cto vis ualpara o gráfico de colunas , m as e xis te tam bém
um a função para pe rs onal
ização do gráfico circul ar no Scriptcom pl
e to.
<24>
a program ar
Com e s ta função pre para-s e o as pe cto vis ualpara o gráfico de colunas , m as e xis te tam bém
um a função para pe rs onal
ização do gráfico circul ar no Scriptcom pl
e to.
Es ta função irá ge rar o G ráfico para totais de vis itas por dia, e xtraindo os dados da bas e de
dados com contage m de todos os IPguardados e com os totais agrupados por dia.
for ($i=0;$i<(($endDate-$beginDate)+1);$i++) {
$days[$i]=date("d-m",strtotime("-".(($endDate-$beginDate)-$i)."
day",strtotime(changeDate($endDate))));
}
while($row_pageViews=mysql_fetch_array($pageViews,MYSQL_ASSOC)) {
for ( $i=0 ; $i < sizeof ( $days ) ; $i++ ) {
if($days[$i]==date("d-m",strtotime($row_pageViews['data']))){
$dailyVisits[$i]=$row_pageViews['hits'];
} else {
if ( $dailyVisits[ $i ] > 0) {
$dailyVisits[ $i ] = $dailyVisits[ $i ];
} else {
$dailyVisits[ $i ] = 0;
}
}
}
}
Com um 'array ' de inte rvalo dos dias e s colh idos ch e gou a al tura de pre e nch e r um outro 'array '
com o m e s m o núm e ro de pos içõe s q ue conte nh a os totais de vis ita naq ue l
e re s pe ctivo dia.
$chart = $this->setGraphicColumnStyle ( $chart );
A form a de pre e nch e r a inform ação para ge rar o gráfico e m Fl as h é com o num program a de
Folh a de Cál cul o. Cria-s e o rótul
o do 'X' e do 'Y' e no cruzam e nto dos rótul os pre e nch e -s e com os
dados re s pe ctivos . Após o pre e nch im e nto da variáve l'$ch art' com todos os dados ne ce s s ários à
ge ração, re torna-s e e s s a varáve lq ue irá s e r util
izada m ais tarde pe la Cl
as s e Ch arts . O re s tante
artigo s e rá apre s e ntado na próxim a e dição.
<25>
s e gurança
<26>
s e gurança
<27>
el
e ctrónica
Re de CAN Re de CAN e
Introdução m icrocontrol
adore s
No s e guim e nto do artigo M icrocontrol adore s D e fine ape nas a l igação fís ica e o control o
da e dição 4 de s ta nos s a re vis ta vam os do ace s s o ao m e io de trans m is s ão (l igação
abordar ne s te artigo, al guns conce itos de dados ).Foi de s e nvolvido para apl icaçõe s
s im ple s introdutórios das topol ogias das e m be dde d (l igação dos control os nos
re de s de dados . Para e xe m pl ificar a m otore s de autom óve is ) - Bos ch 19 9 1.
apl icabilidade de s tas re de s vam os us ar
m icrocontrol adore s da M icroch ip (Pics ). No Um a re de Can é com pos ta por um grupo de
final s e rão apre s e ntados al guns e xe m pl
os nós . Cada nó pode com unicar com
práticos re l acionados com o conte údo do q ual q ue r outro nó da re de . A com unicação
artigo. é s uportada por pacote s robus tos
de nom inados de M e ns age ns . O protocol o
Can faz us o do CSM A/CD -CR (Carrie r Se ns e
Conce itos de ligaçõe s de M ul tipl e Acce s s / Col lis ion D e te ction and
dis pos itivos Col l is ion Re s olution), ou s e ja, cada nó ante s
de e nviar inform ação para a re de , “e s cuta”
Nal guns s is te m as el
e ctrónicos há a o q ue s e pas s a na re de , s e e ve ntual m e nte
ne ce s s idade de m anipul ar e tom ar de cis õe s e s ta e s tive r l ivre , e ntão col oca a s ua
com bas e e m inform ação q ue não e s tá m e ns age m na re de , s e dois ou m ais nós
local m e nte ace s s íve l , be m com o h á a te ntare m col ocar inform ação na re de ao
ne ce s s idade de trans fe rir inform ação para “m e s m o te m po”, e ntão dá-s e um a col is ão.
outros l ocais . Para s e pode r l idar com e s tas Am bos de te ctam e s s a col is ão e e s pe ram
s ituaçõe s e xis te m “re de s ” q ue inte rl
igam dois um te m po al e atório até vol tar a trans m itir.
ou m ais pontos de inte re s s e . D e um m odo
s im plis ta, pois e xis te m várias variante s de Ao contrário do artigo da e dição 4, onde foi
inte rl
igaçõe s , e s tas pode m s e r ponto-a- us ado um PIC 16f877 ne s te artigo irão s e r
ponto ou m ul ti-ponto. Talcom o os nom e s us ados PIC18f2580. O obje ctivo do trabal ho
indicam , a prim e ira l iga um ponto a outro s e rá pôr 4 Pics a com unicar e ntre s i. Para
ponto. fácilim pl e m e ntação vam os us ar um M as te r
e 2 Sl ave s . D e notar q ue o CAN não im plica
q ue e xis ta um M as te r, m as para q ue s e ja
m ais s im pl e s a apre ndizage m , adopta-s e
e s ta e s tratégia.
E a s e gunda l iga vários pontos , onde é
pos s íve lq ue e xis ta troca de inform ação e ntre Em cada nó vam os te r um Le d e um
todos , pode ndo e xis tir um m as te r ou não… pote ncióm e tro. O util izador, através do
te rm inalirá e s colh e r um nó e pe de a e s s e
nó o val or do pote ncióm e tro, ou e ntão pe de
a um de te rm inado nó para ace nde r o l ed x
ve ze s . M ais um a ve z a com unicação e ntre
os Pic m as te r e o PC s e rá fe ito com us o da
porta s érie (ou us b com adaptador), tal
com o apre s e ntado no artigo da 4ª e dição.
<28>
el
e ctrónica
Ante s de com e çar a program ar, h á al guns porm e nore s re l ativam e nte ao m odo de
funcionam e nto dos Pics q ue de ve m s e r tidos e m conta. Ne s te artigo, não irão s e r e xpl
icados ,
s om e nte apre s e ntados , m om e adam e nte o m odo de ope ração dos Pics , re gis tos de Baud
Rate , fil
tros e m ás caras dos buffe rs CAN.
Program ação:
O s nós B,C vão s e r idênticos , o q ue vai dife rir é nom e pe l o q uale le irão “re s ponde r”
(Ide ntifie r). O nó A ao s e rvir de M as te r, vai s e r o re s pons áve lpe l
a re ce pção e apre s e ntação
da inform ação. As s im com e çando pe l o nó M as te r:
Em prim e iro l
ugar h á q ue com e çar por faze r a inicial
ização dos vários m ódul
os .
void main(void)
{
TRISA=0xff;//input port
ADCON0=0b00000001; //channel AN0
ADCON1 = 0x00; //Vref=vss&VDD All PORTA analogic I/O
ADCON2=0b00001010;//rigth justified;2tad;fosc/32
//Inicialização da USART
ECANInitialize();
INTCONbits.GIE = 1; //Enable interrupts
<29 >
el
e ctrónica
default:
switch(print_menu()) Putsr("\r parametro incorrecto\r");
{ break;
case 'r':
Putsr("\r\r\r\r\r\r\r\r");
Cas o o nó e xis ta e m can_rx te re m os o nom e
Putsr("\r#####################");
Putsr("\r#_Select NODE");
do nó do q ualpre te nde m os re ce be r o val or
Putsr("\r-->"); do pote ncióm e tro. AD C_REQ é um a m acro
can_rx=Re(); de finida com o 0xa, m ais àá fre nte vam os us ar
a m acro AD C_VAL q ue e s tá de finida com o
0xb. Es tas m acros s ó s e rve m para facilitar a
Re ce bido o nom e do nó te m de s e ve rificar program ação e torná-l a m ais l e gíve l
.
se e le e xis te , cas o não e xis ta aborta-s e a
função e vol ta-s e a pe dir um a nova função: if(can_rx!=0)
{
data[0]=ADC_REQ;
if(! find_node(can_rx))
{ A função ECANs e ndM e s s age é um das
Putsr("\rNODE DOESNT EXIST\r"); m uitas funçõoe s dis ponibilizadas pe l
a
Putsr("\r press any key to M icroch ip, para q ue s e pos s a trabalh ar com
continue"); o protocol o CAN s e m q ue para is s o s e ja
Re(); ne ce s s ário um a grande pe rda de te m po na
can_rx=0; m anipul ação dos re gis tos dos Pics
break;
} As s im , e s ta função te m com o parâm e tros de
e ntrada:
•Ide ntifie r - nom e do node de s tinatário
break;
•D ata - array onde e s tão as m e ns age ns
•Size - núm e ro de e l e m e ntos do array data
Cas o a função pe dida pe l o util
izador s e ja
•ECAN_TX_STD _FRAM E - fl ags re l
ativas
a de e nvio e ntão é re ce bido um 's ':
ao funcionam e nto do m ódul o ECAN.
<30>
el
e ctrónica
D e notar q ue s ó s e avança no código O val or 0xc (código abaixo) à prim e ira vis ta
q uando a m e ns age m for e nviada. É aq ui não te m ne nh um s ignificado, no e ntanto e le
ne s te ponto q ue e ntra o protocol o CSM A/CD - indica q ue a função a s e r de s e m pe nh ada
CR. D o ponto de vis ta do program ador o q ue pe l
o node é a de ace nde r o l e d, talcom o as
inte re s s a é q ue a m e ns age m s e ja e nviada, m acros AD C_VALe AD C_REQ
no e ntanto é pos s íve ls abe r porq ue é q ue e l
a
não foi e nviada àá prim e ira, m as e s te data[0]=0xc;
as s unto não vai s e r abordado ne s te artigo. while( !ECANSendMessage(can_tx,
data,4,ECAN_TX_STD_FRAME));
while( can_tx=0;
ECANSendMessage(can_rx,data,1, }
ECAN_TX_STD_FRAME) );
Putsr("\rRequest send..."); As s im e s tá concl
uída a ope ração do m as te r.
Putsr("\rwaiting...\r");
Talcom o foi dito ante riorm e nte , os outros dois
A função ECANRe ce ive M e s s age é nós vão te r o código m uito pare cido. As
form alm e nte ide ntica à ante rior. dife re nças vão e s tar nos ide ntificadore s das
m e ns age ns CAN, pois um vai te r q ue actuar
while( !ECANReceiveMessage(&id, q uando for re ce bido o caracte r B e o outro
data, &dataLen, ECAN_TX_STD_FRAME) ); te m q ue actuar q uando for re ce bido o caracte r
C.
O m as te r te m um ide ntifie r igualao by te “0xa“.
As s im s e ndo, s ó irá s e r apre s e ntado o código
if((id==0x’)&&(data[0]=ADC_VAL)) de um dos nós .
{
Putsr("\r\rADC VALUE\r --> ");
<31>
el
e ctrónica
Concl
us ão
Em bora todos e s te s prog ram as s e jam
s im ple s, e le s s ão a e s s ência de todas as
re de s C A N. A q u i foram u s ados 3 Pics .
Ricardo Roch a
<32>
te cnol
ogias
M ul
ti-Core
Introdução Sy m m e tric M ul
ti-Proce s s ing
A indús tria de proce s s adore s te m vindo a SM P é a s ol
ução m ais com um no q ue toca a
e vol uir a um pas s o cons tante nos úl tim os criar um s is te m a m ul
ti-proce s s ador e m q ue
anos . A prol ife ração dos com putadore s e das dois ou m ais proce s s adore s e s tão
tare fas q ue l h e s incum bim os continuam a cone ctados a um a m ain m e m ory partil h ada.
pre s s ionar a ne ce s s idade de proce s s adore s
m ais pode ros os . As s im a trans ição para Um a arq uite ctura SM P pode facil m e nte
proce s s adore s m ul ti-core torna-s e num ponto m ove r cargas de trabal ho e ntre
crítico ne s te novo de s e nvol vim e nto. proce s s adore s com o de vido s uporte por
parte do SO (Sis te m a O pe rativo). O l ado
ne gativo de s ta arq uite ctura é q ue com o
O M ul ti-Core cons is te e m col ocar dois ou e m s is te m as com ape nas um proce s s ador
m ais núcl e os (core s ) no inte rior de um único os ace s s os à m e m ória s ão m ais le ntos q ue
ch ip. O obje ctivo de s te de s ign é para o proce s s ador a ace dê-l a. No cas o do SM P ,
pos s ibilitar ao s is te m a e xe cutar várias já q ue ape nas um proce s s ador pode
ope raçõe s e m s im ul tâne o e as s im alcançar ace de r à m e m ória de cada ve z, é pos s íve l
mel h or ove ral lpe rform ance para re s ponde r q ue vários proce s s adore s não pos s am
às ne ce s s idade s dos dias de h oje . e xe cutar trabal h o (s tarvation). Am bos os
novos proce s s adore s dual -core da AM D e
Inte lpode m s e r cons ide rados capaze s de
No e ntanto e xis te m várias abordage ns a e s te SM P .
probl e m a, no de corre r de s te artigo vam os
fal ar s obre te cnol ogias q ue e s te nde m a Exis te m lim itaçõe s ao us o do SM P
, vários SO
e ficiência do proce s s ador – para al ém dos não s uportam e s ta te cnol ogia (com o o
G H z e da Le i de M oore (um a noção e rrada W indow s XP H om e ) e não farão us o do
do de s e m pe nh o dos proce s s adore s é s e gundo proce s s ador. Tam bém a m aior
as s ociar e s te à ve l
ocidade do s e u re l
ógio). parte dos program as e xis te nte s s ão s ingle-
th re ade d, o q ue s ignifica q ue ape nas um
proce s s ador pode e xe cutar os com andos
de s s e program a não tom ando partido da
capacidade totaldo s is te m a.
M ul tith re ading, H y pe r-
Th re ading, or M ul ti-Core ?
Todos os program as s ão fe itos de th re ads ,
s e q uências de ins truçõe s q ue o
proce s s ador vai e xe cutar. Program as
s e q ue nciais s ão fe itos a partir de um a
única th re ad. No pas s ado e s te tipo de
program as dom inavam o cam po do
s oftw are .
<33>
te cnol
ogias
<34>
te cnol
ogias
No cas o dos proce s s adore s a re gra é a Exis te m duas opçõe s para l idar com e s te s
m e s m a. Até agora te m os vindo a as s is tir a probl e m as de pe nde ndo do trabal h o e das
m étodos q ue m e l h oram o de s e m pe nh o ne ce s s idade s do cons um idor. A prim e ira é
com o as th re ads q ue pe rm ite m ao com pl e tar um a col e cção de trabal h os no
com putados e xe cutar dife re nte s ope raçõe s m e nor te m po pos s íve l . Ne s te cas o cada
q uas e e m s im ul tâne o. M as q uas e não trabal h o individualpode corre r num único
bas ta, nunca pode rá igual ar outro iguala proce s s ador. Tudo o q ue o program ador s e
s i e é e s s e o conce ito de m ulti-core . pre cis a de pre ocupar é q ue o s oftw are q ue
control a os te m pos de e xe cução dos
trabal h os cons iga lidar com e s te s de um a
As te cnol ogias a s e re m de s e nvol vidas m ane ira e ficie nte .
com o o m ul ti-core de pe nde m do
paral el is m o, is to é, m úl tipl
as actividade s a A s e gunda opção ocorre q uando os
s e re m e xe cutadas ao m e s m o te m po. trabal h os individuais pre cis am de se r
Se rvidore s típicos pos s ue m m úl tipl
as portas com pl e tados no m e nor te m po pos s íve l . Um
por caixa. O paral elis m o com e ça a tom ar e xe m pl o s e ria o m undo dos ne gócios onde
im portância e s e os produtore s de s oftw are s ão ne ce s s árias re s pos tas rápidas para
q uis e re m s e r re l e vante s , te rão de apre nde r s uportar de cis õe s e m te m po re al . Ne s te
al idar com is s o. cas o ape nas um trabal h o pre cis a de s e r
e xe cutado e m m e nos te m po. Ch am am os a
is to tirar partido do paral elis m o de ntro de
Um bom com e ço para anal is ar o probl ema um único trabal h o para pe rm itir a e s te q ue
s e ria obs e rvar o q ue te m vindo a s e r fe ito corra e m m e nos te m po para um tam anh o
no cas o dos s upe r-com putadore s . Es te s do probl ema dado, “program ação
com putadore s atinge m o s e u níve l de paral el a.”
com putação através da cone xão e xis te nte
e ntre vários m ais pe q ue nos com putadore s . Program ação paral ela te m s ido durante
Exis te m duas arq uite cturas dis tintas : anos o dom ínio dos program adore s de
m e m ória dis tribuída m úl tipl as ins truçõe s s oftw are de com putação de al
ta
m úl tipla data (M IM D ) ou m e m ória pe rform ance (H PC, h igh pe rform ance
partil h ada M IM D . É ch am ada de ‘m e m ória cum puting). H oje , contudo, todos os
partil h ada’ o s is te m a onde e xis te um program adore s de s oftw are pre cis am de
e nde re ço onde todos os e l e m e ntos a pe rce be r program ação paral ela.
s e re m proce s s ados partil h am . Se a
m e m ória é dis tinta e os e l e m e ntos a s e re m
proce s s ados ape nas pode m inte ragir
através da re de e ntre e l e s , ch am am os o
s is te m a de ‘m e m ória dis tribuída’.
<35>
te cnol
ogias
<36>
publ
icidade
tutorial
<38>
tutorial
<39 >
tutorial
<40>
tutorial
<41>
tutorial
Ao e s cre ve rm os & a e & b e s tam os a dize r ao O if() funciona da s e guinte m ane ira:
com pil ador q ue ao re ce be r dois inte iros
[“% d”] , q ue re m os q ue s e jam al ocados no if (condição)
e nde re ço de m e m ória & a e & b {
re s pe ctivam e nte . Pe ns e m os nis to com o s e ndo expressão 1;
cas as . Te m os a cas a a com o e nde re ço & a e }
a cas a b com o e nde re ço & b. O u s e ja, o else
{
program a e s pe ra o val or para o inte iro a
expressão 2;
s e guido de ENTER e de pois , e s pe ra o val or de }
b s e guido de m ais um ENTER. Se pe rce be rm os
be m com o o s canf funciona, fica aq ui um Com o já re fe rim os ante riorm e nte , um bl oco
program a q ue re ce be a data de nas cim e nto {}, s ó pre cis a de e xis tir, s e e xis tir m ais do
e de pois a confirm a, m os trando no e crã as q ue um a e xpre s s ão. Em C, al go é
opçõe s e s col h idas pe lo utilizador: ve rdade iro s e for dife re nte de 0 [ze ro] , ou
s e ja, 1 é ve rdade iro, 642 é ve rdade iro, -2,3
#include <stdio.h>
é ve rdade iro e 0 [ze ro]é s e m pre fal s o.
int main()
Pos to is to, vam os a um s im pl e s program a
{
//declaração de variáveis para pôr e m prática o nos s o if():
int ano;
int dia; #include <stdio.h>
int mes; int main()
{
printf("Insira a sua data de int x = 10;
Nascimento [mes em numero]\n\nAno:"); int user;
// obter valor de ano printf(“Insira um numero maior que
scanf("%d", &ano); %d: “, x);
printf("Dia: "); scanf(“%d”, &user);
// obter valor de dia if (user > x) // se condição for
scanf("%d", &dia); // verdadeira, executa o seu corpo
printf("Mes: "); {
// obter valor de mes printf(“Inseriu o numero %d que é
scanf("%d", &mes); maior que %d\n”, user, x);
// imprimir os dados do utilizador }
// no ecrã else // caso contrário
printf("Data:\n%d\\\%d\\\%d\n", // executa este corpo
ano, dia, mes); {
return 0; printf(“O numero %d que inseriu
} nao é maior que %d\n”, user, x);
}
return 0;
}
<42>
tutorial
<43>
gnu/l
inux
<44>
gnu/l
inux
Es te pe q ue no am bie nte m inim al is ta não é e s te pe q ue no s is te m a ch e ga, o q ue é um
propriam e nte al go novo, é bas e ado noutro ch am ariz para util izadore s com m ais inte re s s e
W M : o Bl ack Box. Se ndo m uito s e m e l h ante a e m apre nde r, ou m ais conh e cim e ntos .
e s te , principal m e nte vis ual m e nte , te m -s e
progre s s ivam e nte de s tacado e ganh o a
popul aridade q ue o torna num a e s col ha a É rápido, ao m e nos ?
cons ide rar para pc's de baixo de s e m pe nh o.
Em re l ação ao Bl ack Box apre s e nta m ais Ne s te cam po não h á a m e nor dúvida,
al gum as funcional idade s im portante s , com o Fl uxBox é o W M m ais s im pl e s do re ino
um a barra de tare fas configuráve l , a G NU/Linux, q ue incorpora igual m e nte um
pos s ibil
idade de util izar atalh os de te cl ado, e m aior núm e ro de funcional idade s . A s ua
pode r agrupar todas as jane l as e m ape nas s ource não te m m ais de 1M B, de m orando
um a com s e paradore s . Ve rs õe s m ais ape nas al guns m inutos a com pil ar. M als e
re ce nte s apre s e ntam inovaçõe s no de s ign e ntra pode r-s e -á de s de l ogo cons tatar a
com o jane l as com cantos arre dondados e rapide z com q ue s e cons e gue util izar e s te
trans parências . pe q ue no s is te m a, ge ral m e nte ocupando,
s e m m ais ne nh um a apl icação e xte rior
abe rta, te ndo ape nas o s is te m a bas e por
Sim pl
icidade ? trás e s e m s w ap utilizada, aproxim adam e nte
39 M B de m e m ória. Is to pe rm itirá corrê-l o até
Não s e rá pre cis o m uito te m po para q ue nos pc's m ais antigos s e ndo ne ce s s ária, no
fiq ue a conh e ce r os cantos à cas a de s te e ntanto, a cons ciência de q ue q ual q ue r
W M , com util ização inte ns iva pode rá até apl icação, por m ais s im pl e s q ue s e ja,
e s tranh ar e não s e h abituar a m ais ne nh um el e vará l ogo a m e m ória para val ore s m ais
s is te m a q ue não dê ao cl iq ue dire ito do rato al tos e q uiçá abus ivos , com o al iás é l ógico.
um pape l ful cral na acção. No e ntanto,
tudo is to te m um cus to, ou ne nh um , Se s e q uis e r re duzir ainda m ais a m e m ória
de pe nde ndo do util izador q ue s e ja. Al ém ocupada, pode r-s e -á optar por um a s is te m a
da s ua s im pl icidade , Fl uxBox é tam bém bas e m ais l e ve do q ue o q ue nos é
conh e cido por cons e guir apre s e ntar um proporcionado por um a norm aldis tribuição
s is te m a com um de s ign actuale com um a com a opção de ins tal ar Fl
uxbox (com o
boa dos e de e y e candy, m as não é re fe rido D e bian, G e ntoo, SuSe , e tc), caindo a
com o ch e gar l á. A ve rdade é q ue e s te e s col
h a no bas tante fam os o D am n Sm al l
pe q ue no s is te m a é total m e nte configuráve l Linux, um a dis tribuição de 50M B de
m as , para o faze r, te rá de s e h abituar, tanto tam anh o q ue incl ui FluxBox.
à util ização da cons ol a, com o a inve s tir
al gum te m po e m apre nde r a adicionar
novos te m as , e ditar o m e nu e de finir Concl
us ão
apl icaçõe s de com e ço autom ático no
s tartup do s is te m a, tudo configuráve le m Se gos ta de apre nde r, e q ue r o m e l h or q ue
fich e iros de te xto s im pl e s . Além dis s o, e e xis te não com prom e te ndo a pe rform ance ,
ape s ar dos m uitos te m as e xis te nte s na Fl uxBox é a e s col h a a tom ar. O s e u de s ign
Inte rne t, ne m s e m pre ficam os conte nte s s im pl e s e funcional idade já conq uis taram
com o obtido, e e s tare m os a um pas s o de m uitos , de q ual q ue r form a, não h á com o
andar a vas cul h ar nos fich e iros dos te m as , e xpe rim e ntar e tirar a prova dos nove . Se
e a e ditá-l os a nos s o be l
o praze r. não q uis e r ins tal ar propos itadam e nte e s te
am bie nte gráfico, pode rá s im pl e s m e nte
Se s e re fe re o abom ináve lq ue is to pos s a s e r faze r o dow nl oad do Live CD da dis tribuição
para um util izador q ue ape nas q ue r al go l e ve D am n Sm al lLinux e com provar o q ue l e va
e pronto a us ar, h á q ue re fe rir tam bém o m uitos , m e s m o pos s uindo pc's de e l e vada
e s pantos o de s ta pe rs onal
ização e xtre m a a q ue pe rform ance , a tê-l o com o e s col
h a nº 1.
<45>
gnu/l
inux
Sim pl
e s e Funcional
Us a a bibl iote ca G TK (talcom o G NO M E)
e ve m por de faul t com o Th unar com o
file m anage r. Es te úl tim o criado foi para
s e r “l
e ve ” q uando com parado com ,
Ce l
<47>
e ve ntos
Aprove itou-s e para abordar principal m e nte Para te rm inar, a úl tim a apre s e ntação ficou
as de cis õe s fe itas pe l a e q uipa para o a cargo de Pe dro Sous a, program ador w e b
de s e nvolvim e nto de s te proje cto, s e ndo para a Acce nture , q ue já h avia
dado um m aior foco à pl ataform a w e b apre s e ntado o s e u proje cto na 5ª e dição
e s colh ida, Ruby on Rails. da Re vis ta PRO G RAM AR, o w e Spe ndM one y.
Es ta foi um a continuação do te m a
"Inovação", de s ta ve z apre s e ntando al guns
O fundador da W e Bre ak Stuff, e m pre s a bons e xe m pl os , dando e s pe ciale nfas e à
portugue s a de dicada ao de s e nvol vim e nto, W ii, a nova cons ola da Ninte ndo.
de s ign e e s tratégia para produtos w e b,
Fre de rico O live ira, ve io fal ar s obre o te m a Em s um a, foi, s e m dúvida ne nh um a, um a
"Inovação e m Portugal ". Foram fe itas óptim a iniciativa, pois para al ém de s urgir
dive rs as críticas à fal
ta de m ais um e s paço de divul gação do q ue s e
e m pre e nde doris m o da m aioria dos faz e m Portugal ne s ta áre a, s urgiu
portugue s e s e à fal ta de oportunidade s principal m e nte m ais um e s paço de
q ue s ão dadas a novas ide ias , s e ns ibil
ização, m otivação e incubação de
com parando com outros pontos do gl obo. ide ias , prontas a s e r partil h adas e
de s e nvol vidas . Es te é um dos cam inh os
para atingir a re corre nte m e nte fal ada
Se guiu-s e um a Introdução à l inguage m de "Inovação". Fe l izm e nte é já pos s íve l
program ação Pe rl , e m bora m ais virada obs e rvar um re s ul
tado prático de s te
para o as pe cto s ocial , ou s e ja, para as e ve nto: um l
ocal de divul gação e
com unidade s e s uporte ge rado à s ua vol ta: s e ns ibil
ização s obre as práticas de al gum as
CPAN, m ail ing lis ts e m l íngua portugue s a, e m pre s as , ao ins e rire m D RM s nos s e us
Pe rlM onge rs , e ntre outros ... Apre s e ntação produtos (h ttp://w w w .drm -pt.info).
e s ta q ue foi re al izada por Ne l s on Fe rraz,
profis s ionalda Se gul a Te ch nologie s . Para m ais inform açõe s s obre e s te e ve nto,
vis ite m o s ite oficialh ttp://te cnonov.ne t
Sérgio Santos
<48>
anál
is e s
UM L, M e todologias
e Fe rram e ntas CASE
Al
be rto S il
va
Carlos Vide ira
Editora: Ce ntroAtl
antico.pt
e cção: Te cnol
Col ogias
Páginas : 357
2ª Edição, 1ª Edição: M arço de 2005
ISBN: 9 89 -615-009 -5
<49 >
inte rne t
h ttp://l
abs .digg.com /bigs py /
Vide o-aul
as de PH P
h ttp://program m ing.l
e arningne rd.com /ph p-bl
og
Joos t
Nova apl icação pe e r-to-pe e r para o s tre am ing de canais
de TV. Um a nova form a de aprove itar o m e l h or dos dois
m undos : TV e inte rne t, através de um a apl icação fácilde
us ar e onde pode m os ve rdade iram e nte e s col h e r o q ue
q ue re m os ve r.
<50>
bl
ue s cre e n
Probl
e m as de te cl
ado
Le ve o s e u W indow s /M ac Sol
ução de s e s pe rada
cons igo
<51>
com unidade
<52>