quinta-feira, 22 de janeiro de 2009

P2P em Java (parte 1) Orientação a Objetos

Hoje vou comentar sobre um trabalho do semestre passado (6º) referente a cadeira de redes onde deveríamos simular um software P2P usando sockets. Para resolução do problema foi usado orientação a objetos.

O que é orientação a objetos?

É um paradigma de programação onde se prevê uma modelagem de seu software divido em objetos.

Um objeto é criado com base em dois documentos (não somente): “levantamento de requisitos” do cliente (no meu caso o professor) e descrições de “caso de uso” (use case). Com a leitura desses dois documentos é levado em considerações “pronomes” para identificação de objetos.

Nosso levanta mento de requisitos ficaria mais ou menos assim: Construir um software que troque arquivos entre um servidor em um cliente pela rede independente da implementação do cliente e do servidor, usando um protocolo para padronização.

Se identificarmos os pronomes teremos:

Construir um software que troque arquivos entre um servidor em um cliente pela rede independente da implementação do cliente e do servidor, usando um protocolo para padronização.

Então teríamos os objetos: Servidor, Cliente, Rede, Protocolo, Arquivo e o próprio software P2P.

Mas os objetos ainda não estão prontos, falta definir o papel de cada um no software.

Continua... (casos de uso)

Excesso de café pode causar alucinações, diz estudo

Uma pesquisa feita por psicólogos da Universidade de Durham, na Grã-Bretanha, sugeriu que beber grandes quantidades de café pode fazer com que uma pessoa tenha maior tendência a sofrer alucinações.

» Café em excesso pode afetar fertilidade

Pessoas que consomem mais de sete xícaras de café instantâneo por dia têm três vezes maior probabilidade de ouvir vozes, ver coisas que não existem ou até acreditar que estão sentindo a presença de pessoas que já morreram, do que as que bebem menos do equivalente a uma xícara, de acordo com os pesquisadores.

Segundo o líder do estudo, Simon Jones, "alucinações não são necessariamente um sinal de doença mental (...) A maioria das pessoas tem experiências breves de ouvir vozes quando não há ninguém presente e cerca de 3% ouvem tais vozes regularmente".

Mas o trabalho científico sugeriu que o risco de isso acontecer aumenta com o alto consumo de café e outras fontes de cafeína.

Cortisol
Os pesquisadores atribuem os resultados de sua pesquisa, feita com 200 estudantes, ao fato de que o café pode levar a um aumento da produção de um hormônio chamado cortisol.

A cafeína aumenta os efeitos fisiológicos do estresse e, nesse estado, o corpo libera cortisol. Uma concentração mais alta da substância no organismo pode fazer com que uma pessoa escute vozes não existentes.

Os cientistas dizem que esperam que a descoberta contribua para um melhor entendimento do efeito da nutrição sobre alucinações.

"Este é o primeiro passo para observar os fatores mais amplos associados a alucinações", disse Jones. "Pesquisas anteriores sublinharam vários fatores importantes, como trauma de infância, que pode levar a alucinações clinicamente relevantes".

"Acredita-se que vários destes fatores podem estar ligados a alucinações em parte por causa do seu impacto sobre a reação do organismo ao estresse. Dada a ligação entre comida e humor, e especialmente entre cafeína e a resposta do organismo ao estresse, parece sensato examinar o que uma perspectiva nutricional pode esclarecer", concluiu Jones.


Fonte: Terra = http://noticias.terra.com.br/ciencia/interna/0,,OI3446887-EI298,00-Excesso+de+cafe+pode+causar+alucinacoes+diz+estudo.html

quarta-feira, 21 de janeiro de 2009

Lógica booleana e premissas (parte 2)



Premissa e lógica andam próximas na programação. Para entender premissa é necessário já saber o básico de lógica booleana.

As junções de premissas levam a uma conclusão, por exemplo:

Premissa 1 – Ramon é feliz.

Premissa 2 – Ramon gosta de programar.

Conclusão – Os programadores são felizes.

Este é um exemplo simples onde a junção de premissas leva a uma conclusão lógica. Agora analisando as premissas anteriores (1 e 2), vamos adicionar outra premissa:

Premissa 3 – Joãozinho não é programador.

Conclusão??? (tempo...)






Conclusão – Joãozinho não é feliz.

Mesmo essas premissas sendo tão simples elas ajudam a entender muito sobre programação, pois é assim que funcionam os sistemas de informação, juntando informações passadas pelos usuários e gerando informações conclusivas, e claro estas premissas não são processadas aleatoriamente, elas são executadas conforme um algoritmo.

Ex: Digamos que vamos desenvolver um software para um

a locadora de filmes, onde um cliente só pode locar um filme se ele não está em débito com a loja, ou se ele for um cliente VIP.

Não "estar em débito" (- Premissa 1)

Ou (operador lógico)

"Ser VIP" (- Premissa 2)







Premissa 1 – Fabio está em débito com a loja. (Estar em débito –

verdadeiro)

Premissa 2 – Fabio não é um cliente VIP. (ser VIP - falso)

Conclusão – Fabio não pode locar um filme.














Premissa 1 – Renato está em débito com a loja. (estar em débito - verdadeiro)

Premissa 2 – Renato é um cliente VIP. (ser vip - verdadeiro)

Conclusão – Renato pode locar um filme.


Lógica booleana e premissas (parte 1)

A lógica booleana é presente na matemática, na computação, na física e etc. Lembram no ensino médio das aulas (interessantíssimas) de física em que o professor simulava a rede elétrica de uma casa (circuito)? Existiam chaves, ativas (verdadeiro) ou desativas (falso), e para controlar, existiam as ligações, que podiam ser:

Onde o circuito aberto é uma ligação desativa (falsa) e circuito fechado a ligação está ativa (verdadeira). Na programação é a mesma coisa (pelo menos em todas linguagens que vi até hoje), com acréscimo de mais um operador, além de verdadeiro e falso, a negação, que simplesmente inverte o é dito. Por exemplo: se dizemos que um circuito está aberto e adicionamos o operador de negação, o resultado que é que o circuito está fechado. Simples não?

Entendendo melhor os operadores:

Operador “E” tem um resultado positivo quando ambos dados são verdadeiros. Por exemplo é verdadeiro apenas quando A e B são verdadeiros.

Tabela:

A

B

Resultado

Verdadeiro

Verdadeiro

Verdadeiro

Verdadeiro

Falso

Falso

Falso

Verdadeiro

Falso

Falso

Falso

Falso



Operador “Ou” é verdade quando A ou B são verdadeiros. Por exemplo se A é verdadeiro, B é falso, o resultado é verdadeiro.

Tabela:

A

B

Resultado

Verdadeiro

Verdadeiro

Verdadeiro

Verdadeiro

Falso

Verdadeiro

Falso

Verdadeiro

Verdadeiro

Falso

Falso

Falso



Quero ajudar pessoas que estão iniciam no mundo da programação.

No próximo post falo sobre premissas.