quinta-feira, 25 de setembro de 2014

StormUDF - UDF para Tratamento de Acentos no Firebird

Lendo hoje meus emails recebi uma mensagem de um rapaz que me questionou sobre o funcionamento de uma UDF chamada StormUDF que criei ha algum tempo. Para quem não sabe, uma UDF (User Defined Function, Função Definida pelo Usuário) é uma função, criada em uma linguagem qualquer (C/C++, Pascal, etc) para auxiliar na realização de algumas rotinas do banco de dados. Ao trabalhar com Firebird em suas primeiras versões (1.5 e anteriores), sentia a necessidade de uma busca mais abrangente, que não levasse e consideração os acentos, nem se a palavra estava escrita em maiúsculas ou minúsculas. Criar uma Stored Procedure seria uma opção, porém, fiquei preocupado com o desempenho e, aproveitando de outras situações, resolvi criar uma UDF que me auxiliaria nessa situação, nascendo assim a StormUDF. Um arquivo de UDF's pode conter várias funções, mas nesse caso específico, deixei apenas uma função, chamada TrataAcentos. O funcionamento dela é simples: joga todos os caracteres para maiúsculos, e remove os acentos dos mesmos (Ã vira A, É vira E, e assim por diante). E a vantagem, poderia ser usado seu valor para a  criação de índices, agilizando as buscas. Para fazer o download da UDF basta acessar o site do Firebase. Após realizar o download, copie a DLL para a pasta UDF na instalação do Firebird (por exemplo C:\Program Files\Firebird\Firebird_2_0\UDF). Logo depois, registre a UDF em seu banco de dados:

DECLARE EXTERNAL FUNCTION TRATAACENTOS 
CSTRING(254) CHARACTER SET NONE 
RETURNS CSTRING(254) 
ENTRY_POINT 'TrataAcentos' MODULE_NAME 'StormUDF' 

Logo após ter registrado a UDF, já é possível utilizá-la:

SELECT * FROM tabela WHERE TrataAcentos(NOME) = 'JOSE'; --Acha José, jose, JÓSE, etc 
SELECT * FROM tabela WHERE TrataAcentos(NOME) like 'MACA%'; --Acha Maçã, MACA, macarrão, etc

Claro que hoje no Firebird temos algumas formas de realizar essa busca utilizando-se de recursos nativos, mas de qualquer forma, talvez possa ajudar alguém, e como dizem, "Recordar é Viver".
Bem, é isso!

sábado, 20 de setembro de 2014

Limitando os registros a serem exibidos - Firebird, MySQL, PostgreSQL e IBM DB2

Bem, uma dica bem rápida, sobre como limitar as linhas resultantes em um select dentro de um banco de dados IBM DB2. Normalmente, isso é uma tarefa simples de se fazer. Por exemplo, como faríamos para listar apenas os 100 primeiros registros da tabela CLIENTES ??
Vamos ver alguns exemplos...

domingo, 14 de setembro de 2014

O que é Loop?

Um amigo mandou essa definição no Facebook. Muito legal!

O QUE É UM LOOP?
Para quem não conhece o conceito de LOOP, trata-se de uma terminologia assim nomeada por estudiosos de informática para definir uma confusão criada e que não possui uma explicação concreta para a solução do problema.
Bem, vou tentar explicar em poucas palavras esta famosa terminologia:
Diz-se que um programa de computação "entrou em loop" quando acontece a seguinte situação:
O diretor chama sua secretária e diz:

terça-feira, 9 de setembro de 2014

Ferramentas de Automação de Rotinas

Lendo diversos artigos sobre Integração Contínua, replicação de ambientes e afins, achei esse link que achei muito interessante... Como Ganhar Mais Horas de Seu Dia. Apresenta uma ferramenta muito interessante. E no mesmo site, encontrei também um material um pouco mais específico... Como automatizar sua Infraestrutura - OpsCode Chef. Acho que vale a pena dar uma olhada da aplicação.

Produtividade, Infra e Estrutura de TI

Estou compartilhando um artigo que li e achei interessante e que trata da estrutura de TI. Ele cita alguns tópicos bem legais. Serve como um bom "balizador" para se escolher novas tecnologias a se estudar.
http://checchia.net/2014/09/1-infra-x-6-dev-x-100-servidores-pode-isto-arnaldo/

Cursos Online Gratuitos para Empreendedores

Vi uma postagem no site da Uol sobre cursos gratuitos, online, voltados para empreendedores. Muito legal a lista de cursos:

Aprender a Empreender – Sebrae
Voltado para aqueles que pensam em criar um negócio ou até mesmo para os empreendedores em “começo de carreira”, o curso é divido em três módulos. A duração total é de 30 dias e as aulas têm carga horária de 16 horas.
O programa abrange estudo de mercado, marketing, finanças e empreendedorismo. Mais informações no site de Ensino a Distância do Sebrae.

Como Vender Mais e Melhor – Sebrae
Durante 30 dias, você vai aprender como traçar e alcançar metas, fidelizar clientes, fortalecer o posicionamento da marca no mercado e compreender o perfil de seus clientes.
Para acompanhar as aulas, o Sebrae disponibiliza material de apoio para download. Interessados devem se cadastrar no site de Ensino a Distância do Sebrae.

Curso Superior de Tecnologia em Jogos Digitais

Achei muito interessante quando soube dessa iniciativa, de oferecimento de um curso superior em Jogos Digitais. Interessante não só por envolver uma área cativante da TI, como também por se tratar de uma área em plena expansão, e com um mercado muito interessante a ser explorado. 
Para maiores informações, clique aqui

quarta-feira, 3 de setembro de 2014

Curso/Treinamento Gratuito JQuery

Compartilhando com vocês o excelente curso, gratuito (melhor ainda) sobre a biblioteca JQuery disponibilizado pelo pessoal da CodeSchool. Para quem ainda não conhece, JQuery é uma biblioteca JavaScript, cross-browser desenvolvida para simplificar os scripts client side que interagem com o HTML. JQuery é muito poderosa e simplifica consideravelmente algumas tarefas, principalmente aquelas que envolvem busca e manipulação do DOM. O curso é em inglês, porém por se tratar de algo técnico, é muito tranquilo para acompanhar. O material é de alto nível e bem didático. Decididamente vale a pena dar uma olhada.

A Importância do Churn Negativo

Material interessante disponibilizado pelo portal Startupi. Ele comenta sobre churn (Taxa de Cancelamento de um Negócio). Confesso não ser muito minha praia, mas o material é bom, muito didático e pode auxiliar aquele que (como eu) não conheciam esse termo....

Indicação de Post: Mapeamento de Infraestrutura de TI -

Uma indicação de material sobre o Mapeamento de Infraestrutura de TI disponibilizado pelo pessoal do site profissionaisti. Um bom tutorial sobre o assunto.

Apostilas sobre Desenvolvimento Ágil - Portal GSTI

Pessoal, uma indicação de apostilas que tratam sobre Desenvolvimento Ágil, organizadas pela equipe do Portal GSTI. Com certeza vale a pena dar uma olhada.

Curso Gratuito de Cloud Computing

"Cloud Computing transforma a maneira na qual as empresas utilizam e adquirem os recursos da tecnologia da informação."

Essa é a frase inicial do curso gratuito de Cloud Computing oferecido gratuitamente pela Intel. 

Edital de Seleção para Estágio de Doutorandos nos Estados Unidos

Divulgado nesta quarta-feira, 3, o edital nº 54/2014, que seleciona bolsistas para Estágio de Doutorando nas Ciências Humanas, Ciências Sociais, Letras e Artes nos Estados Unidos.

terça-feira, 2 de setembro de 2014

Redes Remotas de Computadores - Curso

Para ninguém dizer que não publico nada de redes, disponibilizo aqui um link para um curso de Redes. De acordo com o site, nesse curso gratuito  serão abordados fundamentos das redes de longa distância, as formas de conexão a internet disponíveis para redes domésticas e de organizações e as características do protocolo de redes sem fio WiMAX.

IBM Brasil cria Laboratório Virtual de Estudos Acadêmicos

A fim de fornecer uma infraestrutura adequada para capacitar alunos de TI, a IBM inaugura, nesta sexta-feira, o Laboratório Virtual de Estudos Acadêmicos. Fruto de uma parceria com o Instituto Eldorado, com a Flextronics e com a Fit, a iniciativa vai beneficiar mais de 20 mil alunos, permitindo que estudantes de graduação, pós-graduação e de cursos técnicos aprendam a atuar com sofisticados sistemas disponíveis no mercado.
Esse foi o texto inicial do artigo postado no site da IBM no dia 22 de agosto. Uma excelente iniciativa. Para acesso ao conteúdo divulgado no site da IBM, clique aqui.

GIT - Controle de versão

O Git é uma excelente ferramenta de controle de versão e que ganhou um "espaço" considerável nestes últimos tempos. Apesar de bem difundido, muitos ainda tem dúvidas quanto a seu uso e recursos, sendo assim, aproveitei para deixar alguns dos links que li, e que achei muito interessantes.

Django 1.7 Liberado!

Hoje foi liberada a versão 1.7 do framework para desenvolvimento web Django. Para aqueles que não conhecem, é um framework criado em Python para desenvolvimento web e, como o próprio site do framework diz: "Django makes it easier to build better Web Apps more quickly and with less code." Quem não conhece, vale a pena dar uma olhada, e para quem já conhece, os recursos que vem nessa nova versão valem a pena a atualização.

BID Lança Governarte 2014 para Premiar o uso da Tecnologia para a Inclusão Social

O Banco Interamericano de Desenvolvimento (BID) lançou a segunda edição do concurso “ Governarte: A Arte do Bom Governo ”, que premiará as melhores iniciativas que tenham ampliado o acesso de populações vulneráveis a serviços públicos pelo uso de meios digitais como redes sociais, telefonia móvel, aplicativos na web e outras soluções tecnológicas.

segunda-feira, 1 de setembro de 2014

Curso de PostgreSQL: Um pouco além de comandos

Apresentação utilizada durante o curso de PostgreSQL que ministrei durante o evento ERIN3 - Escola Regional de Informática Norte (AC/RO).

MongoDB: Introdução a uma nova forma de desenvolvimento - SASI2013

Apresentação de uma palestra que realizei no Simpósio Acreano de Sistemas de Informação - SASI2013, trazendo uma básica introdução sobre o banco de dados NoSQL MongoDB.

Integração Python + PostgreSQL - Apresentação - PGBR2013

Apresentação da palestra realizada na PGBR 2013, que visava mostrar a integração entre a linguagem Python (através do módulo psycopg2) e o banco de dados PostgreSQL.

Criando Log de Ações no PostgreSQL - Auditoria - Apresentação do PGBR2013

Aproveitando para adicionar um pouco mais de conteúdo no blog, estou disponibilizando aqui a apresentação da palestra que fiz na Conferência Brasileira de PostgreSQL - PGBR 2013, que ocorreu na cidade de Porto Velho - RO.

Obtendo um elemento de Fibonacci sem Uso de Laços

Olá pessoal,

Esse é meu primeiro post neste blog e procurei inicialmente trazer uma pequena postagem, que apresenta uma forma pequena de se obter um elemento qualquer da sequencia de Fibonacci, usando a linguagem Python.