Blog

  • As empresas e as comunidades interativas na Internet

    Com o seu uso, Redes Sociais, Blogs, Wikis empresariais e até os Mashups criarão no mundo dos negócios uma remodelagem na exposição de marcas, produtos e serviços.

    Se a maioria imaginou que Internet seria para humanidade apenas um novo meio de se comunicar, posso afirmar que ocorreu um pequeno engano.

    Para poucos já está claro que na rápida tentativa de conceituá-la, essa foi subaproveitada em sua principal função: a interação entre seus usuários.

    Tão logo o e-mail tornou-se a forma mais difundida de uso da Internet mundialmente com mais de um bilhão de usuários no final do ano de 2005, segundo o instituto eMarketer acreditava-se que seu principal papel estaria cumprido. Uma grande massa de pessoas trocando informações entre si, de forma individualizada, fazendo deste um meio de comunicação sem precedentes.

    Passando a limpo: o conceito de comunicação é muito diferente do conceito de interação. No primeiro, sentimos que está embutido uma via de mão-única – alguém ou alguma empresa propaga informações a várias outras pessoas ou instituições, de uma forma padrão. O que é falado ou escrito por um é apenas assistido por outros passivamente.

    O foco da grande maioria dos projetos de web-sites atuais de empresas é a comunicação de um para muitos. Meros expectadores, colaboradores ou usuários, muitas vezes, sequer têm suas dúvidas por e-mail respondidas a contento. São sufocados no site empresarial por inúmeras páginas com demasiado conteúdo institucional, especialmente projetadas para esconder qualquer menção a um número de telefone prático ou a identificação do nome do responsável pelo serviço de atendimento. É nesta visão vertical que os projetos empresariais encontram-se na atualidade.

    Em breve, numa próxima fase de mudanças que criará a plenitude do uso da Internet pelas empresas, a interatividade será o grande trunfo no relacionamento entre colaboradores, fornecedores e clientes esses últimos ávidos em expressar suas idéias de forma participativa. Múltiplas pistas de mão-dupla. A comunicação de muitos para muitos.

    Uma forma multidimensional de interação. A aglutinação de idéias vindas de diferentes fontes e formas para atingir o bem comum. Quem já fez uso identifica, nos atuais grupos ou fórum de discussão, recursos precursores desse novo conceito.

    As limitações das ferramentas, que cada website usa até então, cederão espaço para o novo mundo da Web 2.0, a chamada Internet Viva, com a oferta de serviços dinâmicos ao invés de páginas com conteúdo estático.

    Grandes corporações internacionais já possuem interação social, via Blog Corporativo – uma espécie de diário on-line das situações que ocorrem na empresa, discutidas publicamente com os internautas visitantes, de forma ativa, como uma conversa. O recurso se faz presente em cerca de 8 das empresas incluídas na lista Fortune 500, a qual contempla empresas como: HP, Fedex, Wal-Mart, General Motors, dentre outras. A perspectiva para pequenas e médias empresas adotarem o mesmo procedimento é estratégica: uma forma simples de estar um passo à frente da concorrência.

    No mesmo caminho social estão os Wikis (iniciais da frase em inglês What I Know Is…) – ferramentas de trabalho on-line para interação em grupo e desenvolvimento de comunidades em rede, criando o relacionando do próprio público-alvo da empresa: colaboradores, fornecedores e clientes, estimulando a inovação colaborativa, a participação e ação mútua entre seus membros. O caminho para aproveitamento da inteligência coletiva nas tarefas do dia-a-dia e na condução dos negócios.

    Apostando um pouco mais no mundo empresarial, chegarão também os Mashups (do inglês mash-up, mesclar ou mixar) ou seja, num único site ou aplicação haverá a combinação de conteúdo relacionado, vinda de mais de uma fonte de dados, como uma forma de integrar o conhecimento na geração de outros resultados, seja no melhor uso de um serviço ou num novo modo de agregar valor a um produto.

    Façam suas empresas interagirem socialmente e estejam certo que a recompensa será imensa.

  • URL Rewriting: Criando URLs competitivas!

    Neste artigo vamos entender mais sobre a tecnologia conhecida como URL Rewriting ou Rewrite engine, que, segunda a literatura, é uma técnica que permite a re-escrita de URLs, ou seja, possibilita que uma determinada URL original seja mascarada ou substituída por outra mais segura, apresentável e acessível para nós humanos e para os motores de buscas (Google, Yahoo, Msn e etc).

    Nas próximas linhas será apresentado o que é realmente esta técnica, quais seus benefícios, como utilizar e configurar, uma demonstração de um exemplo prático e por fim algumas conclusões e referências.

    O que é? E quais os benefícios?

    Como dito anteriormente, os termos URL Rewriting ou Rewrite engine representam uma forma de mascarar uma determinada URL, tornado-a acessível de diferentes formas. Mas não é somente isso, se esta técnica for aplicada de uma forma correta, trará ótimos benefícios, que serão descritos nas próximas seções.

    Na prática a responsabilidade deste mascaramento é do servidor web. O pioneiro desta técnica é o servidor web Apache, que implementa nativamente o módulo Mod_Rewrite, responsável por este processo.

    Antes de falar sobre Mod_Rewrite, para aqueles que estão perdidos, será mostrado logo abaixo um exemplo real deste técnica.

    http://www.meusite.com/not.php?cat=9

    Na linha acima foi mostrado uma URL que é normalmente encontrada na internet, que utiliza determinados parâmetros para filtrar, dentre uma base de dados, as informações que condizem com os parâmetros enviados. Para entender melhor, a página not.php irá mostrar uma lista de notícias ligadas ao parâmetro cat, que representa uma determinada categoria.

    http://www.meusite.com/noticias/9/php-avancado.html

    Através de outra URL bem diferente, é possível executar o mesmo processo que irá resultar nas mesmas informações. Mas nota-se um diferencial, que se utilizado de forma certa, pode-se adicionar nível de competitividade a URL. Isso mesmo, competitividade, se você se preocupa em tornar seu site mais conhecido, é importante aliar-se aos motores de buscas, por que eles trabalham dia e noite, e sem medir esforços, levam o seu site ao conhecimento de milhares de usuários. Mas para aparecer nas primeiras linhas, é necessário ficar atento a algumas questões, dentre elas você pode começar através da URL Rewriting.

    São três pontos importantes que podem ser levados em conta ao se tratar dos benefícios do URL Rewriting:

    • Facilita a indexação de informações por motores de buscas;
    • Torna a URL mais agradável e de fácil compreensão por nós humanos;
    • E Segurança, evitando problemas como SQL Injection.

    Lembrando que os motores de buscas consideram com certo nível de importância em palavras chaves localizadas em URLs, desta forma, por que não utilizar desta vantagem. Voltando a segunda URL de exemplo, pode-se ver que foram adicionadas as palavras noticias e php-avancado. Nitidamente percebe-se que a segunda URL terá mais chances (considerando apenas a URL e não o conteúdo da página) de aparecer nos resultados do que a primeira URL, caso seja executado uma consulta que possua tais palavras. Devido a isso que existe a importância em se estruturar uma URL, se importando com pequenos detalhes, que em um todo, trará ótimos resultados.

    Outro ponto que pode ser explorado está relacionado em tornar a URL mais agradável ou amigável (como outros articulistas descrevem) para nós humanos, permitindo assim uma maior compreensão. Algumas pessoas tentam se localizar dentro do site através da URL, desta forma fica bem mais fácil saber onde ela está localizada, se adotada a segunda URL de exemplo, em que está nítido na URL que a página trata de notícias sobre php avançado. Também deve ser considerada a memória, por que fica mais fácil decorar palavras do que códigos, principalmente quando o usuário não sabe para que servem.

    Em relação à segurança a URL Rewriting pode evitar alguns problemas que ocorrem, como por exemplo, o SQL Injection. O módulo Mod_Rewrite do Apache utiliza Expressões Regulares para identificar qual URL está sendo executada e filtrar os dados necessários para a chamada da URL original. Desta forma, através destas expressões é possível invalidar informações indevidas passadas pela URL, que podem abrir brechas para a execução de códigos indevidos. Este assunto será citado novamente na seção que mostrará exemplos práticos sobre URL Rewriting.

    Primeiros passos na prática

    Vimos até o momento uma introdução sobre URL Rewriting, juntamente com suas vantagens e motivações, que viabilizam a sua utilização. Mas agora iremos partir para a prática, será mostrado como habilitar o módulo Mod_Rewrite do Apache e como iniciar a sua utilização.

    Para iniciar o funcionamento do Mod_Rewrite será necessário executar dois passos, primeiro alterar o arquivo de configuração do Apache (httpd.conf) e o segundo criar o arquivo .htaccess que conterá as instruções para a re-escrita.

    Alterando o arquivo de configuração

    No arquivo httpd.conf, localize as seguintes linhas:
    
    LoadModule rewrite_module modules/mod_rewrite.so
    AddModule mod_rewrite.c
    
    Retire o comentário () das duas linhas, que resultará em:
    
    LoadModule rewrite_module modules/mod_rewrite.so
    AddModule mod_rewrite.c
    Localize novamente as seguintes linhas:
    
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    
    Substitua a palavra Nome por All, que resultará em:
    
    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>
    
    Feitas as alterações, reinicie o Apache.

    Criando e manipulando o .htaccess

    Crie um arquivo chamado .htaccess e salve-o. Após concluir a edição, copie-o para o diretório raiz do servidor

    (ex: /public_html).

    Inicie o arquivo com a seguinte instrução:

    RewriteEngine On

    Este comando habilita o módulo Mod_Rewrite. Lembrando que este arquivo não é utilizado apenas para esta finalidade, por isso a necessidade de iniciar o processo de re-escrita.

    As instruções seguintes serão programadas para solucionar um problema simples como exemplo inicial, em que para todas as URLs executadas com extensão .html serão re-escritas para suas respectivas páginas em php.

    RewriteRule (.)\.html 1.php

    A instrução é composta basicamente por três expressões separadas por espaço:

    01.

    RewriteRule

    É a expressão que inicia uma linha de instrução.

    02.

    ^(.)+\.html$

    É a expressão regular que identifica a página que deverá ser filtrada. Neste momento é muito importante ter conhecimentos sobre expressões regulares, desta forma, é preciso que você consulte outras fontes sobre assunto.

    03.

    $1.php

    Está é a URL original que será executada. Veja que existe a seguinte expressão 1, esta representa o primeiro parâmetro filtrado pela expressão regular. Os parâmetros são definidos pelos conteúdos que atendem a expressão entre (), caso exista mais de um par de (), os próximos parâmetros serão representados como 2, 3, 4…

    Desta forma, se for executada uma URL chamada teste.html será re-escrita e executada como teste.php.

    Exemplo Prático

    Bem, para reforçarmos o assunto e ver na prática o seu funcionamento, será mostrado um exemplo simples de um sistema de notícias. Será abordado apenas as partes que irão auxiliar na exemplificação do problema.

    Para tanto iremos criar quatro arquivos: UrlManage.class.php; Noticias.php; Noticia.php; e .htaccess. Faça o download dos arquivos.

    Primeiro iniciaremos pela classe UrlManage, que será utilizada para manipular todas as URLs.

    <?
    class UrlManage {
    	public static function getUrlNoticia($IdNoticia, $Categoria, $Titulo){
    		if( UrlManage::HabilitadoModRewrite() ){
    			return "noticia/$IdNoticia/".UrlManage::convertStringByUrlString($Categoria)."/".
    					UrlManage::convertStringByUrlString($Titulo).".html";
    		}else{
    			return "noticia.php?id=$IdNoticia";
    		}
    	}
    	private static function convertStringByUrlString($String){...}		
    	private static function HabilitadoModRewrite(){
    		return true;
    	}
    }
    ?>

    Na imagem (UrlManage.class.php) acima método principal é o getUrlNoticia(…), que retorna o link já formatado. Antes de retornar a string da URL é verificado, através do método HabilitadoModRewrite(), se a opção de re-escrita está habilitada ou não.

    Este método tem a função de tornar fácil e sem maiores transtornos a possibilidade de adotar ou não a re-escrita de URL’s, alterando simplesmente o valor booleano que é retornado.

    O método convertStringByUrlString(…) é utilizado para limpar (remover espaços, caracteres especiais e etc) uma determinada string e torná-la apita para ser utilizada como URL.

    A utilização da classe UrlManage é simples. Veja na figura (Noticias.php) abaixo.

    <?
    	include("UrlManage.class.php");
    	
    	//Essas informações normalmente virão de uma base de dados
    	$Noticias[0]["IdNoticia"] = 1;
    	$Noticias[0]["Categoria"] = "Categoria 01";
    	$Noticias[0]["Titulo"] = "Título da Notícia 01";
    	$Noticias[1]["IdNoticia"] = 2;
    	$Noticias[1]["Categoria"] = "Categoria 02";
    	$Noticias[1]["Titulo"] = "Título da Notícia 02";
    	
    	//Criando uma lista com os links das notícias
    	print("<ul>");
    	foreach ($Noticias as $Noticia){
    		$link = UrlManage::getUrlNoticia($Noticia["IdNoticia"], $Noticia["Categoria"], $Noticia["Titulo"]);
    		print("<li><a href="".$link."">".$Noticia["Titulo"]."</a></li>");
    	}
    	print("</ul>");
    ?>

    Neste codigo é possível visualizar uma aplicação simples da classe UrlManage, que através de uma base de informações é criado uma lista de dados, contendo o título e o link para a respectiva notícia.

    O resultado da execução do arquivo Noticias.php resultará nas seguintes informações, demonstradas na figura abaixo.

    <!-- Resultado após compilação -->
    <ul>
    	<li><a href='noticia/1/categoria-01/titulo-da-noticia-01.html'>Título da Notícia 01</a></li>
    	<li><a href='noticia/2/categoria-02/titulo-da-noticia-02.html'>Título da Notícia 02</a></li>
    </ul>

    Veja que os resultados dos links estão estruturados para a utilização da re-escrita. O interessante é que em nenhum momento fica explicito qual a linguagem utilizada pelo site, nem como está definida a estrutura de diretório (original) e organização de arquivos do site, que por segurança torna-se uma vantagem. Agora basta codificarmos o .htaccess para interpretar a estrutura de URL definida.

    Neste momento o importante é saber quais informações serão necessárias para a visualização da notícia. Pela estrutura que foi utilizada, para cada notícia existe um identificador, chamado de IdNoticia, que normalmente é representado por uma chave primaria e auto-incremental em um banco de dados. Então basta apenas saber o valor deste identificador, para que seja feito a recuperação das informações na página de exibição da notícia, que será a Noticia.php.

    Então estruturaremos o .htaccess da seguinte forma:

    RewriteEngine on
    RewriteRule           ^noticia\/([0-9]+)(\/[a-z0-9_-]+)?(\/[a-z0-9_-]+\.html)?$ Noticia.php?id=$1&categoria=$2&titulo=$3
    Noticia.php?id=$1&categoria=$2&titulo=$3

    Verifique que a expressão regular utilizada na instrução atende a estrutura da URL. E que através do primeiro parâmetro, identificado como um numero de 0 a 9 maior ou igual a um dígito, representa o identificador necessário para a visualização da notícia e que será passado via GET através da variável “0id”. E os outros parâmetros que identificam a categoria e o título da notícia podem vir ou não a ser usados.

    Rapidamente, voltando ao assunto sobre Segurança citado anteriormente, é neste momento que é possível estruturar uma expressão regular que não deixe brechas para a inclusão de informações indevidas na URL. No caso do identificador da notícia (id), a expressão não possibilita a que um usuário tente inserir outras informações que não seja apenas números, se tentar fazer isto, a página não será encontrada, e irá dar o erro 404 de página não encontrada. Desta forma, conseqüentemente você já estará validando as informações vindas via URL, mantendo a integridade dos dados.

    E por fim, veja na figura abaixo o código da página Noticia.php e na linha 9 o resultado da execução proveniente do clique no primeiro link da lista (resultado Noticias.php).

    <?
    	$IdNoticia = $_GET["id"];
    	$Categoria = $_GET["categoria"];
    	$Titulo = $_GET["titulo"];
    	
    	print "$IdNoticia # $Categoria # $Titulo";
    	
    	//Resultado:
    	//1 # /categoria-01 # /titulo-da-noticia-01.html 
    ?>

    Fique livre em estruturar a URL conforme suas necessidades, mas sempre lembre em tornar, com pequenos detalhes, suas URL’s mais competitivas, seguras e agradáveis.

    Conclusão

    Neste artigo foram mostradas as vantagens de se utilizar URL Rewriting, juntamente com exemplos práticos da utilização do módulo Mod_Rewrite do servidor web Apache. Lembrando que é de extrema importância o estudo sobre Expressões Regulares, para a utilização correta deste recurso. Além do Apache é possível executar esta técnica em outros servidores web, como, por exemplo, no IIS (Internet Information Services) e também com outras linguagens como ASP .NET e Java. Mas isso é assunto para o próximo artigo, obrigado.

    Referências

    Apache

    http://en.wikipedia.org/wiki/Rewrite_engine
    http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html
    http://www.allsyntax.com/tutorials/Apache/21/Mod_Rewrite-URLs-for-Search-Engines/1.php

    IIS

    http://www.qwerksoft.com/products/iisrewrite/
    http://www.isapirewrite.com/
    http://www.motobit.com/help/url-replacer-rewriter/iis-mod-rewrite.asp
    http://cheeso.members.winisp.net/IIRF.aspx

    ASP.NET

    http://www.urlrewriting.net/en/Default.aspx
    http://weblogs.asp.net/fmarguerie/archive/2004/11/18/265719.aspx

    Java

    http://www.zlatkovic.com/httpredirectfilter.en.html
    http://tuckey.org/urlrewrite/
    http://software.softeu.cz/rewriter/

  • O Cobit como Modelo de Gestão da TI

    Após um bom descanso, estou de volta e a todo vapor. 2006 foi um ano supra. E 2007, com certeza, será um ano turbinado de boas energias, de paz, saúde e tudo o que for bom. Quanto a isto, não tenho dúvida!

    Artigos? Teremos muitos! E dos mais diversos assuntos voltados a TI. Portanto, prepare-se para nos acompanhar aqui no IMasters, ok? Vamos estrear com o primeiro do ano!

    No último artigo falamos, de forma sucinta, sobre a SOX. Nele foram abordados assuntos como: sua definição, seus efeitos na Organização e os impactos provocados na TI. Comentamos também sobre os frameworks e, dentre eles, foi citado o Cobit, responsável pelo tema deste novo artigo.

    Por ser um assunto extenso, pretendo, nesta primeira parte da matéria, abordar os principais pontos e falar um pouco sobre o Cobit como um modelo de Gestão de TI.

    Sua Definição:

    O termo Cobit vem do inglês: Control Objectives for Information and related Technology.

    É um framework, ou seja, um leque de diretrizes que tem como base: a metodologia COSO.

    Framework = leque de diretrizes = melhores práticas

    O Cobit é definido pelo IT Governance Institute (ITGI); criado e recomendado pelo Information Systems Audit and Control Foundation ISACF. Visite o site: http://ww.isaca.org

    Objetivo:

    O propósito de sua criação é apoiar os gestores e os profissionais no controle e gerenciamento dos processos de TI de forma lógica e estruturada, tendo como foco: o relacionamento entre os objetivos de negócio com os objetivos de TI.

    Vale destacar que o Cobit é um modelo utilizado internacionalmente como um instrumento (de fomento) da Governança de TI, contendo práticas e técnicas de controle e gerenciamento, a fim de: auxiliar na preparação para auditorias, acompanhamento/monitoramento, a avaliação dos processos de TI e , finalmente, auxiliar no alcance de metas na organização.

    Quanto aos Recursos e Processos em TI:

    Com o foco nos negócios, o Cobit vem a apoiar de forma significativa a área de TI. Suas diretrizes pertencem a um conjunto de 318 controles, distribuídos em 34 processos, cada qual visando, segundo a Cobit, um Objetivo de Controle.

    Seus Recursos:

    • framework;
    • mapas de auditoria;
    • sumário executivo;
    • control objectives – Objetivos de Controle (propósito a ser alcançado ou o resultado a ser atingido);
    • guia – técnicas de gerenciamento e
    • ferramentas – quanto à implementação do modelo.

    Não necessariamente nesta ordem, mas estes são os recursos que podem auxiliar na implantação de um modelo na TI e permitir uma análise mais precisa quanto aos processos e resultados. Importante ressaltar que a área em questão deve manter os olhos no alinhamento dos negócios e, ao mesmo tempo, ficar atento ao gerenciamento de riscos.

    Vale frisar ainda que, quando falamos em controles voltados ao Cobit, estamos falando de:

    • procedimentos;
    • práticas;
    • regras de negócios (organização) e
    • políticas

    A soma destes ingredientes serve de preparo as exigências da boa governança em TI quanto às expectativas do mercado, legislação, automação, a organização em si, aos acionistas, aos clientes internos, auditores, etc.

    No entanto, a TI através do Cobit, deverá fornecer todas as informações (sólidas) e métricas necessárias quando solicitadas – com base no KGI (Key Goal Indicators), ROI (Return on Investment), KPI (Key Performance Indicator) para que a organização possa atingir suas metas com o menor risco possível. Este é um ponto primordial. Vale analisar que talvez, haja a necessidade da interação entre a área financeira da empresa e a TI.

    Observações finais:

    Interessante saber que, qualquer organização pode utilizar as boas práticas do Cobit, pois independe do tipo de negócio, infra-estrutura, sistemas ou tecnologia utilizada.

    E vale lembrar que, o papel do Cobit é não determinar como os processos devem ser estruturados, mas utilizá-lo da melhor forma, a fim de, ceder e gerar as informações que a empresa realmente necessita, levando em consideração, conforme já citado, o relacionamento entre os objetivos de negócio da organização e os objetivos da área em questão (a TI), atingindo assim, suas metas com base na governança.

    Portanto, seu papel é descobrir a solução do desalinhamento entre TI e Negócio diante das principais regulamentações (normas regulatórias) existentes no mercado, por exemplo: a Basiléia, a SOX, …

    Agora, cabe ao próprio gestor ou profissional da área conhecer as necessidades da empresa e utilizar o Cobit a favor.

    Talvez aqui esteja a grande dica: conhecer as reais necessidades, para só então, integrar os recursos oferecidos pelo Cobit.

    Nos próximos artigos daremos continuidade e falaremos um pouco mais sobre os processos usando o Cobit.

    Ficamos por aqui! Até o próximo artigo!

    Boas Energias Sempre!

  • PHP5 e SQLite no Windows

    Olá Pessoal! Essa semana falarei sobre uma novidade do PHP5: o SQLite. Uma biblioteca C que implementa um banco de dados SQL embutido, sem que haja a necessidade de ter um SGDB, como MySQL e Oracle. A biblioteca lê e grava diretamente em arquivos de banco de dados no disco. Essa é uma boa alternativa para quem precisa de velocidade e não necessita de todos os recursos oferecidos pelos SGDB’s.

    Versões utilizadas:

    • PHP 5.2.0
    • Apache 2.0.59
    • SQLite 2.8.17 ou SQLite 3.3.12
    • Windows XP

    Características:

    • Software Livre e Multiplataforma;
    • O Banco de dados é guardado em um único arquivo;
    • Suporta base de dados acima de 2 terabytes;
    • Suporta Strings e Blob’s acima de 2 gigabytes;
    • Implementa a maioria do SQL92;
    • Sem dependências externas;
    • Suporte parcial a triggers e views;
    • Suporta vários processos de leitura ao mesmo tempo, porém, as operações de escrita são realizadas 1 a 1. Para isso, a engine loca o arquivo db.
    • Ainda não possui suporte a integridade referencial;

    Trabalhando com SQLite e PHP

    Apresentaremos 03 maneiras de trabalhar com o SQLite e PHP:

    • SQLite 2;
    • SQLite 2 Orientado a Objeto;
    • SQLite 3 com PDO;

    PDO

    PHP Data Objects é uma extensão que vem junto com o PHP5 que propõe aos desenvolvedores não mais utilizarem o acesso direto a API de controle da base de dados, seria a famosa abstração como o PEAR::DB. Resumindo, poderíamos mudar o banco de dados do nosso sistema apenas alterando uma única linha de código.

    Instalação no Windows:

    SQLite2

    • Acessar o endereço: http://www.sqlite.org/download.html e baixar o arquivo sqlite-2_8_17.zip;
    • Descompactar e copiar o arquivo sqlite.exe para a pasta WINNT do seu Windows( XP, 2000 etc..);

    Configurando PHP com SQLite2

    • Editar o php.ini e descomentar/adicionar as seguintes linhas:

    extension=php_pdo.dll|

    extension=php_sqlite.dll

    • Crie um arquivo chamado phpinfo.php para checarmos se as extensões foram carregadas corretamente:

    phpinfo.php

    <?
    phpinfo();
    ?>

    Exemplos utilizando PHP e SQLite2:

    sqlite2.php

    <?
    //caso a base de dados não exista, ele tenta criar
    if ($db = sqlite_open("c:/pagina/databases/imasters.db", 0666, $error)) {
    echo "Banco de dados aberto...";
    
    //cria a tabela
    @sqlite_query($db, "CREATE TABLE colunistas( id INTEGER PRIMARY KEY, nome TEXT)");
    
    //insere dados
    sqlite_query($db, "INSERT INTO colunistas VALUES( NULL, 'Júlio César Martini')");
    
    //exibe os dados cadastrados
    $sql = sqlite_query($db, "SELECT id, nome FROM colunistas");
    
    //visualiza os dados gravados
    while ($i = sqlite_fetch_array($sql)) {
    echo "<br><br>";
    echo "ID: ".$i['id']."<br>";
    echo "Nome: ".$i['nome'];
    }//fecha while
    }
    else {
    die($error);
    }
    ?>

    Exemplos utilizando PHP e SQLite2 Orientado a Objeto:

    sqlite2_oo.php

    <?
    try {
    //instancia
    $db = new SQLiteDatabase("c:/pagina/databases/imasters.db", 0666);
    }
    catch( Exception $exception ){
    die($exception->getMessage());
    }
    
    //cria a tabela
    //comentar as 02 linhas abaixo após executar o script pela primeira vez
    $sqlC = "CREATE TABLE colunistas(id INTEGER PRIMARY KEY, nome TEXT)";
    $db->queryExec($sqlC);
    
    //insere dados
    $sqlI = "INSERT INTO colunistas (id, nome) VALUES (NULL, 'Júlio César Martini')";
    $db->queryExec($sqlI);
    
    //visualiza
    foreach ($db->query("SELECT id, nome FROM colunistas") as $row) {
    print_r($row);
    echo "<br>";
    }
    ?>

    Exemplos utilizando PHP e SQLite3 com PDO:

    sqlite3_pdo.php

    <?
    //instância
    $db = new PDO("sqlite:c:/pagina/databases/imasters.db");
    
    //cria a tabela
    $sqlC = "CREATE TABLE colunistas ( id INTEGER PRIMARY KEY, nome TEXT)";
    $db->exec($sqlC);
    
    //insere os dados
    $sqlI = "INSERT INTO colunistas (id, nome) VALUES (NULL, 'Júlio César Martini')";
    $stmt = $db->exec($sqlI);
    
    //visualiza
    foreach ($db->query("SELECT id, nome FROM colunistas") as $row) {
    print_r($row);
    echo "<br>";
    }
    ?>

    Criando uma trigger com o SQLite3

    A trigger é disparada implicitamente quando uma tabela é modificada, um objeto é criado ou quando ocorre ações de usuário no sistema. O exemplo abaixo, cria uma trigger que terá por finalidade gravar o valor antigo do campo nome da tabela colunista sempre que ela for alterada.

    01. No prompt, digite sqlite3 <>;

    02. Crie a tabela HIST_COLUNISTAS;

    CREATE TABLE hist_colunistas(
    id INTEGER
    , nome_antigo TEXT
    , nome_novo TEXT);

    03. Crie a trigger: tr_af_up_colunistas:

    CREATE TRIGGER tr_af_up_colunistas
    AFTER UPDATE ON colunistas
    FOR EACH ROW
    BEGIN
    INSERT INTO hist_colunistas(id, nome_antigo, nome_novo)
    VALUES(OLD.id, OLD.nome, NEW.nome);
    END;

    04. Quando ocorrer qualquer alteração na tabela colunistas, será gravado um registro na tabela hist_colunistas;

    Criando uma view com o SQLite3

    A view é uma tabela virtual onde os dados não estão fisicamente armazenados. Ela é apenas uma visão de uma ou mais colunas de uma ou mais tabelas do banco.

    CREATE VIEW IF NOT EXISTS imasters AS
    SELECT nome FROM colunistas;

    No exemplo acima, estamos criando uma view chamada imasters que terá como coluna apenas o nome dos colunistas.

    Situações onde o SQLite funciona bem:

    • A maioria dos sites web (menos de 100 mil visitas/dia);
    • Substituto para arquivos de uso específico;
    • Bases de dados internas ou temporárias;
    • Programas locais;
    • Substituto de bancos de dados de grande porte em testes e demostrações;
    • Formato de arquivo de programas;
    • Dispositivos e programas embutidos;
    • Ensino de banco de dados.

    Ferramentas:

    Abaixo, segue algumas ferramentas para manipulação de arquivos baseados no SQLite.

    SQLiteFront (português)|

    http://sqlitefront.sourceforge.net

    SQLite Database Browser|

    http://sqlitebrowser.sourceforge.net

    SQLite Manager|

    http://www.sqlitemanager.org/

    PHP SQLite Admin|

    http://phpsqliteadmin.sourceforge.net/

    Links:

    Abaixo, segue alguns links para complementar o estudo desse artigo:

    Site Oficial SQLite:

    http://www.sqlite.org/

    Comunidade Brasileira SQLite

    http://sqlitebrasil.codigolivre.org.br

    SQLite ODBC Driver

    http://www.ch-werner.de/sqliteodbc/

    Downloads: Download do Script

    Semana que vem tem mais. Espero que vocês tenham gostado.

    Não deixe de nos enviar críticas ou sugestões para o próximo assunto, afinal a coluna é de vocês.

    Boa semana a todos!

    Até mais.

  • Fique atento às ferramentas que auxiliam o desenvolvedor

    Ei você desenvolvedor! É você mesmo, que passa horas, todos os dias, desenvolvendo sistemas com inúmeras funcionalidades, com uma programação organizada e acima de tudo com agilidade! Na área de desenvolvimento há prazos, certo? Costuma utilizar Frameworks? Será que faz uso de bibliotecas prontas? Que tal editores arrojados?

    Bem, não importa para quais ferramentas iremos recorrer, tudo ajuda na hora de executar os projetos.

    Em meio a tantos Zends, Adodbs, Eclipses, entre outros, há sempre algo novo a descobrir.

    Que tal um editor chamado Codificar a Carga. Estranho não!?

    Bem, essa seria a tradução para um poderoso editor ASP, C.NET, VB.NET, PHP, entre outras tecnologias, mais conhecido como CodeCharge. Posso afirmar aos leitores que podemos levar bem ao pé da letra essa tradução. Muitas vezes o projeto em questão é tão grande que se torna literalmente uma carga.

    E agora? Não sou dois, como codificá-la? Está aí sua resposta: CodeCharge!

    Esta ferramenta ainda é pouco utilizada em nosso país, e a pouca divulgação faz com que muitos nem ao menos tenham ouvido falar, porém lá fora, como por exemplo nos Estados Unidos, é bem vista e muito utilizada.

    O importante é entender em que ela pode nos ajudar, como ela pode ajudar e quais os tipos de aplicações que poderemos desenvolver nela.

    A princípio trago uma breve descrição fornecida pela OM, empresa que representa o CodeCharge no Brasil: CodeCharge Studio é uma completa e indispensável ferramenta CASE para auxiliar no desenvolvimento de sistemas para Web. Têm suporte as linguagens e bancos mais utilizados atualmente(MS Access, SQL Server, MySQL, Oracle, etc.).

    Seja um simples desenvolvedor a um experiente engenheiro da Web, você pode utilizar o CodeCharge Studio para desenvolver rapidamente de simples aplicações Web à complexas soluções de e-business.

    Gostaria apenas de ressaltar que esta ferramenta ainda não faz tudo em um passe de mágica, principalmente se forem aplicativos mais ousados.Porém é de grande benefício para aqueles que querem agilidade e boa programação.

    Não devemos nos esquecer que esta ferramenta se torna mais poderosa e eficiente para aqueles que já tem vivência com as linguagens que este editor suporta. Dou créditos ao CodeCharge, mas ressalto que programadores que têm habilidades e conhecimentos para o desenvolvimento de projetos na unha são melhores vistos e mais propensos a se familiarizarem com editores como este.

    Se quiserem obter maiores informações sobre esta ferramenta, acesse o site: www.codecharge.com.br

    No próximo artigo falarei mais a respeito deste Editor, e darei exemplos de algumas aplicações que podem ser desenvolvidas com o CodeCharge.

  • A Importância dos Processos em TI

    Muitas vezes subestimamos a importância dos processos dentro das organizações, descrevendo-os como um mero instrumento burocrático, criado com o intuito de controlar o que cada profissional está fazendo, limitando o talento de nossos profissionais de TI, levando-os gradualmente à perda da capacidade de criar e inovar em situações de adversidades.

    Na verdade, processos existem porque representam a experiência acumulada de décadas de trabalho, organizadas por empresas e profissionais que compilaram as melhores práticas para lidar mais pró-ativamente com os riscos inerentes à execução dos mais variados serviços de TI, incorporando mecanismos de controle que reduzem o nível de erros dos profissionais, levando-os de forma mais segura à finalização dos trabalhos.

    Os processos possibilitam que os serviços de TI sejam impessoais, ou seja, independente de quem executará os trabalhos, serão realizados as mesmas atividades, avaliados os mesmos parâmetros, produzidos os mesmos artefatos, gerenciados pelo mesmo conjunto de indicadores. Com este nível de padronização dos trabalhos, os projetos tornam-se mais previsíveis, possibilitando que riscos sejam monitorados e mitigados com alto grau de precisão e controle.

    Sem um processo formalmente estabelecido, os profissionais buscariam caminhos diferentes para realizar as mesmas atividades, trazendo mais variáveis e incertezas no projeto, aumentando os consideravelmente os riscos de insucesso. Nestas condições, a simples troca de um profissional pode desestabilizar toda uma cadeia de serviços TI, demonstrando a fragilidade de todo o modelo operacional que a organização está submetida.

    Os processos foram modelados para conduzirem os profissionais ao caminho mais controlado e seguro, possibilitando que qualquer membro da organização, com perfil e treinamento adequado, possam atender continuamente os projetos e manter os níveis de serviços dentro de uma variabilidade aceitável.

    Os processos não podem ser estáticos e devem ser gradualmente aprimorados pela organização, à medida que a condução de novos projetos revelem deficiências operacionais que deveriam ser minimizadas, evitando gerar fontes de instabilidade e incertezas futuras.

    Uma empresa busca a definição de processos corporativos, de forma a garantir que todo sua estrutura operacional esteja baseada num único modelo de trabalho, não em ilhas isoladas de organização. A adoção de padrões corporativos garante que uma determinada inovação ou aperfeiçoamento metodológico seja aplicado em todas unidades operacionais, viabilizando a melhoria contínua no longo prazo.

    Portanto, a formalização de processos dentro das estruturas da TI devem ser encarados como uma estratégia para gerenciamento de serviços cada vez mais segmentada e complexa. Não é por acaso que a busca pela adequação por modelos como CMM-I, focam explicitamente na formalização dos processos que, muitas vezes, são atropelados pela correria do dia a dia.

    O legado das “Software Houses”

    A maioria dos profissionais de TI não gostam de seguir padrões e nem trabalhar apoiados em processos ou modelos de trabalho. Uma das desculpas mais comuns é comparar a construção de software como uma obra de arte, impossível de ser gerenciada sob risco de penalisar a criatividade da equipe e prejudicar a qualidade das entregas. A verdade é que criar software é um serviço que deve ser entregue como um outro qualquer, respeitando o escopo, prazos, custos e qualidade combinadas em contrato.

    Esta visão artística sobre a área de TI foi criada no final dos anos 80, quando iniciou-se o down-sizing corporativo, onde investimentos em grandes equipamentos e infra-estrutura, geralmente oferecidos por grandes e robustas corporações, foram gradativamente substituídos por serviços e tecnologias mais simples e baratas, viabilizando a entrada de pequenas consultorias, chamadas na época de “Software Houses”, pois os empresários alugavam casas comuns como local de trabalho de seus profissionais.

    Estas pequenas consultorias prestavam serviços baseados em horas de trabalho, possuiam pouco ou nenhum controle operacional e focavam exclusivamente no domínio da tecnologia. Entender a complexidade tecnológica era suficiente para gerar respostas rápidas sem a necessidade de construir modelos de trabalho. O controle operacional era entendido como uma burocratização desnecessária, que comprometeria os rápidos índices de atendimento obtidos nestas novas condições. Neste novo modelo, os serviços de TI eram rapidamente entregues e novos sistemas eram produzidos com grande agilidade. Tudo era produzido com o mínimo de formalização.

    Já no início da década de 90, com o sucesso deste modelo, houve um inevitável direcionamento nos investimentos em tecnologias baseadas na chamada baixa-plataforma, possibilitando o fortalecimento e mutiplicação de novas e maiores “Software Houses”. As consultorias mais bem sucedidas e que atraiam os maiores investimentos eram aquelas que atendiam mais rapidamente seus Clientes, ao custo mais baixo possível.

    A consolidação deste modelo de serviço, baseado no rápido atendimento com custos baixos tornou-se um padrão de referência das organizações na hora de contratar projetos de TI, gerando uma forte cultura negativa sobre processos e controles operacionais que encontram-se enraizados em nossos profissionais até hoje.

    Neste período, as consultorias buscavam profissionais estritamente técnicos, para que as tecnologias emergentes fossem adequadamete absorvidas e rapidamente implementadas nos Clientes ao menor custo possível. Conhecimentos sobre engenharia de software e definição de processsos corporativos eram totalmente desnecessários naquele modelo.

    As tecnologias referentes aos Sistemas Operacionais, Bancos de Dados, Ferramentas de Desenvolvimento, Redes e Infra-Estrutura Corporativa davam grandes saltos tecnológicos que refletiam consideravelmente no aumento de performance, controle e qualidade nos serviços executados, possibilitando ganhos significativos pela simples adoção destas tecnologias.

    Transição para as “Fábricas de Software”

    Ao longo da década de 90, tecnologias inovadoras foram disponibilizadas, gerando novas oportunidades de negócios que alavancaram receitas e reduziram custos operacionais, impactando diretamente nos resultados financeiros das organizações.

    Aproveitar novas tecnologias para gerar novos ganhos financeiros tornou-se um fator decisivo para manter as organizações competitivas e altamente rentáveis. Sair na frente, significaria mais tempo para abordar novos mercados e obter ganhos em serviços ainda não explorados.

    Neste novo cenário, a área de TI tornou-se uma das principais estratégias para garantir que a organização mantenha seu nível de competitividade, acompanhando ou antecipando tendências de mercado que poderiam ser exploradas de forma mais rápida e eficente que sua concorrência.

    A complexidade dos ambientes TI trouxeram uma grande quantidade de empresas que dominavam tecnologias diferentes (Banco de Dados, Intranets, Servidores, Desenvolvimento, MainFrame, Segurança, WorkFlows, Wireless, CRM, BI, ERP), aumentando a complexidade do gerenciamento dos projetos pela grande interação entre empresas.

    No final da década de 90, as pequenas consultorias já estavam sendo substituídas por médias e grandes coporações, capazes de atender um grande volume de serviços simultaneamente, sem provocar riscos de interrupção nos serviços. O modelo de “Software Houses” já não atendia mais as necessidades dos Clientes, que buscavam estruturas maiores e mais diversificadas.

    Porém, a simples decisão de concentrar o volume de serviços em poucos fornecedores não ajudou na busca em atender mais demandas de negócios em prazos cada vez mais curtos. Na verdade, a concentração de serviços reduziu a competição interna dos fornecedores, criando um obstáculo adicional na busca desta agilidade operacional.

    A diversidade dos cenários de negócios, combinadas com a crescente necessidade de integração dos diversos ambientes tecnológicos, migraram as restrições de produtividade do domínio da tecnologia para o controle operacional. As consultorias mais bem sucedidas seriam aquelas que atendessem mais rapidamente seus Clientes, suportados por controles operacionais mais rigorosos.

    As tecnologias referentes ao desenvolvimento de software já estavam mais amadurecidas e não mais proporcionavam ganhos tão expressivos quanto no passado, sobrando espaço para os aprimorar os processos de gerenciamento e execução dos serviços TI, fortemente negligenciados na década de 90.

    O segredo da agilidade organizacional não estava mais no domínio das tecnologias, mas na formatação de processos que permitiriam os profissionais gerenciarem uma grande quantidade de complexidades e garantir a execução dos serviços. As empresas de tecnologia então buscaram novos modelos capazes de suportar grandes volumes de trabalhos com alta grau de precisão e controle.

    Deu-se então o início da era das Fábricas de Software, onde os modelos industriais começaram a ser adotados como referência direta das estruturas corporativas TI, enterrando definitivamente a visão poética dos projetos de tecnologia.

    Neste modelo, o processo que conduz os serviços tornou-se tão importante quanto as próprias entregas estabelecidas, abandonando a visão simples da seleção pelo custo do serviço e adotando avaliações de análise de valor agregado nos processos do fornecedor.

    Entendendo a resistência das lideranças

    Todos os profissionais experientes, com mais de 10 anos de TI, acompanharam a criação das consultorias que cresceram e organizaram-se baseadas na visão das “Software Houses”, onde os projetos tinham relativa complexidade, forte domínio tecnológico e pouco controle operacional.

    Muitos líderes de TI, (gerentes, diretores e empresários) obtiveram sucesso profissional seguindo modelos que valorizaram apenas a execução dos serviços, sem preocupar-se com a padronização de trabalhos e à formalização de processos corporativos.

    Mesmo atuando hoje em grandes corporações, com projetos envolvendo milhões de reais, dezenas de profissionais envolvidos e um grande volume de requisitos a serem gerenciados, estas lideranças conduzem seus projetos empregando estratégias não mais compatíveis com a realidade atual.

    Na verdade, estes líderes de TI foram promovidos pelo profundo conhecimento tecnológico sobre os sistemas existentes ou pela larga visão de negócios que ele adquiriu ao longo de toda carreira. Infelizmente, nenhum destes conhecimentos serão pré-requisitos para transformar as áreas TI em verdadeiras Fábricas de Software, pois trata-se de uma expertise voltada aos processos de engenharia de software, muitas vezes desconhecidas por estes profissionais.

    Eles não conseguiram adaptar-se às novas tendências metodológicas e dificultam a implantação de processos que visam estabelecer padrões de trabalhos. Alegam que os processos não foram construídos para a sua realidade e adiam continuamente o momento para implementá-las na organização. Invariavelmente culpa a falta de investimentos em capacitação e ferramentas, mesmo que muitas organizações gastem centenas de horas com consultorias e muitas tenham adquirido softwares que permanecem sub-utilizados pelas equipes.

    Podemos facilmente observar este comportamento nas organizações que buscam adequar-se à modelos e certificações internacionais, onde ocorrem continuamente trabalhos de formalização e implantação de processos. Enquanto algumas organizações conseguem rapidamente estabelecer padrões de trabalho e alcançar a certificação, outras arrastam-se por anos e não conseguem atender todas as exigências.

    Invariavelmente, o insucesso destes projetos deve-se pelo baixo comprometimento das lideranças em querer efetivar os processos de trabalho, gerando influência negativa para os demais profissionais de TI, que entendem os sinais e acabam negligenciando os procedimentos estabelecidos para garantir a correta e adequada implantação da formalização dos processos.

    Entendendo a resistência dos profissionais

    Quando abordamos os profissionais de TI, é consenso demonstrarem muito incômodo com a falta de organização e controle dos projetos que participam, onde regras são continuamente quebradas por suas lideranças, pela incapacidade em planejar adequadamente as demandas de trabalho.

    Porém, profissionais evitam os processos e práticas estabelecidas simplesmente porque acreditam que atuando livremente, sem interferência de um padrão, modelo ou processo, ele executará com mais agilidade seus trabalhos, reduzindo as pressões por produtividade e qualidade geradas pelos contínuos atrasos e problemas.

    Se os profissionais são um dos prinicipais prejudicados com a falta de um padrão organizacional, porque oferecem tanta resistência na hora de implantar e formalizar padrões de trabalho ???

    Minhas observações demonstram que os profissionais simplesmente não acreditam nas mudanças corporativas, porque percebem que suas lideranças estão tão perdidas e inseguras quanto elas, criando um grande vácuo entre “querer fazer” e “saber fazer”.

    Os profissionais interpretam estes projetos como modismos de mercado, introduzidos sem um adequado apoio e entendimento de suas lideranças, que muitas vezes delegam integralmente a responsabilidades da introdução destes processos a seus liderados, sem participar diretamente do esforço de tornar o processo operacional.

    Os profissionais relatam que os projetos desta natureza fadados ao fracasso, emitem sinais claros de que estão sendo mal conduzidos e não terão sucesso. Geralmente, eles começam com um grande apoio da alta diretoria, bloqueando todas as pressões por quebras nos procedimentos que prejudicariam os esforços na formalização dos serviços. Após algumas semanas, as primeiras quebras de processo são provocadas por uma forte pressão pelo encaixe de novas solicitações, rotuladas como prioritárias e urgentes. Gradativamente, as lideranças são pressionadas a abandonar seu planejamento e atender as solicitações sem seguir os rituais estabelecidos pela TI, alegando a imprevisibilidade das demandas. Neste ponto, trata-se de uma questão de tempo para que os procedimentosa afrouxem-se e tudo volte ao normal.

    Como os profissonais já estão acostumados a conviver com estas experiências negativas, criam estratégias para minimizar os impactos gerados por estes períodos de turbulência. Iniciam os trabalhos normalmente, evitando demonstrar que não acreditam no sucesso do projeto. Nos bastidores, busca atender minimamente as novas exigências, o suficiente para demonstrar seu apoio ao projeto, mas continuam produzindo conforme os velhos modelos, confirmando sua desconfiança com a implantação do novo processo.

    Estas experiências frustradas reforçam a rejeição dos profissionais na adoção de padrões e processos de trabalho, pois entendem que estas mudanças trarão inevitáveis complicações no seu dia a dia. Sem a convicção necessária das lideranças, novas demandas irão surgir e a pressão dos resultados forçará o profissional a executar o mais rapidamente suas atividades, mantendo a padronização dos trabalhos como algo secundário.

    Mesmo de forma inconsciente, os profissionais ajudam a perpetuar a cultura negativa sobre os controles operacionais, dificultando a transformação da TI num ambiente de trabalho baseado em processos, trabalhando com padrões corporativos fortemente estabelecidos e alto nível de qualidade e controle nos serviços executados.

    O mercado favorece quem trabalha por processos

    As organizações que apresentam dificuldades na implantação de processos que suportem sua cadeia de serviços, possuem atualmente menos oportunidades no competitivo mercado de TI, pois demonstram sua incapacidade em estabelecer regras internas e disciplinar os trabalhos de seus profissionais, criando uma condição de maior risco no ato da contratação de um serviço.

    Projetos que envolvem grande volumes financeiros são repassados a fornecedores que tenham no mínimo, níveis de maturidade que garantam a execução de seus serviços, através de processos consolidados e formalizados (Nível 2 e 3 do CMM-I).

    A ausência de padrões corporativos impedem que a organização esteja em conformidade com as certificações internacionais e tenham avaliações positivas quanto à seus procedimentos internos, limitando a organização em participar apenas dos projetos com baixa rentabilidade, provocando restrições financeiras que prejudicam novos investimentos e uma adequada remuneração de seus profissionais.

    Através das novas lideranças, a TI será transformada num ambiente de trabalho baseado em processos corporativos, construindo uma nova geração de empresas tão produtivas, organizadas e controladas como qualquer outra organização industrial, consolidando definitivamente o modelo das Fábricas de Software.

    Suportados por sólidos conhecimentos em administração, qualidade e engenharia de software, as novas lideranças moldarão o comportamento dos novos profissionais, estabelecendo modelos de trabalho que suportem os futuros desafios da área.

    Se a formalização dos processos não está refletindo nos ganhos operacionais desejados, é forte sinal de que os modelos implementados foram mal planejados e devem ser revistos. Os processos devem ser definidos sempre observando duas premissas fundamentais: elevar o desempenho operacional e incorporar controles que agreguem confiabilidade e qualidade nos trabalhos realizados.

    As organizações que obtiverem maior maturidade no gerenciamento das disciplinas que suportem toda a cadeia de serviços de software, conseguirão antecipar oportunidades e implementar novas tecnologias combinadas com as novas frentes de negócios, gerando diferenciais que a manterão em igualdade no cenário internacional.

  • Sites de vídeos entram na mira de hackers

    A audiência conquistada pelos sites que veiculam vídeos encaminhados pelos usuários, como Youtube e Revver, tem se tornado alvo das ações de hackers. Apesar da existência de tecnologias que facilitam a exibição dos vídeos diretamente do site, muitos só podem ser visualizados quando transferidos para o computador do usuário.

    Ao fazer o download, nem sempre o usuário possui instalados os codecs (compressores de arquivos de áudio/vídeo) necessários para assistir vários formatos de vídeos compactados para ocupar menos espaço em disco. Os códigos maliciosos estão sendo disfarçados dentro desses falsos codecs para enganar os usuários. Alguns contêm spywares, que rastreiam os arquivos no computador, vírus ou trojans, capazes de efetuar roubo de dados. Normalmente os arquivos infectados possuem a extensão “.WMV” ou “.AVI”.

    No caso dos trojans, a maioria é da família Zlob. Eles abrem uma porta para que os hackers controladores do programa transformem o computador da vítima em um zumbi para executar o envio de spams ou outras práticas criminosas.

    De acordo com a Bluepex, companhia sediada em Limeira, focada em desenvolvimento e produção de appliances (equipamentos com aplicativos incluídos) de gestão da internet em redes corporativas, é uma questão de tempo até que os hackers encontrem uma maneira de inserir códigos maliciosos dentro dos vídeos, disponíveis em sites como Youtube. A empresa recomenda que os usuários instalem somente codecs conhecidos, configurem os players para impedir o download dos compressores automaticamente e não reproduzam vídeos compactados com codecs desconhecidos.

    Segundo a Bluepex, no site www.codecs.com, é possível obter codecs gratuitos. Em caso de contaminação do sistema, basta ativar o anti-vírus para uma varredura completa na máquina.

  • Cresce o mercado para profissionais de BI

    Já faz algum tempo que BI (Business Intelligence) vem ganhando força no mercado e, mais do que nunca, as empresas voltam sua atenção não apenas para as informações operacionais, mas também para a questão estratégica, permitindo tomadas de decisões com maior precisão e menor risco possível.

    Como a maioria das organizações dependem da análise de informações estratégicas para se adequar ao mercado, fidelizar e conquistar novos clientes, monitorar concorrentes, ou adequar produtos ao seu mercado alvo, têm a necessidade de um profissional que tenha facilidade em absorver rapidamente as regras de negócio da empresa, transformando a preciosa fonte de informação que são os dados, em forma de relatórios, indicadores ou gráficos, que auxiliem os gestores a tomarem decisões rápidas e seguras, com base nas respostas obtidas pelo BI.

    Seguindo esta tendência de mercado e atendendo às demandas empresariais, a pesquisa “Tendências de Investimento em Business Intelligence & Business Performance Management”, realizada pelo IDC (International Data Corporation), indica que 38 das 148 empresas analisadas (todas com faturamento acima de 300 milhões de reais) já têm ou estão instalando o sistema e 29 já têm projetos planejados. A grande vantagem em torno destes sistemas é que eles não custam para as empresas o quanto custaram os sistemas de gestão empresarial (ERPS), nos quais chegou-se a gastar algumas centenas de milhares de dólares.

    Estima-se que o mercado de BI deva crescer cerca de 6 anualmente até 2008, segundo a pesquisa. De olho neste mercado estão não só empresas que possuem ferramentas específicas de BI ou BPM (Business Processes Management), e fornecedores de banco de dados, sistemas CRM ou ERP (como Oracle, SAP, Sybase ou Siebel), como também profissionais atentos a esse mercado e que pretendem se especializar nas soluções de BI disponíveis no mercado.

    O perfil dos profissionais que buscam qualificação em BI, são pessoas que atuam na àrea de dados e tem a necessidade de formalizar seus conhecimentos. São na sua maioria, analistas e executivos envolvidos no desenvolvimento de aplicações para tomada de decisão e datawarehouses, àreas de informação, marketing, vendas, administrativa, financeira ou operacional.

    Alguns tem a visão distorcida e limitada sobre BI, achando que engloba apenas os conceitos de criação de datawarehouses. Por outro lado, existem profissionais que buscam atuar em outras áreas e vêem no tratamento da informação executiva uma possibilidade de desenvolvimento profissional.

    Sem aprofundar muito neste aspecto, está claro que o profissional de BI deve aliar os recursos do banco de dados ao conhecimento do negócio, fazendo com que cada vez mais os produtos de BI deixem de ser uma caixa preta, e se tornem um aliado dos gestores da empresa.

    Isso faz com que todos os profissionais envolvidos no processo assumam riscos e responsabilidades. No BI tradicional havia a preocupação em levar informações ao usuário final, no atual, tem-se a preocupação de criar a inteligência nos processos do negócio.

    O processo básico que está por trás de um BI, é identificar padrões nos dados armazenados, e com base nestes padrões é possível propor análises que possam prever o comportamento de um determinado perfil, seja cliente, produto, período, etc. Com isso é possível extrair informações importantes para a área financeira, marketing, segurança, dentre outras.

    Além disso, espera-se que estes profissionais entendam como inferir resultados e comportamentos destes dados, utilizando modelagem estatística, inteligência competitiva, gestão do conhecimento, gestão de projetos, modelos de negócios, EAI (enterprise application integration), além das ferramentas e conceitos usuais de ETL, DW e OLAP. Nem sempre o mercado de trabalho usa formalmente o termo “analista de BI”, mas busca profissionais que tenham capacitação para trabalhar com informação executiva.

    Mas esses profissionais ainda têm um caminho cheio de desafios a percorrer. Eles devem ter uma carga de conhecimentos significativa, inclusive para saber como contratar empresas especializadas. Há ainda muitas dificuldades na implantação e integração de sistemas de BI, sendo que a maior dificuldade encontrada, é a questão da integração de dados, as aplicações e a qualidade dos dados.

    Muitas bases de dados tiveram origem em organizações diferentes (devido ao grande número de fusões e cisões de empresas) ou foram criadas a partir de migrações de dados de sistemas antigos. Trabalhar dados com problemas na origem pode ser o Beijo da Morte em BI.

    Para quem ainda não tem um sistema de BI na empresa, mas pretende implantar, é preciso ter em mente que este sistema não pode ser comprado em qualquer loja de informática. Um BI é construído com base nas características de cada organização. Sua evolução dentro da empresa, depende de sua utilização e aceitação por parte dos usuários, e o principal objetivo é descobrir maneiras diferentes de atuar no mercado e quais as mudanças internas devem ocorrer para atender as novas realidades.

    Um sistema de BI, ao contrário dos sistemas transacionais, estão em constante manutenção, pois ao longo do tempo, muitas regras de negócio da empresa podem mudar para atender às expectativas do mercado, e conseqüentemente as regras do BI também precisam ser ajustadas.

    Conhecer mais sobre essa tecnologia permitirá à estes profissionais ampliar sua visão sobre o negócio da empresa, propor soluções simples, inteligentes e mais confiáveis. Isto permitirá aos administradores de um sistema BI, maior tranqüilidade e segurança para definirem as metas e adotarem diferentes estratégias para a organização, conseguindo assim visualizarem antes de seus concorrentes novos mercados e oportunidades, atuando de maneiras diferentes conforme o perfil de seus consumidores.

    Abraço a todos!

  • Estética

    Olá Pessoal! Estive um tempinho fora, descansando e colocando a cabeça no lugar, mas já estou de volta. Vamos iniciar o ano com um tema no mínimo interessante: a estética visual.

    A estética é naturalmente evidenciada pela filosofia como o estudo direto do belo e da arte. É classificada como o conhecimento dos aspectos da realidade sensorial, classificáveis em termos de belo ou feio.

    Toda produção natural possui seu valor estético e a natureza se mantém no nível mais alto de respeito – mesmo considerando o feito como “feio”. Ela possui seu valor estético respeitável, sem quaisquer questionamentos.

    A estética é subjetiva ao espectador. Ele simplesmente gosta ou não gosta de determinada obra, mas, muitas vezes, não sabe dizer o que o incomoda. Esse ponto é bastante discutido por estudiosos que buscam sempre a perfeição no valor estético de uma obra.

    Estética das formas

    Temos conhecimento que as formas, como composição, definem a criação em um contexto global.

    Colocando um círculo branco em um fundo preto, ele causa a ilusão de ser maior do que na realidade é.

    Inversamente, se colocamos um círculo preto sobre um fundo branco, o círculo é reduzido pelo vazio circundante que o cerca.

    A mesma aplicação pode ser facilmente observada em textos, sendo que percebemos com facilidade oscilação de tamanho em fontes brancas e pretas. Esses espetáculos ópticos que ocorrem com linhas, formas e afins, são do particular interesse da estética das formas.

    A pintura também opera em aliança com as formas, que, por sua vez, possui valor estético aceito pelo público em massa ou não.

    O estudante e a estética

    Muitas vezes o jovem criador se depara com diversas questões relacionadas ao processo de composição e sua estética visual. Ele busca respostas em estudos sistemáticos que impõem padrões de estética e de necessidade do espectador, isto é, fazer exatamente o que o espectador espera encontrar e que não fuja muito de sua rotina.

    É fato que a estética influenciou o cinema e a televisão. Elementos antigos empregados em pinturas são utilizados até hoje. Consideramos que todo o conhecimento atual nada mais é que o resultado colhido com o passar dos anos.

    A existência dos padrões visuais encontrados em diversos segmentos é importante para dar-se início ao aprendizado e, por assim dizer, inovar e revolucionar com novos princípios e idéias. A moda é um exemplo de imposição do belo, agrada e desagrada. Desagrada por ousar… Mas ainda assim é aceita.

    Equilíbrio estético e composição

    Todo elemento visual pode ser chamado de massa. Ele deve ter peso e ser atrativo, despertando a atenção do espectador, ainda que não seja a atração principal. Sendo assim, o objeto ou personagem denominado massa não precisa necessariamente aparecer isolado em cena.

    Podemos notar, no exemplo abaixo, onde na primeira imagem a massa ocupa tamanho maior em um contexto, que a submete a ser foco das atenções. Na outra figura encontramos diversas massas. Quanto maior o número de massas encontradas em tela, maior é a dificuldade do apreciador em encontrar o foco do contexto.

    A segunda imagem perde muito na questão de “compreensão imediata”, mas ela exibe uma ação, a ação evidente do bule. Isso traz o foco para ele, porém não faz com que a imagem se torne menos confusa.

    Não devemos nos esquecer que o valor estético da imagem está totalmente ligado à sua composição. Temos, por referência, a separação dos elementos básicos a serem trabalhados:

    Corpo – Elemento ou conjunto de elementos de mesmo teor pode ser tratado como a massa de equilíbrio ou foco de atenção.

    Espaço – Área onde esses elementos denominados massa serão distribuídos.

    A composição de imagem pode ser definida como a arte de arranjar os elementos de uma imagem, de tal maneira que a atenção do telespectador se concentre no centro de interesse.Alberto Kemol

    Foco central

    Na pintura de Leonardo da Vinci, “A ceia”, observa-se Cristo como o ponto de fuga na perspectiva da imagem. O centro de interesse, embora havendo várias massas, é o próprio Cristo, sendo ele então o centro das atenções.

    Com isso percebemos que, mesmo baseando-se em regras formais de estética e composição, podemos dispor de outros recursos para encontrar a harmonia de que necessitamos para o processo de criação.

    É importante salientar que tudo o que vimos até agora deve ser lembrado para aflorar as idéias. Prender-se em utilizar apenas um recurso e esquecer de outras vertentes da criação é um erro grave, cometido por muitos… E por muitos anos.

    Falaremos mais sobre o assunto no próximo artigo.

    Grande abraço a todos!

  • Crackers brasileiros e russos trabalhando em conjunto

    O Websense Security Labs descobriu que autores de códigos maliciosos baseados no Brasil agora estão utilizando um kit popular de exploit Web, originado da Rússia. Esta união de grupos trabalhando em conjunto é relevante, pois tal tipo de colaboração ainda não havia sido visto anteriormente.

    O kit de ferramentas Web Attacker permite que os agressores coloquem códigos em seus sites da Internet para infectar os usuários visitantes. Esse kit de ferramentas é o mais popular da atualidade. Antes, os agressores brasileiros, na maioria das vezes, usavam táticas para enganar os usuários para estes mesmos rodarem os códigos criminosos. Estes ataques proporcionam o maior volume de amostras exclusivas conseguidas via observação diária.

    Dos ataques por amostra recebidos até então pelo Websense Security Labs, um foi uma reportagem falsa sobre o caso de um assalto que diz oferecer uma recompensa alta para quem capturar o criminoso. Outro ataque está em um e-mail pedindo para que o usuário veja algumas fotos.

    Nos dois exemplos, os agressores usaram o e-mail como forma de atrair a atenção de visitantes para seus sites. Ambos continham código que instalavam e baixavam informações roubando código malicioso se o PC do visitante não estivesse completamente protegido.

    Informações na tela estão disponíveis com os detalhes completos do alerta.

    Para mais detalhes e informações sobre como detectar e prevenir esse tipo de ataque: http://www.websensesecuritylabs.com/alerts/alert.php?AlertID=724

    Fonte: Websense Security Labs