Hospedagem Profissional

Hospedagem Profissional
Clique aqui e ganhe US$ 10,00 para testar durante 1 mês a melhor hospedagem: Digital Ocean!

sexta-feira, 27 de fevereiro de 2009

Currículos que funcionam

curriculos-que-funcionam A Microsoft recebe cerca de 25 currículos por dia. A Unisys, outros 500 por mês — em 2006, foram 6 mil. Por que um candidato é chamado para entrevista e o outro não? A resposta pode estar no currículo. Nem sempre basta ter boa formação e carreira sólida. Essas informações devem aparecer de forma clara, concisa e objetiva. “O entrevistador avalia o que o profissional pode trazer para a empresa. É importante que o currículo mostre as contribuições que ele deu nos empregos anteriores e os resultados obtidos”, afirma Mylene Mitrulis, gerente de recrutamento da Microsoft.
Os consultores de recursos humanos recomendam que o profissional prepare mais de um currículo para atender a diferentes situações. Se conhecer os requisitos da vaga, deve ressaltar as habilidades e experiências relacionadas com eles. “No currículo-padrão, essa informação pode passar despercebida, estar num cantinho escondido”, diz Leyla Galetto, diretora do Grupo Foco.
Veja o exemplo citado por Malena Martelli, diretora de recursos humanos da Unisys. A empresa precisa preencher com urgência uma vaga de gerente de projetos de TI, porque acabou de ganhar uma concorrência num banco. “Se eu bater o olho em um currículo de uma pessoa com experiência em gerência de projetos na área financeira e formação em Ciência da Computação na USP, certamente ela será chamada para a entrevista”, diz Malena.
Confira, a seguir, um modelo de currículo e dicas do que colocar em cada tópico:

Apresentação


Seja breve, claro e, ao mesmo tempo, abrangente. Coloque as informações mais importantes sobre a formação e a vida profissional de forma lógica e organizada, para facilitar a leitura. Evite fontes de letras muito pequenas ou cheias de firulas e o excesso de palavras grifadas — esse recurso deve ser usado apenas para destacar palavras-chave, que poderão facilitar o armazenamento do seu currículo em um banco de dados inteligente. Não mande foto. De modo geral, o currículo não deve passar de duas páginas. A exceção são para os cargos executivos, como presidente ou diretor de empresa. “Esse é um processo demorado, complicado, arriscado e caro”, afirma Riccardo Gambarotto, diretor da empresa de headhunters Spencer Stuart. “Por isso, é preciso conhecer toda a vida profissional do candidato.”

Objetivo e perfil


Decida exatamente o que você quer fazer — a área em que quer atuar ou a posição desejada — e coloque isso como objetivo, logo no início. Esse item facilita a vida de quem vai ler o currículo e, por isso, deve vir após a identificação pessoal — que deve conter apenas seu nome, endereço completo, telefone, celular e e-mail. Faça também uma síntese do seu perfil profissional, destacando qualificações, o tempo de carreira e as áreas em que tem mais experiência. Se trabalhou em empresas conhecidas no mercado, ou morou algum tempo no exterior, é importante ressaltar.

Histórico profissional


Essa é a parte mais importante do currículo. É onde você deve colocar os projetos de que participou. Comece sempre pelo último emprego, mencionando o nome da empresa, o período em que trabalhou nela e o cargo ou as funções que exerceu. Se não for conhecida, convém acrescentar uma breve descrição sobre ela (área em que atua, faturamento ou origem). Ressalte a sua contribuição nos resultados positivos que a empresa possa ter obtido. “Se participou de um projeto de TI que ajudou a organização a aumentar sua receita em 10%, por exemplo, isso deve estar no currículo”, diz Mylene Mitrulis, da Microsoft.

É preciso ter bom senso para não cansar o pessoal de recrutamento com uma lista interminável de realizações que podem não ser tão relevantes — ao menos para a vaga disponível. Bom senso também é fundamental na hora de descrever atividades ou funções mais técnicas. As “sopas de letrinhas” muito comuns na área de tecnologia podem ser um diferencial no currículo, mas é preciso levar em conta que quem vai ler o currículo primeiro é alguém da área de recursos humanos, que pode não dominar detalhes do linguajar técnico.

Formação e idiomas


A formação acadêmica deve conter os cursos de graduação, pós-graduação, MBA e de especialização — só os relevantes para a carreira. Além do nome do curso, é preciso colocar o nome da instituição e o período em que foi feito. Cursos fora do Brasil e as certificações profissionais também devem ser mencionados.
Dependendo da empresa, o conhecimento de outras línguas — em especial, o inglês — é essencial. Na Microsoft, por exemplo, falar inglês é pré-requisito. Por isso, o currículo deve informar que idiomas você conhece e se é fluente, ou está no nível intermediário. Se só souber o básico, é melhor não colocar nada.

Por Rosa Sposito - da INFO
em http://info.abril.com.br/professional/carreira/curriculos-que-funcionam.shtml
Publicado originalmente na revista INFO de abril de 2007

sexta-feira, 20 de fevereiro de 2009

Gestão custo zero

Relacionamento com o cliente é algo tão importante para uma empresa quedeveria ser rezado como mantra todos os dias por todos os funcionários, antes do início de qualquer expediente. Como não dá para contar só com reza brava, um bom programa de gestão empresarial pode ser uma excelente opção para companhias de grande porte. Mas e como ficam as pequenas e médias empresas, que dificilmente terão reservas para bancar caras soluções de CRM (relacionamento com o cliente), ERP (solução de integração de departamentos) e plataformas de colaboração? Para elas, há ótimas opções de código aberto prontinhas para serem usadas.

CRM pra quem fala inglês

Para quem encara inglês sem problema, uma das soluções open-source mais conhecidas é a SugarCRM (www.sugarcrm.com), que oferece boas opções de instalação e de hospedagem, com arquitetura flexível que facilita a vida da turma da TI. Feito em Ajax, o SugarCRM faz sincronização offline e integra-se à dupla Outlook e Microsoft Word. Como tem uma vasta biblioteca de plug-ins e uma comunidade atuante, ele tem suasfuncionalidades constantemente atualizadas e hoje em dia já tem até mesmo integração com VoIP.

O Centric (www.concursive.com) também se destaca para quem não tem problemas com a língua inglesa. Feito em Java, ele tem funcionalidades de colaboração da equipe de vendas. Suas ferramentas para marketing na internet também são interessantes e bem elaboradas.

O CentraView (http://sourceforge.net/projects/centraview) também é um sistema de código aberto baseado em Java (J2EE) e contém ferramentas de colaboração, CRM e administração de projetos. Ele pode rodar tanto localmente, em um servidor da empresa, quanto na internet. Flexível, o CentraView pode ser usado tanto em máquinas com Linux quanto com Windows.

Outra interessante solução CRM gratuita é o OpenCRX (www.opencrx.org), que se proõe a fazer uma integração total entre vendas, formulário, marketing e serviços para o consumidor, parceiros e fornecedores. Auto-denominando-se “verdadeiro open-source”, o OpenCRX funciona com as versões mais recentes do Internet Explorer, Firefox, Opera e Safari. Seu grande atrativo é ter um custo de manutenção muito baixo e ser extremamente simples, ainda que todas as instruções sejam em inglês. A interface é baseada em XML e é altamente customizável.

Yes, nós temos CRM/ERP brasileiro

As soluções de código aberto não se limitam a quem não perdeu as aulas de inglês do colegial. Os desenvolvedores brasileiros já estão adiantados nesse campo e apresentam ótimas opções totalmente em português. O Freedom (www.freedom.org.br), por exemplo, é um dos mais conhecidos softwares livres focado nos pequenos negócios. Desenvolvido pela SetPoint Informática, é distribuído sob a licença GPL, tem sistema de fácil manutenção e implantação simplificada. O sistema é dividido em vários módulos que se integram com facilidade.

Para o lado do ERP verde-amarelo, temos  o OpenERP (www.softwarelivre.org/initiatives/94), sistema de gestão 100% brasileiro, que foi inicialmente voltado para lojistas, com controle de pedidos, estoque, vendas e cadastro de clientes/produtos. Escrito em Java e voltado para a internet, ele utiliza Ajax, JSF, Spring e Hibernate, entre outras tecnologias.

Escrito pela Conceptia, o Compiere (www.conceptia.com.br/compiere) também tem sangue verde-amarelo e se propõe a ser um software completo de gestão empresarial, que é implementado diretamente na empresa, de acordo com a necessidade de cada uma delas. O Compiere gerencia fornecedores, contas a pagar, contagem de estoque (inventário), contas a receber, geração de pedidos e administração de projetos.

Inteiramente voltado para a plataforma Linux, o Stoq (www.stoq.com.br) se volta para a gestão comercial, com destaque para o controle de estoque e o cadastramento de clients. O Stoq vai além e também faz cálculo dos impostos, impressão de cheques e de nota fiscal.

Força na gestão empresarial

A área de ERP é amplamente dominada pelas competentíssimas soluções da Oracle e da SAP, que não raro são bem complexas, mas absolutamente completas. A fatia que sobrou para as empresas de código aberto é bem pequena e está dividida entre nomes como Apache OFBiz, Compiere, ERP5, Openbravo, OpenMFG/Postbooks e TinyERP.

O NetSuite(www.netsuite.com) impressiona pela usabilidade voltada ao SaaS, o software como serviço. Ele oferece uma soluções completas para ERP (com consolidador financeiro, inventário, controle de estoque e até comércio online), CRM (totalmente baseada na web, com cadastramento completo e detalhado do cliente) e até e-commerce (centraliza soluções de loja online, análise de tráfego e e-mail marketing em um só lugar).

No geral, a escolha do melhor aplicativo de gestão empresarial passa mais pela sua disponibilidade financeira do que pelos recursos oferecidos. Obviamente, muitas funcionalidades são semelhantes, mas é preciso uma boa pesquisa antes de fazer sua escolha. De qualquer modo, é reconfortante saber que existem diversas opções de código aberto que servem de opção às caríssimas soluções oferecidas pelas grandes empresas. É só pesquisar, testar e escolher.

Por Fernando Souza Filho
em http://pcmag.uol.com.br/conteudo.php?id=1081

quinta-feira, 19 de fevereiro de 2009

SCRUM: gerencie seu projeto de forma diferente e ágil

O principal desafio de um gerente de projetos é manter a equipe produzindo com alta performance e cumprir os prazos insanos que normalmente são impostos.

A SCRUM é uma metodologia de gestão de projetos focada em prazos de entrega e produtividade (desenvolvimento ágil).

É difícil conseguir passar o conceito de uma metodologia em um post, porém, pela simplicidade da SCRUM, resolvi sintetizar os pontos mais importantes que já servirão para você pelo menos se interessar pelo assunto.

Na SCRUM temos personagens e termos bem definidos para fazerem a coisa andar. Abaixo coloco cada um deles e sua principal função:

Sprint: é um período normalmente de 30 dias (não necessariamente, porém, a duração do Sprint tem de ser constante durante todo o projeto) onde a equipe se compromete com a entrega de determinadas tarefas que constam no Backlog.

Product Backlog: é uma listagem com todas as especificações do produto em questão. Este documento é visto por todos envolvidos. Umas das características é que ele pode ser alterado durante o processo. As mudanças normalmente se referem a prioridade das tarefas.

SCRUM Master: é o gestor do time de desenvolvimento. Seu principal objetivo é acompanhar e fornecer tudo o que seu time precisa para cumprir as tarefas acordadas dentro de um Sprint. Ele tem reuniões diárias e curtas com o SCRUM Team e é o cara que briga pelo time para permitir que eles possam trabalhar sem interferências.

Product Owner: é o responsável em entender o projeto junto ao cliente e passá-lo para o SCRUM Team.  Muitas vezes o Product Owner poder ser o próprio cliente. Além disso, ele é o que coloca prioridade nas tarefas. O resultado do seu trabalho é o Product Backlog descrito acima.

SCRUM Team: é a equipe de desenvolvimento que tem normalmente entre 5 e 9 pessoas. A responsabilidade pela divisão das tarefas é do próprio time, ou seja, eles é que decidem quem é que vai ficar com qual tarefa do Backlog. Estas definições podem ser trocadas durante o desenvolvimento. Como dá pra perceber, não tem muita regra e é por isso que a equipe deve ser composta por bons profissionais.

Daily SCRUM: reunião diária no mesmo horário entre o SCRUM Master e o SCRUM Team. O objetivo da reunião é eliminar ou entender qualquer obstáculo que tenha aparecido e ainda, faz com que cada membro da equipe responda algumas perguntas como:

- O que você fez desde a última reunião?
- O que você fará até a próxima reunião?
- Tem algo que está impedindo você fazer o que foi combinado?

Burn-down Chart: um gráfico que serve para acompanhar quanto trabalho ainda falta ser entregue dentro de um Sprint.

E como a coisa começa? Começa pelo Product Owner que faz o Backlog. :)

A SCRUM é uma metodologia que se encaixa em uma categoria já conhecida pelo mercado de TI chamada "agile development". Estas metodologias são totalmente voltadas para prazos, desburocratização, menos teoria e mais prática.

Abaixo coloco algumas referências para quem quiser se aprofundar no tema:

- Scrum em menos de 10 minutos (Sensacional!)
- Scrum Alliance
- Scrum na Wikipedia
- Scrum Brasil

Por Rodrigo Leme
em http://idgnow.uol.com.br/internet/deep_in_tech/archive/2009/02/16/scrum-gerencie-seu-projeto-de-forma-diferente-e-gil/

rsync.net Windows Backup Agent

Uma outra opção à integração do RSync com o windows, bem mais fácil do que a descrita neste artigo no post anterior, é a que se segue.

 

Installing the rsync.net Backup Agent

First, download the rsync.net Backup Agent and double-click the installation icon.

After clicking "Next" on the welcome screen, read the short License Agreement and check "I accept the agreement", then click "Next".

We recommend choosing the default destination directory for the software on the "Select Destination Location" screen. Click "Next".

We recommend choosing the default Start Menu folder, clicking "Next", then choosing the default "Additional Options" and clicking "Next" again.

Finally, on the "Ready to Install" page, click "Install". After the short installation, you may click "Finish" on the post-install screen.

Configuring a Backup

After starting the Backup Agent, you will be presented with a simple "Wizard". Click the top button labeled "Create a new backup profile".

In step 1, you will choose two locations - a source location on your own computer (the left-hand side) and the remote address of your rsync.net fileserver (the right-hand side).

Click the "Browse" button to the right of the "left-hand side" and choose a folder or directory on your computer to back up.

Click the globe icon to the right of the "right-hand side" to set up the remote destination for your backup. A small "Internet Protocol Settings" window will open.

Protocol should be set to "SSH (Encrypted)"

URL should be the address of your rsync.net storage system - this was indicated in your original welcome email. It should look something like:

sftp://usw-s001.rsync.net

or:

sftp://ch-s010.rsync.net

Port Number should be "22".

Folder is the folder on the remote side (the rsync.net side) that you would like this backup to be placed into. This should be something descriptive. A good choice is (name of machine)_(name of backup). For instance:

accounting_quickbooks

NOTE: there are no leading or trailing slashes on the "Folder".

NOTE: if you leave "Folder" blank, your backup will work fine - but the contents of your source directory will be placed in the base of your rsync.net account. If this is the only backup you will be pointing to this rsync.net account, that may be acceptable. However if you are pointing multiple backups to this rsync.net account, it will be very confusing. We strongly recommend that you enter a folder name.

User ID should be the rsync.net username that you received in your welcome email (a 4 or 5 digit number).

Password should be the rsync.net password that you received in your welcome email.

You should check BOTH "Save User ID" and "Save Password".

Now click the "OK" button.

Step 1 of 6 is now complete - click the "Next" button.

In step 2, you choose the direction of the backup. The default choice is to have only "Left to Right" checked. We recommend this setting.

Step 2 of 6 is now complete - click the "Next" button.

In step 3 you can choose from one of the various sync modes. The default settings of "Standard Copying", "Detect if Files Have Been Moved" and adjust location on the "Right-Hand Side" are recommended.

Step 3 of 6 is now complete - click the "Next" button.

In step 4 you can include or exclude specific file. We recommend leaving the defaults in place and backing up all of the files in the folder you chose in step1 .

Step 4 of 6 is now complete - click the "Next" button.

In step 5 you can schedule this profile for automated backups - IGNORE THIS SCREEN and simply click "Next". We will schedule the automated backups after the initial backup has concluded.

Step 5 of 6 is now complete - click the "Next" button.

In step 6 you can name your profile. Type in a descriptive name for the profile and then click "Save & Run".

After negotiating your login, you will be given an error message explaining that the folder you chose to store things in on the remote side does not exist. Click "Yes", indicating that the backup agent can create the folder.

You will now be shown a summary screen indicating all of the data that will be transferred during this backup. Simply click the "Start" button in the lower left corner.

The backup is now running. You will see progress meters for both the entire job and each individual file. When the backup is complete, you will see a "Copying Results" window. Simply click "OK".

Scheduling The Backup

If you have a large number of files to back up, your initial upload may take longer than 24 hours. For this reason, we do not schedule the daily, automated backups of your system until after the initial backup has completed. Subsequent backups are very quick because only the files that have been changed will be transferred to your rsync.net account.

Once your initial backup has completed successfully, use the following instructions to schedule your daily, automated backups.

If your initial backup fails for any reason, simply choose "Edit or run one of my saved profiles" from the Wizard and run your profile again (by clicking it once to highlight, then clicking the "Run Profile" button). You will again see the small "Progress Building File Lists" window, and will need to press "Start" once the "Backup Preview" window appears.

To schedule the backup, in the rsync.net Backup Agent Wizard, choose the second item "Edit or run one of my saved profiles".

Choose your saved backup profile from the list, and click the "Edit Profile" button.

All of your settings should remain the same, except for the schedule - so simply click "Next" until you arrive at step 5.

On the page for step 5, click "Schedule This Profile", and click "Run Every Day At".

Then enter a time of day that the backup job should run at. The best time to run a backup is during off-peak hours, when nobody is accessing the data being backed up. Be sure to choose the proper AM or PM signifier for the time you have chosen.

Make sure the box at the right marked "Start Scheduler" is checked and click "Next".

Now, on step 6 of the wizard, simple click "Save Only". The scheduler is now running and your backup will run at the time you have chosen each night.

Please see the entire Windows Integration Guide for details of other access methods.

 

Fonte : http://www.rsync.net/resources/howto/windows_backup_agent.html

Utilizando o RSYNC para fazer backups de servidores e estações Windows

Por: Dailson Fernandes (fofão) - http://www.dailson.com.br

Quem utiliza o RSYNC para fazer backups entre máquinas Linux, sabe como é fácil manter backups centralizados e atualizados de forma fácil, eficiente e segura. Mas que tal você portar esta facilidade para estações e servidores Windows? Este artigo lhe ensina a fazer esta integração de forma rápida e fácil.

Estrutura deste artigo :

   1. Introdução
   2. Como usar o RSYNC e SSH no Windows
   3. Obtendo e instalando o cwRsync
   4. Exemplos
   5. Opções que você deve conhecer
   6. Usando a tarefa agendada ou o AT do Windows
   7. Fazendo com que o script de backup não peça senha
   8. Conclusões e créditos

Introdução

Este artigo pode ser acessado diretamente no site www.dailson.com.br.

Quem utiliza o rsync para fazer backups entre máquinas Linux, sabe como é fácil manter backups centralizados e atualizados de forma fácil, eficiente e segura. E ainda mais se sua unidade de fita for em um servidor Linux (como é o meu caso), você pode deixar seus scripts de backup rodando para reunir todos os dados importantes em uma única máquina para depois fazer o backup em fita magnética.

Antigamente (ou atualmente dependendo do Administrador da Rede) quando queríamos fazer backups entre servidores remotos e centralizá-los, geralmente utilizávamos o FTP, que através de alguns comandos é possível fazer a conexão, login e senha automático e ainda mandar todos os arquivos para serem feitos backups em um servidor. O grande problema aí é que o FTP manda a senha em texto plano pela rede e seus arquivos podem ser capturados durante a transferência.

O rsync, como o nome sugere, é um programa que sincroniza remotamente os dados entre duas máquinas. Por ser baseado no antigo rcp (remote copy), o software herdou as propriedades de criptografia do protocolo SSH, o que torna sua transmissão de dados mais segura que o FTP.
Além das propriedades de segurança, o rsync utiliza o protocolo remote-update, o que aumenta assustadoramente sua velocidade e diminui a quantidade de dados transferidos, pois são trocados entre os servidores somente as diferenças entre dois grupos de arquivos.

Se alteramos uma dúzia de arquivos numa porção de centenas, ao executar um rsync do seu desktop para o servidor, somente os arquivos alterados serão enviados por upload e você ainda não corre o risco de algum espertinho utilizando um sniffer na rede capturar sua senha de FTP em texto plano.

Resumindo, existem pelo menos quatro situações onde o rsync pode te ajudar:

  • copiando (ou sincronizando) arquivos entre dois diretórios locais;
  • copiando (ou sincronizando) arquivos de sua máquina local para um servidor remoto;
  • copiando (ou sincronizando) arquivos de um servidor remoto para sua máquina local;
  • listando os arquivos de um diretório no servidor remoto (como um "remote ls").

Só uma curiosidade, o rsync é desenvolvido por Andrew Tridgell, o mesmo autor do SAMBA. Veja em:http://samba.anu.edu.au/rsync/

Como usar o RSYNC e SSH no Windows

Você deve estar pensando em instalar o CYGWIN para começar com o ssh e rsync não é? ESQUEÇA! Deixe o CYGWIN pra lá, existe um aplicativo chamando cwRsync que instala apenas o necessário para sua máquina Windows se comunicar com qualquer servidor Linux na hora, feito caldo de cana! E ainda é possível fazer um servidor, ou seja, o Windows ser um servidor rsync para sincronização nas duas vias: Windows -> Linux e Linux -> Windows. Mas isto é objeto para outro artigo.

Uma dica, se você quiser basta copiar o diretório c:\Arquivos de Programas\cwRsync para qualquer estação que tem o mesmo efeito de usar o executável da instalação.
Bom, no Linux, já está tudo pronto, não precisa fazer nada (basicamente), pois a maioria das distribuições já trazem o ssh e rsync instalados por padrão, caso não tenha na sua distribuição, instale com o gerenciador de pacotes da sua preferência, ou baixe o código fonte e compile!
Rsync:


SSH:

A idéia

O principal para mim é fazer os backups dos arquivos importantes do usuário sem que ele perceba que todos os seus dados estão sendo guardados de forma segura independente da vontade dele.

Por exemplo, você quer guardar os documentos da empresa ou ainda os emails corporativos. Se você deixar esta responsabilidade nas mãos do usuário... bom ... você já sabe... Mas que tal deixar uma tarefa agendada que faz isso diariamente?

Obtendo e instalando o cwRsync

Você pode obter o cwRsync aqui. Basta baixar o primeiro arquivo: cwRsync_2.1.4_Installer.zip.
Instale cwRsync_2.1.4_Installer.zip confirmando todas as opções.

Pronto! Foi criado na pasta C:\Arquivos de Programas um diretório chamando cwRsync. Lá estão os binários do ssh e rsync e um arquivo de exemplo que é auto explicativo, porém vamos a alguns exemplos.

Configurando o arquivo .bat ou .cmd para fazer a sincronização

O funcionamento é simples, mas devem existir no cabeçalho do arquivo, a declaração de algumas variáveis, então deixa sempre o cabeçalho do arquivo desta forma:

@ECHO OFF
SETLOCAL
SET CWRSYNCHOME=%PROGRAMFILES%\CWRSYNC
SET CYGWIN=nontsec
SET HOME=%HOMEDRIVE%%HOMEPATH%
SET CWOLDPATH=%PATH%
SET PATH=%CWRSYNCHOME%\BIN;%PATH%

E logo abaixo destas linhas pode começar a escrever as linhas que vão copiar seus diretórios e/ou arquivos para um servidor remoto.


Exemplos

Em primeiro lugar, precisamos convencionar que:

  • C:\ para o rsync é /
  • C:\Arquivos de Programas para o rsync é /"Arquivos de Programas"
  • C:\Arquivos de Programas\Microsoft Office para o rsync é /"Arquivos de Programas/"Microsoft Office"
Opções:
  • --recursive ou -r = cópia recursiva, ou seja todos os arquivos e subdiretórios abaixo do diretório informado;
  • -a = modo arquivo;
  • -v = Modo detalhado (verbose).
Então vamos aos exemplos.
Obs: Lembrando que todas as linhas abaixo são inteiras com enter apenas no final.
Para o exemplo usaremos o servidor 192.168.0.1:

Usuário do servidor: root Local: Um HD de backup montado em /media/hd_backup

1. Fazer backup dos emails do outlook do usuário Dailson:

rsync -av /"Documents and Settings"/dailson/"Configurações Locais"/"Dados de aplicativos"/Microsoft/Outlook/outlook.pst root@192.168.10.202:/media/backup

2. Fazer o backup da pasta C:\Sistema Empresa:

rsync -av --recursive /"Sistema Empresa" root@192.168.0.1:/media/hd_backup

3. Guardar a pasta meus documentos do usuário dailson:

rsync -av --recursive /"Documents and Settings"/dailson/"Meus documentos" root@192.168.0.1:/media/hd_backup

4. Guardar a pasta HOME inteira do usuário dailson:

rsync -av --recursive /"Documents and Settings"/dailson root@192.168.0.1:/media/hd_backup

5. Fazer backup da pasta do banco de dados da empresa C:\Banco de Dados:

rsync -av --recursive /"Banco de Dados" root@192.168.0.1:/media/hd_backup

Obs1: Lembrando que todas as linhas abaixo são inteiras com enter apenas no final.
Então um script backup.bat completo com os exemplos acima ficaria desta forma:

@ECHO OFF
REM *****************************************************
REM Script de Backup
REM Autor: Dailson Fernandes
REM Data: 01/08/2008
REM Função: Faz o backup das pastas importantes do usuário
REM *****************************************************
SETLOCAL
SET CWRSYNCHOME=%PROGRAMFILES%\CWRSYNC
SET CYGWIN=nontsec
SET HOME=%HOMEDRIVE%%HOMEPATH%
SET CWOLDPATH=%PATH%
SET PATH=%CWRSYNCHOME%\BIN;%PATH%
rsync -av /"Documents and Settings"/dailson/"Configurações Locais"/"Dados de aplicativos"/Microsoft/Outlook/outlook.pst root@192.168.10.202:/media/backup
rsync -av --recursive /"Sistema Empresa" root@192.168.0.1:/media/hd_backup
rsync -av --recursive /"Documents and Settings"/dailson/"Meus documentos" root@192.168.0.1:/media/hd_backup
rsync -av --recursive /"Documents and Settings"/dailson root@192.168.0.1:/media/hd_backup
rsync -av --recursive /"Banco de Dados" root@192.168.0.1:/media/hd_backup


Opções que você deve conhecer

1. Mantendo a imagem do backup idêntica a origem

Um backup feito com rsync vai ser feito de forma incremental. Porém se o usuário renomear um arquivo, apagar ou mover da origem (por exemplo da pasta Meus Documentos), o rsync irá copiá-lo novamente e ficará um fantasma no destino, ou seja, se o usuário apagar alguns arquivo, eles continuaram no backup e o efeito colateral disso é que o backup crescerá sem parar.

A idéia é fazer o seguinte, quando o usuário apagar um arquivo, o arquivo deve ser apagado do backup também. A opção do rsync que faz isso é:
  • --delete
Então a linha correta para o backup da pasta meus documentos do exemplo anterior seria:

rsync -av --recursive --delete /"Documents and Settings"/dailson/"Meus documentos" root@192.168.0.1:/media/hd_backup

2. Evitando backup de alguns arquivos

Você não deseja detonar seu espaço em disco com as músicas e filmes do seu usuário não é? Você pode dizer ao rsync para evitar alguns tipos de arquivos, bastando para isso usar a seguinte opção:
  • --exclude="O que se quer evitar"
Exemplo: Vou evitar que vá para o backup os seguintes arquivos:
  • Arquivos de música (MP3, OGG, WAV, WMA...)
  • Arquivos de Filme (AVI, MPEG, MPG, FLV, MP4, WMV, AMV ...)
  • Programas e arquivos temporários (EXE, COM, TMP)
  • Fotos e imagens (JPG, JPEG, BMP ...)
Basta você separar com espaço e colocar quantas exceções quiser. E ainda pode utilizar coringas. Por exemplo:
--exclude=*.jpg --exclude=*.avi --exclude=*.mp3 ...

O nosso exemplo da pasta Meus Documentos já com estas opções tratadas neste tópico ficariam deste jeito:

rsync -av --recursive --delete -e "ssh -p 16117" --exclude=*.tmp --exclude=*.*~ --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 --exclude=*.mp4 --exclude=*.wav --exclude=*.flv --exclude=*.wma --exclude=*.mpeg --exclude=*.mpg --exclude=*.wmv --exclude=*.exe --exclude=*.amv --exclude=*.com --delete /"Documents and Settings"/dailson/"Meus documentos" root@192.168.0.1:/media/hd_backup

Neste caso o script completo ficaria desta forma:
Obs: Lembrando que todas as linhas abaixo são inteiras com enter apenas no final.
Grave ele na raiz do C:\ e chame de backup.bat:

@ECHO OFF
REM *****************************************************
REM Script de Backup
REM Autor: Dailson Fernandes
REM Data: 01/08/2008
REM Função: Faz o backup das pastas importantes do usuário
REM *****************************************************
SETLOCAL
SET CWRSYNCHOME=%PROGRAMFILES%\CWRSYNC
SET CYGWIN=nontsec
SET HOME=%HOMEDRIVE%%HOMEPATH%
SET CWOLDPATH=%PATH%
SET PATH=%CWRSYNCHOME%\BIN;%PATH%
rsync -av /"Documents and Settings"/dailson/"Configurações Locais"/"Dados de aplicativos"/Microsoft/Outlook/outlook.pst root@192.168.10.202:/media/backup
rsync -av --recursive --delete --exclude=*.tmp --exclude=*.*~ --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 --exclude=*.mp4 --exclude=*.wav --exclude=*.flv --exclude=*.wma --exclude=*.mpeg --exclude=*.mpg --exclude=*.wmv --exclude=*.exe --exclude=*.amv --exclude=*.com /"Sistema Empresa" root@192.168.0.1:/media/hd_backup
rsync -av --recursive --delete --exclude=*.tmp --exclude=*.*~ --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 --exclude=*.mp4 --exclude=*.wav --exclude=*.flv --exclude=*.wma --exclude=*.mpeg --exclude=*.mpg --exclude=*.wmv --exclude=*.exe --exclude=*.amv --exclude=*.com /"Documents and Settings"/dailson/"Meus documentos" root@192.168.0.1:/media/hd_backup
rsync -av --recursive --delete --exclude=*.tmp --exclude=*.*~ --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 --exclude=*.mp4 --exclude=*.wav --exclude=*.flv --exclude=*.wma --exclude=*.mpeg --exclude=*.mpg --exclude=*.wmv --exclude=*.exe --exclude=*.amv --exclude=*.com /"Documents and Settings"/dailson root@192.168.0.1:/media/hd_backup
rsync -av --recursive --delete --exclude=*.tmp --exclude=*.*~ --exclude=*.jpg --exclude=*.avi --exclude=*.mp3 --exclude=*.mp4 --exclude=*.wav --exclude=*.flv --exclude=*.wma --exclude=*.mpeg --exclude=*.mpg --exclude=*.wmv --exclude=*.exe --exclude=*.amv --exclude=*.com /"Banco de Dados" root@192.168.0.1:/media/hd_backup


Usando a tarefa agendada ou o AT do Windows

Bom, já que todo o trabalho está feito, só falta agendar a tarefa para que este script seja executado diariamente, ou de acordo com a sua necessidade. Mas não custa nada lembrar que da primeira acontecerá o seguinte:

1. Somente da primeira vez que você rodar o script, o rsync (ssh) pedirá para você aceitar a chave do host no qual está enviando os dados. Para isso basta digitar yes e pronto. Esta pergunta não acontecerá novamente.

2. A primeira cópia é completa e dependendo da quantidade de dados irá demorar um pouco. Porém se imediatamente após a cópia você chamar o script novamente, verá que o rsync não vai fazer nada. O rsync a partir da segunda cópia só vai copiar os arquivo que foram alterados, criados ou deletará do backup o que foi deletado da origem.

3. Para agendar a tarefa deste script rodar automaticamente diariamente ou a sua escolha vá em tarefas agendadas do Windows em:

Iniciar / Programas / Acessórios / Ferramentas / Tarefas Agendadas

Ou se preferir, use o AT do Windows, que é um agendador de tarefas semelhante ao do Linux que também roda em linha de comando. Se quiser aprender sobre o AT no Windows, visite a seguinte página:

Fazendo com que o script de backup não peça senha

Antes da cópia começar, o login é feito via ssh. Nesta hora o login é passado pela string root@192.168.0.1:/media/hd_backup, porém imediatamente depois é solicitada a senha.
Então este incomodo é gerado, ou seja, toda vez que a tarefa agendada iniciar o script de backup, a senha será solicitada. E se o usuário não tiver na frente do computador? Ou se esse backup for feito de madrugada?

Para resolver este problema, basta gerar as chaves pública e privada e fazer com que o cwRsync comece o backup sem intervenção humana.


Gerando as chaves


No servidor Linux, gere as chaves públicas e privadas da seguinte forma. No usuário que você fará a conexão sem senha (vou utilizar o root como exemplo), digite no terminal:


# ssh-keygen

Quando perguntado para entrar com uma "passphrase", apenas tecle "Enter" duas vezes para que fique em branco, caso contrário esta frase precisará ser digitada posteriormente.

A saída do comando é esta:

Generating public/private rsa key pair.
Enter file in which to save the key
(/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in
/root/.ssh/id_rsa.
Your public key has been saved in
/root/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx

Pronto, foram geradas suas chaves públicas e privada dentro do diretório /root/.ssh. São elas:

  • /root/.ssh/id_rsa (privada)
  • /root/.ssh/id_rsa.pub (pública)

Agora faça o seguinte:

# cat /root/id_rsa.pub >> /root/.ssh/authorized_keys


É importante que a chave pública (id_rsa.pub) seja adicionada (usando o sinal de maior maior ">>") dentro do arquivo "authorized_keys", pois podem haver outros clientes registrados neste mesmo arquivo.

Pegue o arquivo /root/.ssh/id_rsa (a sua chave privada) e copie no seguinte diretório na sua máquina Windows:

c:\Documents and Settings\seu_usuário\.ssh

Pronto!

Agora rode novamente o backup.bat e veja que o backup é feito sem nenhuma interferência.

A chave privada está em "/root/.ssh/id_rsa" e a pública em "/root/.ssh/id_rsa.pub".

Conclusões e créditos

Bom, estou compartilhando a solução que achei em meu trabalho de fazer backups de servidores e estações Windows de forma segura e íntegra. Utilizo esta forma há alguns anos sem quaisquer tipos de problemas.

Existem muito mais opções que podem ser utilizadas com rsync. Para isso consulte o manual.

Ele é muito bom e explicativo.

Se você tiver no Linux, digite "man rsync" ou consulte ele na web em:


A introdução foi retirada do artigo de Fábio Berbert de Paula em Transferindo arquivos com o rsync/.

Geração de chaves: Conexões SSH sem senha fácil e descomplicado

Este artigo pode ser acessado a partir do meu site em:


E lembrem-se...
Flames > /dev/null!

Fonte : http://www.vivaolinux.com.br/artigo/Utilizando-o-RSYNC-para-fazer-backups-de-servidores-e-estacoes-Windows/

quarta-feira, 18 de fevereiro de 2009

Applet que captura imagem de webcam

Pessoal

Estamos com uma demanda num projeto WEB, onde devemos capturar a imagem da web cam. Sinistro né!!!

Pois é, como sempre, antes de reinventar a roda, procurei por alguma solução já pronta, e encontrei!  =)

Graças ao nosso amigo Hari (http://forums.sun.com/profile.jspa?userID=112431), encontrei um post no fórum da SUN com os códigos fontes para uma solução híbrida entre Applet e Servlet

Não esquecer que a solução usa também o JMF, não incluso com a JRE, portanto, acesse o site http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/download.html para fazer o download do JAR e inclua-o no seu class path.

Abaixo segue o post do Hari.

 

 

Hi guys,
Iam not going to ask any Q. but after a long frustrating day , I finally have achived in doing this , To avoid any one else from such hardship , I post below the code..
This code below demonstrates 3 solutions
1. How to transfer image from applet to server side.
2. How to capture image from webcam.
3. How to do applet-servlet comm.
Well I should thank some of the replies that were already available on the forum, but what I have done here is added all bit's and pieces and u have a complete solution available.

// This is the JMF applet

import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import javax.media.Buffer;
import javax.media.CaptureDeviceInfo;
import javax.media.Manager;
import javax.media.MediaLocator;
import javax.media.Player;
import javax.media.cdm.CaptureDeviceManager;
import javax.media.control.FrameGrabbingControl;
import javax.media.format.VideoFormat;
import javax.media.util.BufferToImage;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.ImageIcon;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
/*
* Created on Jun 27, 2003
*
*/
/**
* @author administrator
*
*/
public class WebcamCaptureApplet extends Applet implements ActionListener {
public static Player player = null;
public CaptureDeviceInfo di = null;
public MediaLocator ml = null;
public JButton capture = null;
public Buffer buf = null;
public Image img = null;
public VideoFormat vf = null;
public BufferToImage btoi = null;
public ImagePanel imgpanel = null;
public URL url;
public URLConnection conn;
public String hostname;
public int port;

public void init(){
setLayout(new BorderLayout());
setSize(320,550);
imgpanel = new ImagePanel();
capture = new JButton("Capture");
capture.addActionListener(this);
//This may differ check the jmf registry for
// correct entry
String str2 = "vfw:Microsoft WDM Image Capture Win32):0";
di = CaptureDeviceManager.getDevice(str2);
hostname = getCodeBase().getHost();
port = getCodeBase().getPort();
ml = di.getLocator();
try {
player = Manager.createRealizedPlayer(ml);
player.start();
Component comp;
if ((comp = player.getVisualComponent()) != null) {
add(comp,BorderLayout.NORTH);
}
add(capture,BorderLayout.CENTER);
add(imgpanel,BorderLayout.SOUTH);
} catch (Exception e) {
e.printStackTrace();
}
}
public void paint (Graphics g) {
}
public static void playerclose() {
player.close();
player.deallocate();
}
public void actionPerformed(ActionEvent e) {
JComponent c = (JComponent) e.getSource();
if (c == capture) {
// Grab a frame
FrameGrabbingControl fgc = (FrameGrabbingControl)
player.getControl("javax.media.control.FrameGrabbingControl");
buf = fgc.grabFrame();
// Convert it to an image
btoi = new BufferToImage((VideoFormat)buf.getFormat());
img = btoi.createImage(buf);
// show the image
imgpanel.setImage(img);
// save image
UploadImage(img);
}
}

public void start()
{
}
public void UploadImage(Image img){
try {
String path = "http://"hostname":"port"/dmc_xml/servlet/sampleServlet";
url = new URL(path);
System.out.println("after url");
System.out.println(path);
conn = url.openConnection();
System.out.println("after url");
ImageIcon icon = new ImageIcon(img);
//Prepare for both input and output
conn.setDoInput(true);
conn.setDoOutput(true);
//Turn off caching
conn.setUseCaches(false);
//Set the content type to be java-internal/classname
conn.setRequestProperty("Content-type", "application/x-java-serialized-object");
//Write the object as post data
ObjectOutputStream out = new ObjectOutputStream(conn.getOutputStream());
out.writeObject(icon);
out.flush();
out.close();
InputStream ins = conn.getInputStream();
ObjectInputStream objin = new ObjectInputStream(ins);
String msg = (String)objin.readObject();
System.out.println(msg.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(e);
}
}
class ImagePanel extends Panel {
public Image myimg = null;
public ImagePanel() {
setLayout(null);
setSize(320,240);
}
public void setImage(Image img) {
this.myimg = img;
repaint();
}
public void paint(Graphics g) {
if (myimg != null) {
g.drawImage(myimg, 0, 0, this);
}
}
}
}

// This is the servlet part
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OptionalDataException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.swing.ImageIcon;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import javax.media.*;
import javax.media.util.BufferToImage;

/*
* Created on Jun 13, 2003
*
* java_xml
* $Id:$
*/
/**
* @author Administrator
*
*/
public class sampleServlet extends HttpServlet {
public Image img = null;
public Buffer buf;
public BufferToImage btoi = null;
public PrintWriter out = null;
public void doGet (HttpServletRequest req, HttpServletResponse resp)
throws ServletException , IOException
{
doPost(req, resp);
}
public void doPost (HttpServletRequest req, HttpServletResponse resp)
throws ServletException , IOException
{
System.out.println("Applet invoked servlet ");
ObjectInputStream objin = new ObjectInputStream(req.getInputStream());
try {
ImageIcon icon = (ImageIcon)objin.readObject();
System.out.println("object converted to buffer");
img = icon.getImage();
System.out.println(img.getHeight(null));
BufferedImage bi = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = bi.createGraphics();
g2.drawImage(img, null, null);
FileOutputStream fout = null;
try {
//Change it to some server specific path
fout = new FileOutputStream("c:\\test.jpg");
} catch (java.io.FileNotFoundException io) {
System.out.println("File Not Found");
}
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fout);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
param.setQuality(0.5f,false);
encoder.setJPEGEncodeParam(param);
try {
encoder.encode(bi);
System.out.println("file saved...");
fout.close();
//send back a confirmation message to the applet
String msg = new String("Upload confirmed");
ObjectOutputStream out = new ObjectOutputStream(resp.getOutputStream());
out.writeObject(msg);
out.flush();
out.close();
}
catch (java.io.IOException io) {
System.out.println("IOException");
}
} catch (OptionalDataException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

Hope this helps all of you,
Let me know if you want more inputs
-Hari

Fontes:

- http://www.javafree.org/topic-852912-Applet-que-captura-imagem-de-webcam-nao-funciona.html

- http://forums.sun.com/thread.jspa?threadID=416603&messageID=1840893#1840893

quinta-feira, 12 de fevereiro de 2009

Chamando métodos nativos (.dll/.so/…) em java sem JNI

Uma das coisas mais chatas em java é que quando é necessário utilizar algum método nativo de qualquer biblioteca de qualquer sistema operacional, é necessário criar uma classe stub com métodos declarados como native, depois gerar um .h com o comando javah e implementar aquele método nativo com o compilador C de sua escolha, mesmo que isto seja apenas um proxy para alguma função de alguma DLL que já existe com exatamente os mesmos parametros, certo? errado!
Isto só era desta forma até criarem o projeto Java Native Access (JNA)
Na página do projeto existem alguns exemplos de chamadas a bibliotecas padrão do sistema operacional (tanto linux quando windows), mas eu não estava muito feliz com isto, imaginem se eu ja desenvolvi uma DLL/SO ou pior ainda, eu preciso chamar alguns métodos de uma DLL fornecida por alguem? e ai preciso ainda de toda aquela parafernalha do JNI?
Não precisa mais, e só para comprovar eu criei este exemplo simples!

Comecemos criando um biblioteca (a minha máquina é linux, por tanto vou criar um .so podem fazer o mesmo teste em um windows por ai se quiserem, mas por enquanto eu ja estou bastante feliz :D )
arquivo testejna.h

#ifndef testejna_H
#define testejna_H
void librarymethod(char* whatToSay);
#endif



vamos implementar isto no arquivo testejna.c




#include 
#include
#include "testejna.h"

void librarymethod(char* whatToSay)
{
printf("Java Rocks, I'm Calling this without JNI and telling the C code to Say: %s !\n",whatToSay);
}



tudo pronto, mandei o kdevelop compilar isto para mim, e ele criou o arquivo libtestejna.so, agora a nossa tarefa é chamar a função librarymethod desta biblioteca dinâmica (.so no linux, .dll no windows) a partir do nosso código java! preparem-se para passar trabalho :D


Só brincadeira, criei um projeto java novo no IntelliJ IDEA e adicionei o arquivo jna.jar no classpath (pode ser baixado do site do projeto)


Criei uma interface com a declaração do método que quero chamar, a idéia é uma interface possuir todos os métodos do .so/.dll que a aplicação for utilizar.




package testejna;

import com.sun.jna.Library;

public interface MySharedLibrary extends Library {
public void librarymethod(String whatToSay);
}



Como podem ver, a única exigencia é que esta interface extenda com.sun.jna.Library, e esta tudo pronto, podemos agora utilizar a biblioteca dinâmica ja criada, e sem toda aquela encheção de saco do JNI!

Mas como?


Assim:




package testejna;

import com.sun.jna.Native;

public class TesteJNA {
public static void main(String args[]){
MySharedLibrary lib = (MySharedLibrary) Native.loadLibrary("testejna", MySharedLibrary.class);
lib.librarymethod("Java Rocks");
}
}



E executando o programa extremamente complexo em java que foi criado é impresso no console:




Java Rocks, I'm Calling this without JNI and telling the C code to Say: Java Rocks !



A idéia básica é que o método loadLibrary da classe com.sun.jna.Native cria um proxy para a interface que definimos, e cada método chamado deste próxy será direcionado para a biblioteca nativa.



O JNA ja tem suporte para diversas plataformas, olhando dentro do arquivo jna.jar, eles ja possuem suporte para:




  • darwin (Mac OS X)


  • freebsd-i386


  • linux-amd64


  • linux-i386


  • sunos-sparc


  • sunos-sparcv9


  • sunos-x86


  • win32


  • win32-x86



Ou seja, a grande maior parte dos sistemas utilizados por ai.

O que acontece é que eles possuem 1 biblioteca nativa para cada um destes sistemas operacionais que funciona de proxy para qualquer outra biblioteca do mesmo.



Eu achei o projeto espetacular, e a partir de hoje, não precisamos mais entrar em desespero sempre que for necessário chamar algum método nativo de alguma biblioteca proprietária (o pessoal que precisa trabalhar com impressoras fiscais que deve ficar bastante feliz :D )



Por Urubatan

em http://www.urubatan.com.br/chamando-metodos-nativos-dllso-em-java-sem-jni/

terça-feira, 10 de fevereiro de 2009

Cloud computing: entenda este novo modelo de computação

São Paulo - Saiba o que significa a expressão do momento em tecnologia e entenda os benefícios que ela trará a fornecedores e usuários.

Cloud computing é a expressão do momento em tecnologia. Nomes de peso como Amazon, AT&T, Dell, HP, IBM, Intel, Microsoft e Yahoo já anunciaram planos e investimentos na área e o Gartner acaba de liberar um relatório que aponta o cloud computing como uma das três mais importantes tendências emergentes nos próximo três a cinco anos.

Mas se há um consenso de que esta é a hora do cloud computing, não é possível dizer que haja uma idéia definida comum do que realmente é a chamada computação em nuvem. As opiniões são variadas e um bom exemplo de que o conceito ainda está nublado é o divertido vídeo da fornecedora Joyent, que mostra personalidades notórias como o visionário da web 2.0, Tim O'Reilly, o editor-chefe da CNet, Dan Farber, e o co-fundador do Wodpress, Matt Mullenweg, dando visões bastante distintas sobre o tema.

Juntando tudo, cloud computing pode ser definido como um modelo no qual a computação (processamento, armazenamento e softwares) está em algum lugar da rede e é acessada remotamente, via internet.

“O que realmente significa é que alguém vai assumir a responsabilidade de entregar algumas funções de TI como serviços para alguns clientes e eles não precisam saber como funciona, eles simplesmente usarão”, esclarece Daryl C. Plummer, vice-presidente do Gartner, em um podcast da empresa de análise.

A nuvem em funcionamento
Pode parecer abstrato, mas alguns serviços que usamos no dia-a-dia ajudam a exemplificar o que significa este modelo. O e-mail é um deles. No modelo tradicional de computação, suas mensagens ficam salvas no software de e-mail, dentro do seu computador.

Em contrapartida, com os e-mails baseados em web (Hotmail, Gmail, Yahoo Mail ou qualquer outro da sua preferência), você pode acessar sua conta com todas as suas mensagens - armazenada em um servidor alheio -, a qualquer hora, de qualquer lugar, por meio da internet.

Aplicativos de edição de texto, planilhas, apresentação, edição de imagem e até softwares de gestão de relacionamento com clientes (como o CRM online da Salesforce.com) também estão migrando para este modelo.

E não são apenas os softwares que podem ser acessados remotamente pela nuvem. Os recursos de hardware - como processamento e armazenamento também (hoje já é comum guardarmos arquivos, e-mails, fotos, vídeos em servidores de terceiros e acessá-los remotamente pela web).

As vantagens do modelo
Todas estas tecnologias que vêm emergindo e amadurecendo foram empacotadas no conceito que levou o nome de cloud computing. “Em alguns anos não vamos chamar isso de cloud computing. Não terá nome. Será simplesmente computação”, defende Luis Sena, gerente de marketing de serviços da HP Brasil.

O entusiasmo com o cloud computing e os esforços de companhias do porte das citadas no início desta matéria se devem às inúmeras vantagens que ele pode oferecer tanto aos fornecedores de tecnologia quanto aos usuários.

Em primeiro lugar, este é um modelo que prevê um melhor aproveitamento dos investimentos em hardware. Um dos pilares do cloud computing é a consolidação dos recursos de hardware para que eles possam ser aproveitados ao máximo e gerenciados de forma inteligente, proporcionando economia de custos.



“O mais relevante é que estamos falando de uma escala que não é mais local, mas sim global. O Google tem dezenas de data centers espalhados pelo mundo. Todos prestam serviços não a um país, mas a diversos, atendendo milhões de usuários”, define José Nilo Martins, gerente sênior de Google Enterprise para o Brasil.

A rede de varejo Amazon.com foi uma das pioneiras em entender e aplicar isto a seu favor. Para suportar a demanda das datas de pico em vendas - como o Natal - a loja online teve que investir em um poderoso parque de hardware. No entanto, fora das datas críticas, grande parte dos recursos ficava ociosa.

Desde 2002, a companhia vem experimentando com o “aluguel” desta capacidade. Em 2006, a empresa lançou dois serviços abertos ao público que a colocaram à frente na corrida do cloud computing: o Simple Storage Solution (S3), que permite ao usuário comprar espaço para armazenar arquivos online; e o Elastic Compute Cloud (EC2), que permite utilizar máquinas virtuais completas.

Os serviços não são apenas uma saída para o problema da Amazon, mas também uma oportunidade para as empresas começarem um negócio sem ter de investir na compra de equipamentos e com a flexibilidade de aumentar os recursos conforme for necessário.

Este exemplo revela outra vantagem do cloud computing: a flexibilidade. Se você precisa de mais processamento, você pode fazer um upgrade imediato de capacidade, sem precisar trocar componentes ou até equipamentos inteiros para isto. O mesmo vale para armazenamento ou até mesmo upgrades de software.

Se antes, para atualizar um software o administrador tinha que reinstalar todo o produto na máquina de cada usuário, neste modelo os aplicativos podem ser constantemente aperfeiçoados sem impactos para os usuários, uma vez que estão hospedadas em um único ponto central. Quantas vezes o Google já introduziu melhorias no Gmail, por exemplo, sem afetar a rotina dos seus milhões de usuários?

Outra vantagem deste novo modelo computacional é que ele não exige mais equipamentos potentes na ponta para acessar as aplicações. Como a parte mais pesada do processamento fica na nuvem, o usuário final só precisa de um browser e uma boa conexão à internet. “Com o cloud computing, qualquer um pode ter um supercomputador em casa”, afirma Fábio Boucinhas, diretor de produtos do Yahoo Brasil.

Desafios no ar

As empresas envolvidas na promoção do cloud computing têm, contudo, alguns desafios, entre eles segurança e confiabilidade. Para que o usuário confie grande parte de seus sistemas e arquivos a um terceiro, ele terá de garantir que os dados estejam devidamente protegidos e 100% disponíveis.

Isso é ainda mais crítico quando se trata de informações empresariais altamente sensíveis, como processamento de dados financeiros. “Isso terá de ser regulado para garantir que será feito da forma certa”, alerta Plummer, do Gartner.

A forma como esses serviços serão cobrados também é outra questão importante. Fornecedores que tiveram sucesso vendendo caixas - seja de software ou de hardware - terão que migrar para o modelo de venda de serviços. “Os custos para os usuários finais serão menores”, assegura Otávio Pecego, gerente do grupo de arquitetura da Microsoft Brasil.

Para endereçar questões como esta, três grandes nomes da indústria de tecnologia - Intel, HP e Yahoo - formaram uma aliança. “Hoje as questões de segurança e confiabilidade são inibidores do modelo. A idéia é identificar como atender esses requerimentos e criar padrões”, explica Sena, da HP.

O ritmo de adoção do cloud computing será definido pela velocidade com que estas questões serão endereçadas. “Quando isso acontecer - e vai acontecer - o fenômeno vai estar em pleno efeito”, prevê Plummer.

Por Daniela Moreira, editora assistente do IDG Now!

terça-feira, 3 de fevereiro de 2009

Hierarquia entre os diferentes tipos de mensagem do Log4J

Logger Output Hierarchy

Logger Output Hierarchy

A logger will only output messages that are of a level greater than or equal to it. If the level of a logger is not set it will inherit the level of the closest ancestor. So if a logger is created in the package com.foo.bar and no level is set for it, it will inherit the level of the logger created in com.foo. If no logger was created in com.foo, the logger created in com.foo.bar will inherit the level of the root logger, the root logger is always instantiated and available, the root logger is assigned the level DEBUG.

There are a number of ways to create a logger, one can retrieve the root logger:

Logger logger = Logger.getRootLogger();

One can create a new logger:

Logger logger = Logger.getLogger("MyLogger");

More usually, one instantiates a static logger globally, based on the name of the class:

static Logger logger = Logger.getLogger(test.class);

All these create a logger called "logger", one can set the level with:

logger.setLevel((Level)Level.WARN);

You can use any of 7 levels; Level.DEBUG, Level.INFO, Level.WARN, Level.ERROR, Level.FATAL, Level.ALL and Level.OFF.

Fonte : http://supportweb.cs.bham.ac.uk/documentation/tutorials/docsystem/build/tutorials/log4j/log4j.html

Desenvolvimento Ágil

Na empresa britânica BSkyB, Ben Coombs acelera a criação de software

Embraer e Grupo Semco, aqui no Brasil, e BMW, Philips, Bosch e Toyota, no exterior, são alguns exemplos de empresas que estão de olho na criação de soft- ware através de metodologias ágeis de desenvolvimento, o chamado Agile Software Development. Mas é a equipe Agile do grupo britânico de mídia British Sky Broadcasting (BSkyB) que é considerada uma das mais eficientes do mundo no uso dessa técnica. O modo de trabalho consiste em produzir programas num prazo que varia de uma a seis semanas, por meio da constante interação entre programadores, clientes e executivos de TI. Ben Coombs, Agile Java developer da BSkyB, fala à Info CORPORATE sobre a aplicação da metodologia nas empresas.

Coombs, da BSkyBInfo CORPORATE - Quais são as principais vantagens e desvantagens no uso diário desse método?
Ben Coombs - A principal vantagem é que é muito mais divertido trabalhar dessa forma. O método estimula a qualidade no desenvolvimento, e a empresa adora ver idéias transformadas num produto funcional rapidamente. Com relação às desvantagens, o Agile requer a contribuição contínua do departamento que irá usar o produto. Eles têm de estar por perto para testar, responder questões ou explicar como querem que o programa funcione.

IC - Uma das críticas ao sistema Agile é que requer muita mudança cultural na adaptação. Como foi seu processo de aprendizado?
Coombs - Levou algumas semanas para que eu entendesse a forma de trabalho dessa metodologia. Com ela, toda a programação acontece em dupla. Eu costumo procrastinar por natureza, mas felizmente é difícil procrastinar quando se está trabalhando com um parceiro o dia inteiro.

IC - Como você está aproveitando essa metodologia no seu ambiente de trabalho?
Coombs - Tenho desenvolvido programas usando o processo Agile nos últimos seis meses. Meu time tem 16 desenvolvedores. Nós usamos o método TDD (Test Driven Development) para o processo de desenvolvimento, integração contínua, interação semanal, assim como lançamentos freqüentes e rápidas reuniões diárias para atualizar a equipe sobre o que já foi feito, o que ainda tem pela frente e comunicar eventuais problemas.

IC - Como funciona o trabalho de vocês com o Agile?
Coombs - Fazemos reuniões semanais. Começamos a semana reservando uma hora para a retrospectiva. É uma reunião democrática, que termina com uma votação das ações que têm de ser postas em prática na próxima interação para ajudar a melhorar o desempenho da equipe. É bem diferente de sistemas tradicionais, onde gerentes de projetos geralmente falam durante a maior parte do tempo.

IC - Como terminam os projetos?
Coombs - No final da interação temos uma exposição do que foi feito. Essa é a oportunidade de os desenvolvedores apresentarem uma versão demo para a empresa. Se os gerentes seniores da área que irá usar o software estiverem satisfeitos com o que foi mostrado, a versão ganha vida.

Por Angélica Mari, da Info CORPORATE

Start-ups devem registrar o software no INPI, diz Cietec

Start-ups devem registrar o software no INPI, diz Cietec
Apesar de trabalhoso, o registro do código fonte de software e acordos de sigilo com os colaboradores podem garantir o futuro da sua empresa

Algumas fabricantes brasileiras de produtos naturais se viram num grande embate oito anos atrás. Quem quisesse produzir insumos derivados do Cupuaçu teria de pagar royalties à empresa japonesa Asahi Foods. Ela havia entrado com pedido de patente do nome no Japão e na Europa, mesmo o Cupuaçu sendo um fruto originário da floresta amazônica brasileira. Em 2004, após uma manifestação da Embrapa (Empresa Brasileira de Pesquisa Agropecuária), a Asahi Foods perdeu a patente e as fabricantes nacionais voltaram a utilizar o nome em seus produtos. Mas o que isso tem a ver com tecnologia?

Uma das preocupações de um empreendedor em início de carreira deve ser o cuidado com os direitos de propriedade de sua obra, principalmente quando se trata de um software. Para isso, as start-ups precisam recorrer ao Instituto Nacional da Propriedade Industrial (INPI) para pedir o registro de software. 

“O registro garante a propriedade sobre o código fonte do software. Os casos de uso indevido de um código são comuns com funcionários que são demitidos e vão para outras empresas”, afirma Franco Lazzuri, coordenador de software do Centro Incubador de Empresas Tecnológicas (Cietec). Além de incubar uma série de start-ups, o Cietec incentiva e presta consultoria a empresas que pretendam proteger as suas informações. 

O processo não é dos mais fáceis e pede paciência aos empresários. Porém, o registro é bem mais simples do que buscar o patenteamento, que pode demorar até cinco anos e precisa ser feito em diferentes países. Os responsáveis devem retirar envelopes no INPI e enviar as linhas do código junto a um cabeçalho para o órgão. O problema é que cada envelope recebe apenas seis folhas com o código, uma tarefa chata e custosa ao empresário. “Cada registro de software custa entre 900 e 1,1 mil reais em média”, diz Lazurri.


Além do registro, algumas boas práticas devem ser incluídas na cartilha do pequeno empreendedor. O coordenador do Cietec lembra que é importante fazer um acordo com os desenvolvedores e outros funcionários para que abdiquem do direito autoral do software. Vale também criar o famoso contrato de sigilo e exigir por contrato que, caso o funcionário deixe a empresa, ele fica impedido por dois anos de trabalhar numa concorrente.

Vale a pena investir
A Nexus Geoengenharia foi buscar consultoria para registro de software num curso promovido pelo Cietec em parceria com o Instituto de Pesquisas Tecnológicas (IPT). A empresa, que trabalha com programas para gestão de recursos hídricos, já investiu quase 10 mil reais para garantir a propriedade de seus programas. “Na primeira vez, contratamos uma empresa especializada em direitos de propriedade para registrar nossos produtos”, afirma José Pinheiro, sócio da Nexus Geoengenharia.

Segundo Pinheiro, as outras vezes foram feitas diretamente no INPI. A Nexus possui mais de 1 milhão de linhas de código e, apesar de bastante trabalhoso, o registro é necessário. “Se você não fizer isso, vai correr altos riscos no mercado. Pior, seu cliente pode acabar recebendo uma ação de perdas e danos por estar usando um software que é, supostamente, de outra desenvolvedora”, diz o empresário.

A Nexus também segue as boas práticas do Cietec em relação aos seus colaboradores. Quando um funcionário é contratado pela companhia, ele assina um termo de responsabilidade dizendo que não tem com ele nenhum código fonte de outra empresa.

Novo nicho
E tem gente até faturando com essa história de registros e patentes. E não é prestando consultoria para que a própria detentora da tecnologia faça o registro, mas oferecendo um serviço de proteção à propriedade.

A Americana RPX, por exemplo, tem o registro de diversas tecnologias de seus clientes. Grandes empresas pagam entre 35 mil dólares e 4,9 milhões de dólares para não terem problemas com processos envolvendo quebras de patente. Ela se apresenta como uma defensora contra empresas que registram os produtos apenas com o objetivo de processar suas verdadeiras criadoras. 

No final das contas, as grandes empresas acabam reavendo o direito de suas obras, mas gastam muito com isso. Tanto que tem companhias pagando 4,9 milhões para defendê-las previamente. 

Até agora, a empresa recém criada já fez a aquisição de 150 patentes americanas e colocou mais 60 registros de aplicações sobre avaliação. O investimento da RPX é calculado em torno de 40 milhões de dólares em áreas.

Nuvem amadurece só em 2015, diz Gartner

Empresa de pesquisa estima que nesse ano os serviços em nuvem terão fornecedores confiáveis e serão adotados em massa

SÃO PAULO – O Gartner Inc. divulgou hoje pesquisa em que estima para 2015 a maturidade dos serviços de computação em nuvem, ou plataformas de aplicações capacitadas para serviços (SEAPs).

O instituto de pesquisas prevê que isso acontecerá em três fases. Primeiro, o período 2007-2011, no qual os serviços pioneiros estão surgindo e o mercado começa a se desenvolver. Justamente por isso, os serviços são proprietários, o que amarra o cliente ao fornecedor.

Ou seja, a empresa contrata a SalesForce ou o Google Docs e praticamente seria obrigada a usar só os serviços desse fornecedor, sem integração a outros sistemas de mercado. Por isso, o Gartner colocou em seu relatório uma recomendação para usar os serviços em nuvem, nesta primeira fase, apenas em casos específicos. 

Nesse quadro, os fornecedores de serviços em nuvem vão focar em iniciativas que possam dar retorno entre 18 e 24 meses. O foco será em ferramentas orientadas ao desenvolvimento rápido de aplicações e em recursos que permitam a entrega facilitada dessas aplicações ao cliente.


Entre 2010 e 2013 acontecerá a segunda fase, de consolidação do mercado, pois o Gartner prevê que em 2012 haverá um grande número de fornecedores de serviços em nuvem. Os competidores mais fracos serão comprados enquanto se desenrola o processo de maturação da infraestrutura de computação em nuvem. No final dessa fase, os serviços SEAP de tecnologia abertos serão os preferidos pelas grandes empresas.

Na última fase, entre 2012 e 2015, a computação em nuvem adquirirá uma massa crítica de usuários que permitirá uma “commoditização” do mercado. Poucos e grandes fornecedores no modelo SEAP aberto ocuparão o topo da cadeia alimentar, pois os grandes clientes abandonarão os serviços proprietários. Os fornecedores de serviços SEAP desenvolverão APIs para que os usuários possam transitar suas informações entre as diferentes aplicações.