quinta-feira, 15 de março de 2012

A Internet pode ser a epidemia do século

Você já parou para pensar como a tecnologia influência a sua vida?. 

Na minha, modesta opinião, podemos considerar a tecnologia como a “epidemia” do século, pois o mundo não vive sem ela. Às vezes passo por essa experiência, quando visito meus pais que residem interior do Paraná, que é muito bonito, mas na “roça” a tecnologia vai demorar em chegar e fiquei uma semana sem ter acesso a nada, quase tive que ir para o hospital, alias fui, mas acompanhar os meus pais, justificativa pela qual fiquei desconectado.
 

Um amigo e vizinho de meus pais me questionou como ele poderia colocar internet lá na roça para suas crianças acessarem, onde nem se quer sinal de celular chega. Pergunto, quem podemos xingar? Nem sinal de celular chega. Bom nem estradas direito eles tem, imagina internet.
 

Mantido as proporções, quando ficamos sem o acesso a tecnologia, principalmente a internet, nos damos conta do quanto ela tem importância nas nossas vidas e acredito que se houvesse um colapso da internet, teríamos com certeza um “epidemia” pelo mundo a fora, para começar eu estaria desempregado e teria que voltar lá na roça trabalhar com meus pais.

terça-feira, 28 de setembro de 2010

Agentes Inteligentes em Redes

Agentes inteligentes em Redes.

Agente Inteligente pode ser definido como sendo um sistema, ou um componente de um sistema, capaz de organizar, selecionar, produzir informações e tomar decisões a partir de algum evento ou fonte de dados.

Um agente tem a finalidade de reter e analisar informações e responder da melhor forma possível.

O que são agentes inteligentes?


De acordo com vários autores, não é possível ainda aceitar um conceito genérico de Agentes Inteligentes. Isto está evidenciado pela característica interdisciplinar dos agentes, pois é utilizado em diferentes áreas.


Em vez da definição formal, há uma lista de características gerais de agentes. Juntas, estas características dão uma impressão global do que é um agente. BRENNER (1998), descreve que os agentes devem ter as seguintes características :

  • autonomia: agentes operam sem a intervenção direta de humanos ou outros, e tem algum tipo de controle em cima das suas ações e estado interno. Isto implica que um agente deve ter o acesso à rede e deve ter mobilidade para operar por ela. A autonomia de agentes está na habilidade de operar no domínio da Internet, enquanto o usuário final está desconectado ou longe da interação com a rede;
  • habilidade de comunicação: agentes interagem com outros agentes e (possivelmente) os humanos por algum tipo de idioma de comunicação de agentes;
  • reatividade: agentes percebem o seu ambiente (que pode ser o mundo físico, um usuário por uma interface de usuário gráfica, uma coleção de outros agentes, a Internet, ou talvez tudo isto combinado), e responde em um modo oportuno a mudanças que acontecem.
  • pró-atividade: agentes simplesmente não agem em resposta ao seu ambiente, eles podem exibir comportamento dirigido tomando a iniciativa sobre circunstâncias específicas. Isto é chamado de comportamento pró-ativo;
  • orientadores de meta: um agente é capaz de manipular tarefas complexas de alto-nível. A decisão de como uma tarefa é melhor dividida em sub-tarefas menores, e em qual ordem e em qual modo estas sub-tarefas devem ser executadas melhor, é realizado pelo próprio agente;
  • mobilidade: a habilidade de um agente para mudar de uma rede eletrônica para outra. Em contraste, agentes estacionários estão limitados a um computador específico. Embora seja capaz de enviar mensagens usando uma rede ou contactar com outros agentes na rede, eles próprios não podem se deslocar sobre esta;
  • colaboração: uma extensão natural do atributo de comunicação dos agentes é a colaboração. Agentes Inteligentes devem ter um espírito colaborativo para existir. A visão é de que Agentes Inteligentes trabalhem juntos para benefício mútuo na resolução de tarefas complexas;
  • adaptabilidade: um agente deve se ajustar aos hábitos e deve trabalhar métodos e preferências de seu usuário. Agentes devem poder examinar o ambiente externo, por exemplo a internet, e o sucesso das ações anteriormente executadas sob condições semelhantes, e adaptar as ações para melhorar a probabilidade de alcançar as metas prosperamente;
  • confiabilidade: o usuário deve estar altamente confiante que seus agentes agirão de acordo com a sua vontade.
  • capacidade de raciocinar: a habilidade de raciocinar durante a execução é um dos aspectos chave da inteligência que distingue os Agentes Inteligentes de outros agentes. Raciocinar implica que um agente pode possuir habilidade para deduzir e extrapolar, baseado em conhecimento atual e experiências anteriores.

Na mesma linha, Anita (2004, p. 113), descreve que os agentes possuem as seguintes características:

  • Autonomia, de modo a agir sem qualquer tipo de intervenção, possuindo controle sobre suas ações e estado interno;
  • Habilidade Social, de modo a interagir com outros agentes (artificiais ou humanos) através de algum tipo de linguagem de comunicação;
  • Sensibilidade, de modo a perceber alterações em seu ambiente, reagindo a tempo;
  • Pro atividade, não só reagindo ao ambiente, mas tomando iniciativas quando conveniente.

Arquitetura e Aprendizado de Máquina

A arquitetura utilizada no desenvolvimento de um agente pode variar muito, dependendo do tipo de aprendizado que queremos que ele tenha. Ele pode, por exemplo, ser construído por meio de sistemas de produção ou reconhecimento baseado em casos. Pode, também, utilizar-se de algoritmos genéticos (IA evolutiva) ou redes neurais (IA conexionista) a fim de buscar aprender durante sua execução, bem como modelar dois ótimos fatores que tais linhas trazem: a evolução e a conexão como meios de aprendizado. Um bom exemplo é o uso de agentes inteligentes em jogos de estratégia em tempo real.

Planejamento, Reação e Pró-Ação

Em computação, quando não aplicamos recursos e/ou técnicas de IA no seu desenvolvimento temos um sistema que responder corretamente as solicitações, mas só àquelas que forem previamente planejadas. Com isso, caso o sistema se depare com algum tipo de dados ou situação que ele não foi preparado previamente, irá ocorrer um erro, conhecimento tecnicamente como “crash”. Normalmente, para estes casos o programador cria condições especiais tratando os erros que possam ocorrer.

Diante disto, surge assim a necessidade de algo mais reativo, que pudesse compreender melhor as opções a fim de fazer suas escolhas. Neste ponto que entra a figura do agente como um ser altamente reativo, capaz de responder as decisões do usuário.

Mesmo assim, somente a capacidade reativa não basta, isto é, não é suficiente para que possamos ter um sistema com um “comportamento humano”, pois nós humanos não somos somente reativos, mas também somos pró-ativos.

Pró-ação é a capacidade não somente de tomar decisões em resposta à outra (reação), mas também de tomar decisões por iniciativa própria tendo como base um comportamento dirigido aos objetivos principais.

E, como falamos anteriormente, a pró-ação é uma das características dos agentes inteligentes. É importante salientar que um agente inteligente somente é pró-ativo se o mesmo possuir autonomia na execução de suas tarefas.

Conclusão

Observamos, em pesquisas na internet, que a utilização de agentes inteligentes pode ser aplicada a muitas áreas do conhecimento, como a Sociologia, Economia, Comportamento Animal, Robótica, Software, etc. Contudo, boa parte das pesquisas é voltadas a área de sistemas computacionais, como sistemas de segurança da informação, robótica, sistemas na área da saúde.


Por fim, creio que a Inteligência Artificial é um ramo que ainda será muito explorado, procurando sempre forma de melhorar a vida das pessoas e dos sistemas como um todo.


Referências Bibliográficas

Sites da Internet - Portal Wiki e http://www.computacao.gigamundo.com
FERNANDES, Anita Maria da Rocha e Colaboradores - Inteligência Artificial Aplicada à Saúde = Visual Books, 2004 - Florianópolis, (SC).
BRENNER,Walter; ZARNEKOW, Rüdiger; WITTIG, Hartmut. Intelligent software agents. Germany : Springer, 1998.

quinta-feira, 19 de agosto de 2010

Engenharia de Software - Prototipação


PROTOTIPAÇÃO


Um protótipo é uma visão inicial de um sistema de software, onde possibilita demonstrar conceitos, experimentar opções de projeto, e em geral para conhecer o problema e suas possíveis soluções. Em suma, a prototipação é o processo que possibilita que o programador de software crie um modelo que será construído.

Protótipos é, de modo análogo, uma maquete para a arquitetura, de um sistema futuro com o qual pode-se realizar verificações e experimentações para se avaliar algumas de suas qualidades antes que o sistema venha realmente a ser construído.

Um protótipo de software se apóia em duas atividades do processo de engenharia de requisitos:
  1. Levantamento dos requisitos;
  2. Validação dos requisitos;

A prototipação pode ser utilizada como técnica de análise e redução de riscos (erros e omissões) pode também se utilizada para outros propósitos, como treinamento de usuários antes que o sistema seja entregue e também para testes no sistema.

Na figura abaixo é demonstrado o processo de desenvolvimento do protótipo:

Fonte: PRESSMAN, adaptado pelo autor.

Uma das dificuldades para a prototipação de software é que os usuários finais têm dificuldades para prever a utilização do software e se o sistema é muito complexo a dificuldade aumenta, chegando a ser quase impossível fazer uma avaliação.


MODELOS DE PROTOTIPAÇÃO

Existem modelos de prototipação, que serão abordados a seguir:

1) Prototipação Evolucionária - Inicia um sistema relativamente simples, implantando os requisitos mais importantes e o sistema é ampliado e alterado a medida que novos requisitos são descobertos.
a. Vantagens
i. Rápido fornecimento do sistema;
ii. Compromisso do usuário com o sistema
b. Desvantagens / Problemas
i. Problemas de gerenciamento (Custos, Documentação);
ii. Problemas de manutenção (mudanças de tecnologias);


Fonte: PRESSMAN, adaptado pelo autor.


2) Prototipação Incremental - Os componentes do sistema são desenvolvidos de maneira incremental. Uma vez validado e entregues não são modificados, exceto se for descoberto erros.
a. Vantagens
i. Fácil gerenciamento dos padrões de processos;
ii. Documentação produzida por estágios;
b. Desvantagens / Problemas
i. Não encontrei nada na bibliografia


Fonte: PRESSMAN, adaptado pelo autor.

3) Prototipação Descartável - Essa abordagem amplia o processo de análise dos requisitos, com intenção de reduzir os custos no ciclo de vida do software, ou seja, esclarece os requisitos e fornece informações para que os riscos de processos sejam avaliados. Então, ela ajuda a desenvolver os requisitos do sistema.


Fonte: PRESSMAN, adaptado pelo autor.


TÉCNICAS DE PROTOTIPAÇÃO RÁPIDA

Com a necessidade de que o tempo de desenvolvimento seja cada vez menor, existem algumas técnicas de prototipação rápida, abordadas abaixo:
  1. Linguagem Dinâmica - São linguagens de programação que incluem poderosos recursos de gerenciamento de dados. Ex: Lisp, Prolog, Smalltlk
  2. Programação de Banco de Dados - Os BD comerciais (Oracle, Caché MS SQL, etc) oferecem suporte a desenvolvimento de aplicações, com base em uma linguagem específica de cada BD. Essa técnica é também conhecida como "Linguagens de quarta geração"
  3. Montagem de componentes e aplicações - A reutilização de componentes reduz o tempo de desenvolvimento do sistema.

A Análise orientada a objetos pode levar a uma prototipação extremamente efetiva, com a reutilização dos objetos.

A utilização da prototipação limita o processo de desenvolvimento, pois não é possível ter um produto adequado logo na primeira vez. A prototipação é um dos ciclos de vida onde interação inicial entre o programador e o cliente é fundamental, pois neste momento que ambos podem definir os objetivos gerais do protótipo a ser desenvolvido, e a cada novo requisito, deve-se fazer um novo protótipo, até a construção final do software. A prototipação é o processo ideal para quando se tem um usuário que não é capaz ou não consegue pré-especificar seus requisitos de qualquer forma e só pode determiná-los através de um processo de tentativa e erro, ou seja, a situação em que o usuário diz: "- Eu não sei o que quero, mas eu saberei, se o vir!".O processo de prototipação permite ao analista, programador promova a participação do usuário no desenvolvimento do sistema, ou seja, aumenta seu comprometimento com o produto final.


REFERÊNCIAS

WIKEPÉDIA, http://pt.wikipedia.org/wiki/Prototipa%C3%A7%C3%A3o
PRESSMAN, Roger S. Engenharia de Software. São Paulo : Makron Books, 1995.
SOMMERVILLE, Ian. Software Engineering, 4th ed. - Wokingham : Addison-Wesley, 1992.


segunda-feira, 19 de abril de 2010

Tamanho das Pastas/Arquivos do Windows

Quantas vezes não desejamos saber o tamanho de uma determinada pasta no Windows, pois bem, no Linux isso é moleza :

for i in `ls -l |awk '{print $8}' |grep -v "var"`; do du -sh $i; done


Mas e no windows? Pos bem ai vai uma dica, utilize o comando Du que pode ser baixado no link http://live.sysinternals.com/tools/du.exe. Copie ele para a pasta do Windows e ai pasta chamar o comando do DOS (iniciar -> Executrar -> cmd ) e digitar:

du -v pasta_caminho

Agora, vamos curvar-se a quem desenvolveu este excelente utilitário - Mark Russinovich - SysInternals - www.sysinternals.com .

Abraços a todos.

DG

terça-feira, 6 de abril de 2010

Erro ao abril arquivos de Ajuda no Windows 7 (.chm)

Por padrão o Windows 7 mantém alguns arquivos bloqueados, por motivos de segurança. Um destes tipo de arquivos é o de ajuda (.chm), que abrir da uma mensagem de erro (A navegação para a página da Web foi cancelada).













Para solucionar este problemas basta chamar as propriedades do arquivo e desbloquear (Unlock) o mesmo.





















Após este procedimento o arquivo abre normalmente.















É isso, simples assim.
DG.

terça-feira, 12 de janeiro de 2010

Meu Currículo


Resumo do Currículo
MBA Gestão em TI. Pós-graduado em Engenharia de Sistemas. Graduado em Análise de Sistemas.

- Experiência em gestão de equipes de TI.

- Coordenador de várias implantações e migrações de ERP (Totvs (Datasul), Agrosys, Gecex, Consistem).

- Vivência em gerenciamento de projetos.

- Conhecimentos na elaboração do PDTI, visando o alinhamento das estratégias de TI com os objetivos estratégicos da organização.

- Vivência em gestão dos contratos de TIC, elaborando a contratação, cumprimento do escopo e acompanhamento.

- Profundo conhecimento do ERP Totvs Datasul.

- Desenvolvimento de Sistemas Web e Específicos para os ERP na tecnologia Progress.

- Conhecimentos em banco de dados, rede, CFTV, sistemas de gestão, SIG, SAD, BI, Big Data, programação de sistemas, infraestrutura de data center.


Especializações
ITIL v3, Linux, Banco de Dados e outros importantes da área de TIC.

Experiência profissional
COMPANHIA MINUANO DE ALIMENTOS – de 03/1997 até o momento
• Gestor de TI - Salário: 9.500,00
- Experiência em gerenciamento de projetos de sistemas, implantação de sistemas e comunicação, desenvolvimento e integração de sistemas, identificando oportunidades de melhorias nos processos com a aplicação de tecnologias.

- Vivência na gestão de equipes de suporte, desenvolvimento e manutenção dos sistemas de informação, visando atender as operações da empresa com sistemas.

- Responsável pela elaboração do PDTI, visando o alinhamento das estratégias de TI com os objetivos estratégicos da organização.

- Vivência em gestão dos contratos de TIC, elaborando a contratação, cumprimento do escopo e acompanhamento.

- Responsável pela implantação, migração e sustentação dos sistemas de gestão da empresa (ERP Totvs Datasul, Agrosys, Gecex, desenvolvimento interno) 
- Responsável pela infraestrutura do datacenter, interligação entre as diversas filiais, sustentação dos servidores Windows, Linux e VMWare. Implementação dos storages.



Formação
Graduação #1
Instituição:
Anhanguera
Grau de formação:
MBA
Nome do curso:
MBA Gestão em TI
Ano atual:
Já formado
Data de início:
01/2012
Data de conclusão:
12/2013
Graduação #2
Instituição:
ESAB
Grau de formação:
Pós-graduação
Nome do curso:
Engenharia de Sistemas
Ano atual:
Já formado
Data de início:
01/2010
Data de conclusão:
12/2011

Graduação #3
Instituição:
Univates - Lajeado, RS
Grau de formação:
Graduação
Nome do curso:
Bacharel em Administração de Empresa, com enfase em Análise de Sistemas
Ano atual:
Já formado
Data de início:
07/2003
Data de conclusão:
12/2008


quarta-feira, 16 de setembro de 2009

Seja bem vindo ao meu site

Meu nome é Dilonei Grando, sou formado em Análise de sistemas pela UNIVATES e trabalho na área de TI desde 2004.

Meus trabalhos são focados no desenvolvimento de ferramentas e aplicativos para a web, bem como configurações de servidores LINUX.

Também desenvolvo em Delphi, Progress. Tenho conhecimentos nos bancos de dados MySql, Postgres, Progress e Oracle