segunda-feira, 28 de maio de 2012

IA





A inteligência artificial é um ramo de pesquisa da ciência da computação que busca, através de símbolos computacionais, construir mecanismos e/ou dispositivos que simulem a capacidade do ser humano de pensar, resolver problemas, ou seja, de ser inteligente.

Com a evolução computacional a inteligência artificial ganhou mais força, tendo em vista que o seu desenvolvimento possibilitou um grande avanço na análise computacional, podendo a máquina chegar a fazer análise e síntese da voz humana. No início os estudos sobre A.I. buscavam apenas uma forma de reproduzir a capacidade humana de pensar, mas assim como todas as pesquisas que evoluem, com essa não foi diferente.

O progresso na principal área dessa pesquisa, que é a de fazer uma inteligência similar à do ser humano, é lento. Porém, os estudos nessa área têm surtido efeito em várias outras áreas, como o planejamento automatizado e escalonamento, jogos, programas de diagnóstico médico, controle autônomo, robótica e outras mais. 


Na área da Visão Computacional e do Reconhecimento de Padrões em Imagens e Sinais Digitais, a verdade crua e dolorosa é que não existe um algoritmo de “Visão Computacional” genérico. A interpretação de padrões em imagens é um processo complexo e constituído de muitos passos. A interpretação de Imagens é realizada através de: 



Um conjunto de algoritmos (filtros) para imagens, cuja natureza varia dependendo do que se quer identificar e do tipo de imagem trabalhado.
Esses algoritmos são encadeados em uma "pipeline de processamento".
Serão sempre extremamente específicos para cada tarefa a ser realizada
Variação grande. Conjunto de algoritmos a ser utilizado varia:
De acordo com a tarefa
De acordo com as características da imagem.




domingo, 27 de maio de 2012

Sistema WEB






Web é uma palavra inglesa que significa teia ou rede. O significado de web ganhou outro sentido com o aparecimento da internet. A web passou a designar a rede que conecta computadores por todo mundo, a World Wide Web (WWW). Web pode ser uma teia de aranha ou um tecido e também se utiliza para designar uma trama ou intriga.
A web significa um sistema de informações ligadas através de hipermídia (hiperligações em forma de texto, vídeo, som e outras animações digitais) que permitem ao usuário acessar uma infinidade de conteúdos através da internet. Para tal é necessário ligação à internet e um navegador (browser) onde são visualizados os conteúdos disponíveis. São exemplos de navegadores: Google Chrome, Safari, Mozilla Firefox, Internet Explorer, Opera, etc.


Hipermidia e HipertextoHipertexto é o termo que remete a um texto em formato digital, ao qual agrega-se outros conjuntos de informação na forma de blocos de textos, imagens ou sons, cujo acesso se dá através de referências específicas denominadas hiperlinks, ou simplesmente links. Esses links ocorrem na forma de termos destacados no corpo de texto principal, ícones gráficos ou imagens e têm a função de interconectar os diversos conjuntos de informação, oferecendo acesso sob demanda a informações que estendem ou complementam o texto principal.


Hipermidia é o conjunto de meios que permite acesso simultâneo a textos, imagens e sons de modo interativo e não linear, possibilitando fazer links entre elementos de mídia, controlar a própria navegação e, até, extrair textos, imagens e sons cuja seqüência constituirá uma versão pessoal desenvolvida pelo usuário.





O que é um browser?
Um browser é um programa que permite navegar na internet. Em português o termo mais comum é navegador.
Existem vários browsers como por exemplo o Internet Explorer (IE), o Firefox, o Chrome, Safari, etc.
O primeiro browser que apareceu foi o Netscape (actualmente Firefox) que chegou a dominar o mercado. Mas a inclusão do IE no Windows acabou de vez com esta supermacia.
Esta reportagem foi feita por em Nova Iorque (Times Square) por um repórter da Google. Apenas 8% sabiam o que é um browser. Ninguém na entrevista tinha ouvido falar no Chrome (o browser da Google).



O que é Web 2.0
Quem usa a internet com freqüência percebeu significativas mudanças na maioria das páginas que visita. Há alguns anos, os sites estavam disponíveis como livros: as pessoas acessavam, liam e viam o que era de interesse e fechavam. No máximo, a comunicação com os desenvolvedores ou responsáveis pelo conteúdo era através de um email. Atualmente, uma página que se limitar a isso está fadada ao esquecimento.
Hoje, para uma página ser minimamente enquadrada nesse “segundo capítulo” da história da internet, ela deve fornecer experiência de conteúdo para o usuário. Este conteúdo deve ser dinâmico e aberto à participação dele, no mínimo. Deve fugir de blocos de textos e proporcionar opções de alcance daquilo que o usuário deseja.


(O que é Web 2.0): O nome da revolução.
Essas mudanças ganharam o nome de Web 2.0 e são talvez a maior revolução que a internet já passou como um todo. O “2.0” indica uma nova versão da internet, um novo capítulo, novos rumos para a grande rede. O objetivo é fornecer aos navegantes mais criatividade, compartilhamento de informação e, mais que tudo, colaboração entre eles, fazendo com que esses navegantes tomem parte nesta revolução.
Com base nestes conceitos, explodiram serviços de relacionamentos sociais, páginas repletas de vídeos, wikis, blogs e outros serviços com um traço em comum: a participação efetiva do usuário nos dois sentidos do tráfego de informação: recebe-se conteúdo dinâmico, fornece-se o mesmo tipo de informação com a mesma facilidade. O mais interessante disto tudo é que não se trata de uma revolução tecnológica ou atualização brusca. É simplesmente uma mudança na maneira de promover conteúdo dinâmico através da internet.

Ajax: Ciclo de vida e aplicação.





Deficiências da Web Atual
• Apenas descrições sintáticas
• Não há marcação semântica
• Apenas suporte sintático para descoberta,
composição e execução
– Usabilidade, acesso e integração de software
Problema Central da Web Atual
• O significado do conteúdo não é processável
às máquinas: falta semântica
• Grande cobertura, baixa precisão
• Resultados muito sensíveis ao vocabulário

domingo, 13 de maio de 2012

Computação Gráfica e Games

Computação Gráfica e Games            

                 As artes visuais digitais (também conhecidas como Computação Gráfica) é o estudo das imagens e efeitos visuais que são derivados da optica e transmitidos por aparelhos transmissores (Computadores, Televisões, Cinema e afins), com o intuito de passar aos olhos humanos imagens ou aspectos gráficos para o entretenimento.
                 Contudo, a vertente mais conhecida desta área é nada mais nada menos, que os bons e velhos conhecidos jogos, pois é graças às técnicas de edição visual e as ferramentas para manipulação de imagens, que os profissionais da área gráfica podem usar seus diversos conhecimentos sobre a física e matemática.
        Além do mais é graças aos games que a maioria da população acaba demonstrando interesse na área, pois com o atual crescimento do mercado de games, e o aumento dos fãs deste a tendência aos crescimento do mercado desenvolvedor e consumidor tende a crescer.

sábado, 12 de maio de 2012

Utilidades da Computação Gráfica


Gráficos para TV
Esse é o tipo de aplicação que vemos com mais frequência. Suas animações são mais voltadas para movimentação de logotipos e textos.

Visualização Científica
Na aplicação de estudos acadêmicos a computação gráfica tem um papel importante. Ela tem a tarefa de traduzir números e dados em representações gráficos de leitura mais fácil. Essas representações são chamadas as vezes de Visual Data Analysis.

Simulação
A computação gráfica, pode ser utilizada para simular acidentes ou acontecimentos importantes para um público maior. Esse tipo de simulação é muito utilizado em jornalismo, para ilustrar algum acontecimento. Nos EUA, existem empresas especializadas em criar simulações de acidentes de trânsito, para apresentação em tribunais.

Simuladores de Vôo
Os treinamentos de pilotos são realizados de maneira barata e segura nesses simuladores. Essa aplicação é mais restrita, já que os equipamentos envolvidos são caros.


MilitaresOs militares são consumidores ávidos por computação gráfica, pelo menos os militares americanos. Eles utilizam a CG para treinamentos e simulações de cenários envolvidos em conflitos. Os investimentos necessários para o desenvolvimento da informática e da computação gráfica, só foram possíveis graças a interesses militares.

Astronomia e espaço
Esse tipo de aplicação é muito semelhante a visualização científica, mas sua aplicação é mais ilustrativa do que acadêmica. Eventos que se passam a milhões de KM da nossa atmosfera não podem ser filmados com facilidade, então eles são apresentados ao público em geral na forma de uma animação. Existem aplicações científicas também, como estudo de trajetórias e simulação de colisões no espaço.

Arquitetura
A visualização de projetos arquitetônicos é extremamente difundida entre as pessoas que estão começando a trabalhar no mercado de CG. Todos se interessam pelas famosas “maquetes eletrônicas”. Esse interesse não é justificado pela aplicação comercial mais imediata desse produto. Existem mais pessoas interessadas em comprar esse tipo de CG. Com o crescimento do setor de construção, esse é um ramo da CG que só tende a crescer no nosso país.
Arqueologia
O uso de CG para arqueologia é muito parecido com o seu uso para arquitetura. A diferença é o objetivo. Na visualização arquitetônica, a CG mostra o que será construído e na arqueologia o objetivo é reconstruir um local, para mostrar como ela era no passado.

Medicina
Aplicações médicas são importantes na CG para desenvolvimento de treinamentos e auxílio em diagnósticos. Algumas empresas de CG são especializadas nesse tipo de aplicação, como eu já mostrei em um artigo publicado aqui.
Filmes
Acho que eu não preciso falar muito sobre esse tipo de aplicação, já que é uma área altamente divulgada. Aqui as aplicações da CG são fundamentais para contar uma história de maneira convincente. Nos últimos anos a CG tem tido um destaque mair pela presença de filmes completamente produzidos em CG.

Efeitos especiais
Esse ramo da CG tem relação direta com os filmes. Várias produções utilizam a exaustão efeitos especiais para contar uma história. Você já imaginou contar a história de Star Wars, sem efeitos especiais? Tanto a área de filmes como a de efeitos especiais exigêm hardware sofisticado e conhecimentos técnicos avançados, dos profissionais envolvidos na produção.

Publicidade
Utilizar a CG na publicidade ajuda a vender mais produtos, com a utilização de recursos sofisticados. Essa área é bem desenvolvida no nosso país e pode absorver muitos profissionais no futuro.

Comunicação corporativa
Com acesso facilitado a tecnologia, várias empresas utilizam a CG para realizar treinamentos e comunicados. Material produzido dentro da própria empresa pode ser atualizado de maneira mais fácil e rápida.

Educação
As aplicações da CG para educação são infinitas, podendo simular praticamente qualquer coisa com o objetivo de instruir e ensinar. O advento de instituições que utilizam ensino a distância, impulsiona esse mercado, já que boa parte do materia deve ser produzido em meios eletrônicos.
Jogos
O mercado de jogos eletrônicos sempre foi uma grande promessa no nosso país. Os jogos modernos consomem uma enorme quantidade de animações, modelos 3D e ilustrações. Esse é um mercado que tem poucos profissionais especiaizados e que pode trazer um bom retorno para quem se interessar.

Arte
A CG também tem aplicações para artistas interessados em desenvolver trabalhos em 3D e ilustração. Existem vários artistas desenvolvendo animações abstratas e simulações que envolvem formas e tempo.

Multimídia
Essa área é uma mistura de várias das aplicações citadas aqui. A habilidade de misturar textos, sons e imagens em uma interface com o usuário. Esse tipo de aplicação pode ser utilizado para vender produtos, apresentar idéias ou educar pessoas. Existem empresas e profissionais especializados em produzir esse tipo de material.Como você deve ter percebido, as aplicações da CG são variadas e algumas áreas se relacionam diretamente entre si. A escolha da área certa para atuar pode determinar o sucesso ou o fracasso de um profissional. Com esse artigo, pessoas que estão começando a sua jornada profissional na CG, podem escolher de maneira mais fácil a área em que desejam atuar."

Como podemos ver as áreas de atuação de CG são enormes, sendo uma realidade cada vez mais solida no cotidiano pessoal e profissional do homem.

sábado, 21 de abril de 2012

Banco de dados - NoSQL (Parte 02) - Resenha do dia 16/04/12

NoSQL

NoSQL são diferentes sistemas de armazenamento que vieram para suprir necessidades em demandas onde os bancos de dados tradicionais (relacionais) são ineficazes. Muitas dessas bases apresentam características muito interessantes como alto desempenho, escalabilidade, replicação, suporte à dados estruturados e sub colunas.

Os atuais bancos de dados relacionais são muito restritos a isso, sendo necessária a distribuição vertical de servidores, ou seja, quanto mais dados, mais memória e mais disco um servidor precisa. O NoSQL tem uma grande facilidade na distribuição horizontal, ou seja, mais dados, mais servidores, não necessariamente de alta performance. Um grande utilizador desse conceito é o Google, que usa computadores de pequeno e médio porte para a distribuição dos dados; essa forma de utilização é muito mais eficiente e econômica. Além disso, os bancos de dados NoSQL são muito tolerantes a erros.

No caso dos bancos NoSQL, toda a  informação necessária estará agrupada no mesmo registro, ou seja, em vez de você ter o relacionamento entre várias tabelas para formar uma informação, ela estará em sua totalidade no mesmo registro.

Mas qual a diferença entre bancos de dados relacionais e NoSQL?

Banco de dados Relacionais

O que é: baseia-se em que todos os dados estão guardados em tabelas, pelo conceito de entidade e relacionamento. Os dados são separados de forma única, tentando diminuir ao máximo a redundância, pois a informação é criada pelo conjunto dos dados, onde são as relações entre as tabelas que fazem esse serviço.
Características: tabelas, schema definido, hierarquia, redundância mínima, entidade e relacionamento, formas normais, transações ACID (Atomicidade, Consistência, Isolamento, Durabilidade).
Necessidades: sistemas locais, financeiros, corporativos; segurança da informação; consistência dos dados.
Cases: SAP, OpenERP, Previdência Social, Caixa, Itaú, Salesforce, Vale.

Banco de Dados NoSQL

O que é: uma solução alternativa para os bancos de dados relacionais, possuem uma alta escalabilidade e desempenho
Características: registros, schema-free, tolerância à falha, escalabilidade, clusterização, mapreduce, sharding.
Necessidades: sistemas em nuvem, análises sociais, alta escalabilidade, performance na consulta/escrita, replicação.
Cases:Twitter,Facebook, Digg, Amazon, LinkedlN, Google, Yahoo, The New York Times, Bit.ly.

Alguns exemplos de quando usar NoSQL
- Logging/ArquivamentoInsight em computação social.
- Integração de feed de dados externos.
- Sistemas de processamento de pedidos Front-end.
- Serviço de gerenciamento de conteúdo empresarial.
- Estatísticas/análises em tempo real


Banco de dados - SGBDs Relacionais (Parte 01) - Resenha do dia 16/04/12





SGBDs Relacionais
Desde sua criação no início dos anos 1970, o Modelo Relacional de dados tem sido utilizado em larga escala pela grande maioria dos sistemas de gerenciamento de banco de dados. Tendo surgido como sucessor dos modelos hierárquico e de rede, o modelo relacional tornou-se padrão para a grande maioria dos SGBDs (Sistemas Gerenciadores de Banco de Dados), tais como o SQL Server, Oracle, PostgreSQL, MySQL, etc. 
Seus elementos básicos são as relações (ou tabelas), as quais são compostas de linhas (ou tuplas) e colunas (ou atributos).Os dados estão estruturados conforme esse modelo. Outra característica fundamental desse modelo é a utilização de restrições de integridade. Esses elementos são utilizados para garantir que a integridade dos dados seja mantida. As restrições de integridade mais comuns são as chaves, mais especificamente, as chaves primárias e as chaves estrangeiras. 


A chave primária tem o objetivo de assegurar a identificação única das tuplas das tabelas. A chave estrangeira torna os valores de determinado atributo dependentes dos valores existentes em outro atributo, normalmente de outra tabela. Outra característica importante do Modelo Relacional é o processo de Normalização. Seu objetivo é a aplicação de certas regras sobre as tabelas do banco de dados, de forma a garantir o projeto adequado dessas tabelas. Uma característica básica da normalização consiste na separação dos dados referentes a elementos distintos em tabelas distintas, associadas através da utilização das chaves. 


Adicionalmente, o modelo relacional passou a adotar como linguagem de definição, manipulação e consulta de dados a SQL (Structured Query Language). Os SGBDs relacionais oferecem aos usuários processos de validação, verificação e garantias de integridade dos dados, controle de concorrência, recuperação de falhas, segurança, controle de transações, otimização de consultas, dentre outros. A utilização de tais recursos facilitou a vida dos desenvolvedores de aplicações, possibilitando que estes pudessem se preocupar exclusivamente com o foco da aplicação. Como um dos conceitos mais básicos do modelo relacional, as chaves representam uma forma simples e eficaz de associação entre as tabelas do banco de dados. 
A chave primária foi criada com o objetivo de identificar de forma única as tuplas da tabela e ainda de determinar a ordem física dessas tuplas. A chave estrangeira permite uma relação de dependência entre atributos de tabelas distintas, de forma que os valores permitidos em um atributo dependam dos valores existentes em outro atributo. Tais recursos são amplamente utilizados em bancos de dados relacionais e servem como base para a utilização de outros componentes, como é o caso dos índices. Estes elementos tornaram-se padrão para todo tipo de tabela por propiciarem um significativo ganho de desempenho no processamento de consultas. 


Além desses componentes, os SGDBs Relacionais possibilitam que múltiplos usuários possam acessar e manipular um mesmo banco de dados simultaneamente de forma eficiente, recurso indispensável para sistemas de grande porte. Outra característica importante dos SGDBs relacionais consiste na possibilidade do sistema se recuperar de forma adequada de possíveis falhas. O sistema tem a capacidade de retornar ao ponto anterior a falha ocorrida, garantindo que o banco permanecerá em um estado consistente. 
Todos esses recursos ajudaram a manter os SGDBs Relacionais em posição de destaque entre os mais diversos tipos de ambientes computacionais, mas não impediram o surgimento de certos problemas, principalmente devido ao crescimento vertiginoso do volume de dados presentes nos bancos de certas organizações.

domingo, 8 de abril de 2012

Extensão em computação (resenha do dia 09/04/12)


Como dito no site do Departamento de Ciência da Computação da UFBA,  os projetos de extensão constituem o espaço do exercício da função de vincular ensino/pesquisa e sociedade,  articulando a Instituição com os diversos segmentos sociais, tais como entidades governamentais, setor privado, comunidades, movimentos sociais, público consumidor de conhecimentos, artes e serviços. Desta forma, os projetos de extensão atualmente em curso na UFBA vêm priorizando as metas definidas pelo Plano Nacional de Extensão do Ministério de Educação. As atividades de extensão em computação são:


1. Projeto Criptografia e Computação Quântica.  (parceria entre o Departamento de Ciência de Computação e o Departamento de Matemática da UFBA)


 Essa área estuda métodos para processar computacionalmente a informação armazenada em estados quânticos. O projeto tem duas vertentes de ação: a primeira consiste na criação de um grupo de especialistas em informática quântica. O grupo, a ser criado, terá entre seus principais objetivos a realização de um curso e eventos científicos visando a formação de massa crítica no estado para pesquisas nesta nova fronteira tecnológica. A segunda vertente objetiva a realização de pesquisas fundamentais na área de Informação Quântica visando a construção de novas chaves (gates) lógicas quânticas e de novos algoritmos quânticos. O projeto visa dar o primeiro passo rumo ao estabelecimento futuro de uma rede estadual de pesquisa em Informação Quântica, visando justamente agregar e coordenar esforços no estado da Bahia.


2. Curso de Extensão em Software Livre.  (parceria entre Colivre, DCC, e SaferNet Brasil)


 Este projeto de extensão do DCC visa difundir o conhecimento tecnológico por meio da realização de cursos que envolvem direta ou indiretamente softwares que utilizam licenças livres. Desta forma, pretende-se suprir uma demanda de capacitação técnica oriunda da sociedade baiana em geral e, particularmente, da comunidade acadêmica para a apropriação dos softwares livres.


3. Programa Onda Digital. 


 O Programa Onda Digital é um projeto universitário, idealizado com o intuito de envolver professores, estudantes e funcionários da Universidade Federal da Bahia (UFBA) no processo de inclusão sócio-digital. O programa é coordenado pelo Departamento de Ciência da Computação (DCC). A missão desse programa é contribuir no processo de inclusão sócio-digital na Bahia, envolvendo a Universidade em ações educativas, sociais, culturais e de difusão da filosofia do software livre.