PageSpeed e otimizações de imagens

Estive precisando dar uma otimizada em um sistema web e me lembrei de algumas boas práticas, como cache, compactar imagens, javascript, etc. Foi quando verifiquei que alguém poderia analisar o projeto para eu, alguém com muio mais experiência e foi quando me deparei com Make the Web Faster.

Make the Web Fester é uma iniciativa da Google para analisar e relatar dicas de otimização para websites. Basta colocar a URL do seu site e aguardar a análise. O sistema fornece uma pontuação entre o e 100 para o site informado, duvido muito que alguém alcance 100 pontos pois além de se ter todas as boas práticas em programação e configuração de servidor atendidas, tem que ter uma boa máquina como servidor (não teste seu site em hora de pico)*. É uma boa fonte de estudo pois em cada dica além de explicar a melhoria, faz referência a boas ferramentas. Através dele encontrei boas ferramentas que podem ser úteis a outras pessoas.

Continue lendo

Os números de 2012

Os duendes de estatísticas do WordPress.com prepararam um relatório para o ano de 2012 deste blog.

Aqui está um resumo:

600 pessoas chegaram ao topo do Monte Everest em 2012. Este blog tem cerca de 3.100 visualizações em 2012. Se cada pessoa que chegou ao topo do Monte Everest visitasse este blog, levaria 5 anos para ter este tanto de visitação.

Clique aqui para ver o relatório completo

Instalação Jena – NetBeans e Eclipse

Para desenvolver aplicativos para a web semântica é necessário utilizar alguma biblioteca ou framework que possua um conjunto de ferramentas úteis para tal. Claro que não é obrigatório, se você desejar, pode reinventar a roda, mas é muita mais fácil utilizar o que está pronto disponível. Várias ferramentas para se utilizar em desenvolvimento de aplicações semânticas podem ser encontradas neste site da W3C. Existe um sumário categorizando as bibliotecas, frameworks, por linguagem de programação.

Os motivos que me fizeram escrever isso são: registrar em algum lugar a instalação e reunir de forma centralizada um tutorial que foi escrito depois de buscar resposta em vários lugares diferentes. Aqui será mostrada a instalação do Jena, em ambientes de desenvolvimento NetBeans e Eclipse. Já fica de utilidade pública quando se desejar instalar outras bibliotecas.

Vamos ao Tutorial?

Continue lendo

Ontologia para Desenvolvedores

Este texto não tem objetivo de ensinar completamente a desenvolver ontologias, mas repassar conceitos rápidos sobre o assunto (a não ser que exista demanda para tal aqui no blog).

Há algum tempo existe uma demanda no desenvolvimento de sistemas que tem por objetivo a busca semântica de informações. Seja no espaço acadêmico ou profissional. O problema que tem recebido bastante atenção, que eu vejo, é na forma como estruturamos as informações. Nos bancos de dados relacionais a estrutura é rígida no sentido das tabelas estarem relacionadas entre si e as consultas precisam seguir pelas chaves (PK e FK) ou por funções/procedimentos, minerando informações na base. Isso não é um problema, é o formato mais largamente usado de persistência de dados. O problema que vejo está na racionalização ou inferência das informações que estão contidas nessas bases.

Continue lendo

Blog e Profissional na TI

O blog ainda não morreu, juro. Eu e talvez o Valcir Junior enfrentamos, como provavelmente todos os nossos leitores (alô leitor, você mesmo!), a falta de tempo, pois nos dedicamos bastante no nosso lado profissional. Eu aqui no mestrado procurando me especializar em ontologias, e alguns outros componentes de Inteligêcia Artificial (estou estudando 10 horas ao dia, entre aulas, estudos e escrevendo sobre o assunto para a universidade). Em breve vou escrever algumas sessões técnicas aqui que podem ser úteis para quem quer conhecer algum componente de IA (seja para uso acadêmico ou aplicação empresarial).

Uma coisa que sempre me chamou a  atenção são Continue lendo

Gestão de Conhecimento e TI – Ensaio sobre Pessoas e Software

Gestão de conhecimento como já é de consenso, é uma disciplina que agregou estudo de centenas de profissionais através de dezenas de áreas diferentes. Uma área de essência investigatória onde analisamos e compreendemos o fluxo de informações dentro de uma organização, seja qual for, e formalizamos estratégias de catalogação. Após isso podemos reconhecer como utiliza-la da forma mais eficiente e dissemina-la na cultura interna. Isto agiliza o reconhecimento do conhecimento humano e pode tornar-se estratégia competitiva para toda a organização. Até mesmo acelerar o desenvolvimento e avaliação de informações, em meio ao caos, para a tomada de decisão.  Desta forma é uma área que segue desde a tecnologia até a psicologia. Entretanto, percebo que existe uma série de dificuldades da compreensão disto com os desenvolvedores de sistemas Continue lendo

IA, Redes Sociais e afins

Cá estava eu, pensando em muita coisa com relação ao desenvolvimento de software. Tempos atrás, quando me formei (nossa, parecem que fazem anos já, haha) havia desenvolvido um trabalho na área de sistemas inteligentes, ou havia tentado. Me lembrei desse fato ao iniciar a leitura do livro Numerati de Stephen Baker. No mesmo dia ainda havia assistido o filme A Rede Social que conta a história do Facebook, bem, aí já imaginam como um cara maluco poderia ligar todo os pontos desta nova era.

Continue lendo

PHPMailer e SMTP

Quando se tratando de desenvolver sistemas voltados para a web, as vezes é necessário enviar algum e-mail para o usuário. Seja para gerenciar a criação de logins ou para enviar novidades ao mesmo. Recentemente estive desenvolvendo um fórum, como trabalho final de disciplina de engenharia do conhecimento e precisava que o sistema enviasse e-mails automaticamente. Desta forma procurei escolher uma classe que me ajudasse nisso e como já tinha usado antes resolvi novamente minhas necessidades com a classe PHPMailer.

A classe PHPMailer (pode ser vista no http://sourceforge.net/projects/phpmailer/ ou em Worxware) tem já seus quase 10 anos, muito bem desenvolvida e testada, abaixo descrevo um exemplo para enviar um e-mail ao autor de um tópico quando alguém tenha respondido esse tópico.

Idéia:

  • Enviar e-mail usando PHP
  • Usar SMTP e a Classe PHPMailer
  • A seguir o código.
    Continue lendo

    WiMax e o Mercado Brasileiro e Mundial

    Abstract. WiMax technology is based on IEEE 802.16 pattern and has been derived from IEEE 802.11 pattern. Its main goal is to specify a wireless interface pattern for Metropolitan Area Networks (MAN). Despite its technical viability, WiMax technology still does not gather the same popularity that Wi-fi pattern does. The largest marketing appeal regarding WiMax is related to the wide availability of broadband Internet services, working as a tool for digital insertion. Some countries such as Russia, Japan and United States have believed on its potential and thus represent some illustration of its success, in spite of the major ongoing investments applied. Viability studies are currently being conducted in Brazil, and even the future of technology is still uncertain.

    Resumo. A tecnologia WiMax, baseada na norma IEEE 802.16, surgiu do aprimoramento do padrão IEEE 802.11. Tem como objetivo especificar um padrão de interface sem fio para redes metropolitanas (MAN). Apesar da sua viabilidade técnica, o WiMax ainda não possui a mesma popularidade que o padrão Wi-fi. O maior apelo mercadológico do WiMax está relacionado a disponibilização de maneira mais abrangente do serviço de Internet banda-larga, funcionando como ferramenta de inserção digital. Alguns países como Rússia, Japão e Estados Unidos, apostaram na tecnologia representando exemplos de sucesso, porém, para tanto, foram necessários grandes investimentos contínuos. No Brasil, estudos de viabilidade estão sendo realizados, e o futuro da tecnologia ainda é incerto.

    Continue lendo

    Classe MySQL DAO

    Recentemente tivemos que desenvolver um projeto de fórum para a matéria de engenharia do conhecimento. Nesse projeto escolhi usar o banco de dados MySQL. Só que estava cansado de misturar tanto instruções SQL nas funções em php. Cansado também de toda hora ter de usar funções como mysql_close(), connect(), etc… É ruim toda hora fazer isso se você acaba desenvolvendo uma aplicação sem framework (pelo tempo que fiquei programando deveria ter usado CodeIgniter que está na mesma máquina, só falta aumentar as frameworks skills).

    Então, como me divirto com essas coisas, resolvi fazer a minha própria classe de abstração com o banco de dados. Sei que tem várias por aí, mas aproveitei para aprender ainda mais orientação a objetos. Resolvi documentar o código e divulgar a classe, que pode ser obtida em: databaseMysql.class.php

    Caso não conseguir baixar, favor enviar e-mail pedindo: fabio.aiub[at]gmail[dot]com

    A idéia seria testar, corrigir bugs e melhora-la, tem uma lista de TODO na classe exibindo algumas coisas a serem feitas. No futuro, gostaria de fazer algo para brincar com Postgres, ou quem sabe, uma classe para qualquer banco! O céu não é o limite =)

    obs: foi por diversão, aceito quaisquer críticas, ainda postarei outras classes que fiz só porque deu vontade, hehe, tem uma de criptografia pronta em C, sim, eu levo uma vida normal, haha.