Tuesday, September 20, 2011
Instalando distribuição binária do MySQL no CentOS
Ola galera! Ultimamente venho estudando para tentar passar na primeira prova de certificação da Oracle MySQL DBA I e vou contar um coisa: é bem complicado, contudo é muito prazeroso. O primeiro caso se dá pelo fato de eu como desenvolvedor que sempre esteve sob plataforma Windows (desculpe, não tenho orgulho disso) quando cheguei em um nível onde o Linux é fundamental tive algumas dificuldades.
Neste novo ambiente tive que instalar e configurar o MySQL (MySQL Community Server 5.5.16) no Linux (CentOS Linux release 6.0 Final) e para isso precisei entender melhor como essa plataforma, comandos e recursos funcionam uma vez que diferem bastante do Windows. Enfim, vamos ao que interessa, fazer o nosso servidor rodar.
Escolha da distribuição e instalação do MySQL
Assim como consta no manual podemos fazer a instalação de várias formas, optei por utilizar a distribuição binária Linux - Generic 2.6 (x86, 64-bit), Compressed TAR Archive disponivel no próprio site da MySQL (link direto para essa distribuição aqui). Bem, uma vez feita o download temos que antes de mais nada criar um usuário e grupo para trabalhar com o servidor MySQL. Logue no seu Linux como root e rode os comandos abaixo. Eles criam um grupo para o MySQL e adicionam um usuário que vai servir apenas para fins administrativos sem direitos de login.
shell> groupadd mysql
shell> useradd -r -g mysql mysql
Alteramos nosso diretório para o local onde instalaremos nosso server. Suponho neste ponto que você também tenha feito o download aqui, então vamos extrair a distribuição e alterar o nome da pasta atual "full-path-to-mysql-VERSION-OS" para algo mais simbolico como "mysql".
shell> cd /usr/local
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
shell> ln -s mysql-5.1.59-linux-i686-glibc23 mysql
Vamos agora acessar o novo diretorio criado e dar para ele as permissões do grupo mysql que criamos anteriormente.
shell> cd mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
Feito isso, a instalação pode ser executada. Abaixo o comando faz a criação das pastas iniciais da sua base de dados MySQL. Eles serão criados em /var/lib/mysql, recomendo que você crie esse diretorio antes e dê também as mesmas permissões como feito no passo anterior.
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data
Os próximos comandos são opcionais, mas recomendo que sejam executados também. Neles criamos um my.cnf no diretório etc, atribuimos um usuário para o servidor mysqld_safe e criamos uma copia do mysql.server na pasta de inicialização do Linux. Observer neste ultimo passo que também mudamos o nome do arquivo ao fazer a copia de mysql.server para mysql. Assim o servidor será carregado automaticamente quando o linux iniciado.
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> bin/mysqld_safe --user=mysql &
shell> cp support-files/mysql.server /etc/init.d/mysql
Configuração e teste do servidor
Uma vez instalado o seu servidor temos que agora alterar alguns parametros no nosso arquivo my.cnf para que o servidor rode corretamente. A propósito essa foi uma pequena dor de cabeça pra mim ao instalar pela primeira vez deste modo já que na documentação oficial o passo a passo solicita você testar antes de checar essas informações. Enfim, abaixo segue aproximadamente como seu my.cnf deve ficar para o servidor rodar, eu usei o vi do Linux para edita-lo.
[mysqld]
datadir=/var/lib/mysql/
socket=/tmp/mysql.sock
port=3306
user=mysql
[mysql.server]
basedir=/usr/local/mysql
Desta forma seu servidor está pronto para rodar. Basta executar o comando abaixo e você receberá a mensagem de sucesso.
shell>> /etc/init.d/mysql start
Starting MySQL.. SUCCESS!
Agora vamos finalmente configurar uma variável de ambiente com o caminho da pasta bin adicionando um PATH no sistema. Crie um arquivo chamado mysql.sh como mostrado abaixo e adicione dentro dele o caminho PATH=${PATH}:/usr/local/mysql/bin (necessário reiniciar para essa alteração funcionar). Feito isso, basta apenas rodar o mysql client no seu shell e pode comecar a trabalhar em sua nova base de dados.
shell>> touch /etc/profile.d/mysql.sh
shell>> mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.59 MySQL Community Server (GPL)
mysql>
Bem, basicamente isso galera. Lembrando ainda que temos que implementar ainda a seguranca do nosso banco de dados que você encontra referências em inglês aqui. Espero em breve estar escrevendo sobre isso também visto que é mais um conhecimento também requerido na certificação ORACLE SCMDBA. Obrigado à todos e qualquer dúvida deixe um comentário.
Referências:
Wednesday, September 14, 2011
Bancos Relacionais: 13 regras de Ted Codd
Olá galera, hoje vamos falar sobre uma importante figura na história dos banco de dados relacionais, Ted Codd. Ele realizou avanços na área que norteiam até hoje a estrutura desse modelo. Enjoy!
Os bancos de dados relacionais foram idealizados por Edgar Frank "Ted" Codd, um cientista de computação britânico que, enquanto trabalhava para a IBM, inventou o modelo relacional para a gestão de banco de dados, a base teórica para bancos de dados relacionais.
Ele fez outras contribuições valiosas para a ciência da computação, mas o modelo relacional, uma teoria muito influente sobre gestão de dados gerais, continua sendo seu feito mais citado. Em 1970 ele apareceu com 13 leis (numeradas de 0 a 12) que descreveriam o que é um banco de dados relacional e o que é um Sistema Gerenciador de Banco de Dados Relacionais faz e, várias leis de normalização que descrevem as propriedades de dados relacionais. Apenas os dados que haviam sido normalizados poderiam ser considerados relacionais.
- Regra Fundamental: Um SGBD relacional deve gerenciar seus dados usando apenas suas capacidades relacionais.
- Regra da informação: Toda informação deve ser representada de uma única forma, como dados em uma tabela.
- Regra da garantia de acesso: Todo dado (valor atômico) pode ser acessado logicamente (e unicamente) usando o nome da tabela, o valor da chave primária da linha e o nome da coluna.
- Tratamento sistemático de valores nulos: Os valores nulos (diferente do zero, da string vazia, da string de caracteres em brancos e outros valores não nulos) existem para representar dados não existentes de forma sistemática e independente do tipo de dado.
- Catálogo dinâmico on-line baseado no modelo relacional: A descrição do banco de dados é representada no nível lógico como dados comuns (isso é, em tabelas), permitindo que usuários autorizados apliquem as mesmas formas de manipular dados aplicados aos dados comuns ao consultá-los.
- Regra da sub-linguagem compreensiva: Um sistema relacional pode suportar várias linguagens e formas de uso, porém deve possuir ao menos uma linguagem com sintaxe bem definida e expressa por cadeia de caracteres e com habilidade de apoiar a definição de dados, a definição de visões, a manipulação de dados, as restrições de integridade, a autorização e a fronteira de transações.
- Regra da atualização de visões: Toda visão que for teoricamente atualizável será também atualizável pelo sistema.
- Inserção, atualização e eliminação de alto nível: A capacidade de manipular a relação base ou relações derivadas como um operador único não se aplica apenas a recuperação de dados, mas também a inserção, alteração e eliminação de dados.
- Independência dos dados físicos: Programas de aplicação ou atividades de terminal permanecem logicamente inalteradas quaisquer que sejam as modificações na representação de armazenagem ou métodos de acesso internos.
- Independência lógica de dados: Programas de aplicação ou atividades de terminal permanecem logicamente inalteradas quaisquer que sejam as mudanças de informação que permitam teoricamente a não alteração das tabelas base.
- Independência de integridade: As relações de integridade específicas de um banco de dados relacional devem ser definidas em uma sub-linguagem de dados e armazenadas no catálogo (e não em programas).
- Independência de distribuição: A linguagem de manipulação de dados deve possibilitar que as aplicações permaneçam inalteradas estejam os dados centralizados ou distribuídos fisicamente.
- Regra da Não-subversão: Se o sistema relacional possui uma linguagem de baixo nível (um registro por vez), não deve ser possível subverter ou ignorar as regras de integridade e restrições definidas no alto nível (muitos registros por vez).
Friday, August 19, 2011
MySQL 5.5 - Razões para Escolher MySQL: Performance e Escalabilidade
Em nosso mundo online, competição esta sempre a um click (ou toque na tela) de distância, e respostas rápidas para requisições e atividades de clientes são portanto cruciais. O banco de dados de uma aplicação web precisa oferecer performance extrema para operações de leituras (query simples ou complexa) e escrita.
Outro fator de performance é que este mesmo tipo de performance extrema deve exibir problemas de sobrecarga de dados (ex.: milhares de conexões simutâneas) ou volumes de dados (GB para TB).
Aplicações web precisam estar preparadas para rápidas mudanças em uma crescente quantidade de clientes, sem experimentar nenhuma interrupção nos seus serviços ao cliente.
Uma marca do MySQL é sua excepcional performance e escalabilidade, o qual faz tantas empresas na web utilizarem esta ferramenta. O MySQL utiliza de vários mecanismos para entregar uma boa performance em seu uso, tais quais:
InnoDB como novo Storage Engine padrão no MySQL 5.5
InnoDB é o mais largamente usado storage engine na Web/Web 2.0, eCommerce, mídias em geral e aplicações de entretenimento construídas com MySQL, e por boas razões; InnoDB fornece alta eficiência ACID com seus controles transacionais e sua arquitetura única que garante uma excelente performance e escalabilidade. Mais, InnoDB é estruturalmente desenhado para manipular aplicações transacionais que requerem recuperação em suas paradas, integridade referencial, e altos leveis de concorrência entre usuários.
Uma das mais notáveis melhorias no MySQL 5.5 é que o InnoDB é agora o storage engine padrão para novas tabelas criadas, permitindo usuários desenvolver aplicações transacionais sem necessidade de alterar as configurações do serviço. Para MySQL 5.5 InnoDb foi reestruturado de forma que ele foi otimizado para tirar o máximo de vantagens das capacidades de processadores, hardwares e do sistema operacional.
Em testes usando o MySQL 5.5 release candidate comparado com o MySQL 5.1, resultados demonstraram claramente as melhorias em performance obtidas:
- No Windows: até 1500% de ganhos em performance para operações de Leitura/Escrita e 500% em apenas Leitura.
- No Linux: até 360% de ganhos em performance em Leitura/Escrita e outros 200% em apenas Leitura.
http://www.mysql.com/why-mysql/white-papers/mysql-wp-whatsnew-mysql-55.php
Replicação MySQL
MySQL tem sido amplamente posicionado por alguns dos principais websites para alcançar níveis extremos de escalabilidade. DBAs podem simples e rapidamente criar várias réplicas de seus bancos de dados em alta escala bem além das limitações de capacidade de uma instância simples, habilitando eles manipularem uma crescente carga no banco de dados.
Rápida manipulação de Conexões
MySQL oferece uma excelente manipulação de thread/connection cache onde rapidamente estabelece solicitações de novas conexões e finaliza outras já existentes. O pool de conexões do MySQL sempre tem novos threads prontos para servir requisições de seus clientes fazendo com que não haja criação de novas conexões do zero. Isso significa que conectando e desconectando de uma base MySQL não prejudica sua performance.
Utilizando o poder da memória
MySQL explora os avanços na abundância de memória dos servidores atuais para garantir a máxima performance. Além de utilizar padrões da industria em dados e indíces para manter a referencia da informação na memória para rápido acesso, ele também possui caracteristicas próprias tais como:
Primeiramente, tabelas em memória para respostas extremamente rápidas. O MySQL Cluster fornece ainda a opção de uso de tabelas em memórias como parte do schema do banco de dados. Essas mesmas tabelas mantém sua alta performance mesmo que o discos se encontrem na situação "warm".
Adicionalmente, MySQL fornece um query cache que é especialmente desenhado para aplicações web modernas onde a repetição de das mesmas querys é elevada. O MySQL não armazena somente a query enviada pela aplicação mas também o result set da mesma. Notamos que isso é completamente diferente da situação de reconstrução de um result set a partir da memória - neste caso este result set não é recalculado. Esta forma de cache se mostra extremamente útil para aplicações web onde há necessidade de prover a mesma e a mesma informação novamente.
Outras propriedades relacionadas com a performance MySQL
MySQL contém várias outras configurações de performance que ajudam aplicações web a garantir suas necessidades de demanda atual. Por exemplo, a partição de dados esta disponível para aplicações que necessitam horizontalmente separar seus dados em uma tabela e índices associados. O MySQL optimazer é inteligente o suficiente para escanear apenas as partições necessárias para satisfazer a query do usuário final, no qual vai reduzir drasticamente o tempo de resposta do banco. Completo suporte a range, hash, list e composite/sub partitioning está disponível entre várias colunas, assim como tipos de dados texto e númericos.
Finalmente, MySQL contém todas as funções e utilitários para ajudar profissionais Web a desenhar suas aplicações fornecendo altos indices de performance. Inúmeros tipos de índices (clustered, full-text, hash, spatial, b-tree), ilimitado row-level locking coupled com MVCC (no qual resulta em um pequeno lock da tabela, caso haja) e muito mais fazem do MySQL uma excelente opção para esses esperados bancos de dados de alta performance.
Bem, por hoje é isso, em breve estarei postando mais novidades sobre esse excelente SGDB. Abraços e bom MySQL Timing!
Thursday, June 30, 2011
O que é um Banco de dados em Cluster?
Thursday, February 3, 2011
Ambiente LAMP no Ubuntu para Iniciantes
Como dito no artigo anterior vou agora mostrar os comandos para configurar seu ambiente LAMP no Ubuntu. LAMP significa para o Linux, Apache, MySQL, PHP. O guia destina-se a ajudar aqueles que têm muito pouca experiência do uso do Linux.
Instalar o Apache
Para começar, vamos instalar o Apache.
1. Abra o Terminal (Aplicações Acessórios>> Terminal).
2. Copiar / Colar pressione a seguinte linha de código no terminal e digite:
sudo apt-get install apache2
3. O terminal vai pedir que você que você é a senha, digite-o e pressione enter.
Teste Apache
Para se certificar que tudo instalado corretamente, vamos agora testar o Apache para garantir que ele está funcionando corretamente.
1. Abra qualquer navegador e digite o seguinte endereço na web:
http://localhost/
Você deverá ver uma pasta chamada apache2-default /. Abra-a e você verá uma mensagem dizendo "It works!", funciona!
Instalar o PHP
Nesta parte vamos instalar o PHP 5.
Passo 1. Novamente abra o Terminal (Aplicações> Acessórios> Terminal).
Etapa 2. Copiar / Colar a seguinte linha no terminal e pressione enter:
sudo apt-get install php5 libapache2-mod-php5
Etapa 3. Para que o PHP para funcionar e ser compatível com Apache devemos reiniciá-lo. Digite o seguinte código no terminal para fazer isso:
sudo / etc/init.d/apache2 restart
Teste de PHP
Para garantir que não haja problemas com o PHP, vamos fazer um teste rápido.
Passo 1. Na cópia do terminal / cole a seguinte linha:
sudo gedit / var / testphp.php / www
Isto irá abrir um arquivo chamado phptest.php.
Etapa 2. Copiar / colar essa linha no arquivo phptest:
Etapa 3. Salve e feche o arquivo.
Etapa 4. Agora abra seu navegador e digite o seguinte endereço web:
http://localhost/testphp.php
A página deverá ficar assim:
Página de teste PHP
Você tem agora instalado Apache e PHP!
Instale o MySQL
Para terminar este guia até vamos instalar o MySQL. (Nota - Fora de Apache e PHP, MySQL é o mais difícil de configurar, vou dar alguns grandes recursos para qualquer pessoa a ter problemas no final deste guia..)
Passo 1. Mais uma vez abrir o Terminal surpreendente e, em seguida, copiar / colar essa linha:
sudo apt-get install mysql-server
Passo 2 (opcional). Para que outros computadores em sua rede para exibir o servidor que você criou, primeiro você deve editar o "Endereço de ligação". Comece abrindo o terminal para editar o arquivo my.cnf.
sudo gedit / etc / mysql / my.cnf
Altere a linha
bind-address = 127.0.0.1
E mudar o 127.0.0.1 para o seu endereço IP.
Etapa 3. Isto é onde as coisas podem começar a ficar complicado. Comece digitando o seguinte no terminal:
mysql-u root
Na sequência desta copiar / colar essa linha:
'localhost','root' mysql> SET PASSWORD FOR @ = PASSWORD ('yourpassword');
(Não esqueça de mudar yourpassword para uma senha de sua escolha.)
sudo gedit / etc/php5/apache2/php.ini
Agora vamos ter que descomentar a seguinte linha, retirando o ponto e vírgula (;).
Altere esta linha, ou caso ela não exista crie ela:
extension = mysql.so
Para ficar assim:
extension = mysql.so
Agora, basta reiniciar o Apache e está tudo pronto!
sudo / etc/init.d/apache2 restart
Espero que essas dicas tenham sido úteis. Abraços para todos e até a próxima.
Iniciando no Ubuntu

Bom dia Galera,
Hoje começo minha jornada no Ubuntu 10.10 e parece que vai ser bem interessante. Tenho um HP e como ele esquenta muito se rodar o Linux diretamente optei por criar uma virtual machine utilizando o VMware sobre o Windows Vista Home Edition. Bem, no final gostei da solução: Windows para entretenimento e Linux como estação de trabalho.
Bem, não vou falar da instalação do VMware mesmo porque é muito simples, basta fazer o download do programa no site deles e seguir os passos.
Logo após baixar a última versão do Ubuntu gravá-lo em um cd ou usar o daemon tools como fiz e instalar em sua nova máquina virtual.
Bem, uma vez instalado o Ubuntu você estará com o ambiente pronto para configurar seu ambiente de trabalho.
Como fazer o ambiente LAMP falarei no próximo artigo.
Abraços à todos e até a próxima.
Friday, November 28, 2008
A grande roda da tecnologia da informação

'É, as coisas não são mais como antes.", diria qualquer empresário qüinquagenário. E de fato ele tem razão. As mudanças que tanto ele, quanto todos nós acompanhamos nesses últimos anos alteraram drasticamente todas as formas de interação entre as pessoas. Sejam elas no dia a dia, nas relações sociais, no mercado de trabalho ou nos negócios. Hoje em dia já temos uma visão clara do que já está estabelecido e do que está por vir quando falamos de tecnologia.
A matéria-prima, os fornecedores, os equipamentos ou qualquer coisa que seja necessário para uma empresa produzir esta ao alcance de todos, e ter uma fonte "ultra secreta" de qualquer material ou serviço já não proporciona grandes vantagens competitivas. Afinal, os preços, produtos, embalagens e qualidade são muito semelhantes, e apesar variar entre uma empresa e outra ainda assim se mantem em um alto padrão. Então o que faz o cliente optar por uma empresa ou outra? Uma empresa conseguir cumprir prazos e metas e outra não?
Para conquistar clientes, melhorar processos e obter um ganho maior em uma margem de lucros tão apertada a empresa tem que recorrer a softwares para promover melhorias em sua organização e modelo de trabalho. Neste projeto analisamos como uma empresa utilizou da tecnologia, leia-se software, para melhorar desde o seu almoxarifado, passando pelo controle da produção dos seus funcionários e otimizando sua contabilidade e folha de pagamento. Obtendo com tudo isso justamente uma margem de lucros maior, e um controle maior sobre seus processos e prazos.
Diante dos avanços tecnológicos, os empreendedores aliaram-se à informática para suprir suas necessidades e expandirem seus negócios, customizando tarefas e acelerando processos. Ao longo do tempo, com os softwares cada vez mais integrados às empresas, facilitar o acesso às informações relevantes é uma necessidade fundamental.
Há mais de 50 anos foi dado o primeiro passo, e é impossível parar de girar essa grande roda tecnológica. Estejam todos à postos para correr, porque não tem hora nem local para parar.
Boa sorte a todos.
Tuesday, April 15, 2008
Internet: Novo Ambiente, Novas Fraudes.
O que é uma FRALDE?
Segundo o Aurélio, dicionário da língua portuguesa:
Fraude. (Do lat. fraude) S. f. 1. V. logro (2). 2. Abuso de confiança; ação praticada de má-fé. 3. Contrabando, clandestinidade. 4. Falsificação, adulteração. Golpe. ... 10. Manobra desonesta, com o fim de enganar, prejudicar, roubar outrem.
Como se dá a fraude na Web?
Correio eletrônico;
Links em sites de conteúdo duvidoso;
Programas maliciosos instalados na máquina do usuário.
Tipos de Fraudes
Boatos (hoaxes)
Correntes (chain letters)
Propagandas
Golpes (scam)
Estelionato (phishing)
Programas maliciosos
Vírus
Worms
Cavalos de Tróia
Ofensivos
Boatos (hoaxes)
Histórias falsas, escritas com o intuito de alarmar ou iludir.
Instigar sua divulgação o mais rapidamente e para o maior número de pessoas possível.
Um exemplo é as escolas americanas ensinando que a Amazônia é território internacional em seus livros de geografia.
Correntes (chain letters)
Prometem sorte, riqueza ou algum outro tipo de benefício a quem repassar a um número mínimo de pessoas em um tempo pré-determinado;
Aqueles que interromperem a corrente sofrerão muitos infortúnios. Com esse mecanismo, atingem um número exponencial de pessoas em curtos períodos de tempo.
Propagandas
Divulgam desde produtos e serviços até propaganda política. É um dos mais comuns e antigos já registrados.
Mensagens comerciais legítimas, enviadas por empresas licenciadas e conhecidas, mas também por spammer com alguma característica ilegal.
Exemplo mais conhecido do público é o spam que oferece Viagra a baixo custo.
Golpes (scam)
Tratam de oportunidades enganosas e ofertas de produtos que prometem falsos resultados.
Entre as ofertas mais comuns estão as oportunidades miraculosas de negócios ou emprego, propostas para trabalhar em casa, empréstimos facilitados ou 'pirâmides' para multiplicar lucros.
Estelionato (phishing)
Mensagens que assumem o disfarce de spam comercial ou títulos simulam mensagens comuns, como comunicados transmitidos dentro de uma organização ou mensagens pessoais oriundas de pessoas/empresas conhecidas.
Essas armadilhas obtem dados pessoais e senhas para ser usadas em fraudes ou transferências bancárias e compras pela Internet.
Programas maliciosos
Semelhante ao spam de estelionato, este tipo apresenta-se sob disfarce e induz o destinatário a executar um programa de computador malicioso.
Dentre os programas usualmente enviados desta forma estão principalmente os vírus, os worms e os trojans.
Vírus
Capazes de atingir arquivos e programas de um computador que tenha sido "infectado" através de sua execução.
Após infectado, esses arquivos ou programas passam a transmitir o vírus também.
Agem pertubando, corrompendo ou apagando arquivos e desconfigurando o sistema.
Worms
Worms também são programas que se replicam e tentam atingir outros computadores, mas diferentemente dos vírus, não precisam de um arquivo para transportá-los.
Um dos mais conhecidos foi o Sasser, cujo alvo eram computadores rodando os sistemas Windows XP e Windows 2000.
Cavalos de Tróia
Trojans desativam as medidas de segurança comuns de um computador em rede;
Permitem que um programa sendo executado em outro computador adquira controle sobre a máquina hospedeira.
Exemplos: copiar, alterar e remover os arquivos e registros do computador em que o trojan está instalado.
Ofensivos
Divulgam conteúdo agressivo e violento, como por exemplo acusações infundadas contra indivíduos específicos, defesa de ideologias extremistas, apologia à violência contra minorias, racismo, xenofobia e pedofilia.
Motivação dos Golpistas
Dinheiro Fácil;
Baixo custo associado ao envio de mensagens eletrônicas;
0,005% dos destinatários respondem da maneira que o spammer deseja;
Anonimato garantido.
Como se Proteger?
- Sabendo como os golpistas agem e ficando atento a todo tipo de mensagem recebida;
- Duvidar de qualquer benefício, vantagem ou premiação. Quanto mais fácil, maiores as chances de golpe;
- Não clicar diretamente em links de e-mails, sempre copiar o endereço e colar diretamente na url.
- Não aceitar arquivos de pessoas desconhecidas ou executá-los sem ter a certeza que se trata de um arquivo seguro;
- Não fornecer qualquer tipo de informação pessoal ou dados bancários para pessoas/páginas que lhe solicitarem de forma duvidosa.
Como denunciar spam e fraudes no Brasil
Informações no site http://antispam.br;
Resumidamente, faz-se o seguinte:
Responder o email de spam, incluindo o conteúdo original e o cabeçalho de e-mail na mensagem;
No campo 'Para:' digitar o endereço mail-abuse@cert.br;
Enviar o email.
Baixe essa matéria em PDF clicando aqui.
Saturday, April 12, 2008
[Off-Topic] Mercado de Trabalho na Informática
Abaixo segue o conteúdo. Estou disponibilizando os links para download do conteúdo em PDF. Espero que gostem.
Dúvidas e (in)certezas sobre o mercado de trabalho
Junto com a informática e o desenvolvimento de novas tecnologias surgiu uma gama de áreas para se trabalhar. A quantidade de profissões é enorme, assim como a quantidade de programas e equipamentos existentes no mercado, isto é, as possibilidades ligadas à areá de informática hoje em dia são inúmeras e estão aumentando cada vez mais. No início da era da computação as profissões eram basicamente 4: analista, programador, operador e digitador. Hoje em dia para cada software há uma especialização, um certificado. Esse mar de oportunidades gera uma certa ansiedade no profissional da área, que acaba confuso se deve se especializar, em que se aprofundar, ou mesmo qual área ele realmente quer atuar.
Após formado, o profissional tem uma extensa lista de possibilidades e pode ter dificuldades em decidir com o que quer de fato lidar. Levar em consideração o próprio perfil pode auxiliar muito na escolha, assim como o que lhe é mais fácil de lidar e a aprender. Mas seria muito simplório levar em consideração apenas esses fatores. É inegável que observar as atuais e futuras necessidades do mercado de trabalho são essenciais para não ficar “na mão” de uma hora para a outra. A tecnologia avança em passos largos e o que hoje é atrativo, interessante ou promissor, pode ser rapidamente substituído por algo que faça mais rápido, fácil e melhor.
O segmento de serviços na área de informática
Ao contrário do que pode parecer, não é fácil definir uma área que se deseja trabalhar, além de conhecimento, um perfil específico é fundamental. Temos as seguintes atividades compondo o segmento de Serviços em Informática atualmente:
Consultoria em Sistemas de Informática – reúne atividades de assessoria ou consultoria em sistemas e programas de informática, help desk, serviços de apoio na configuração de equipamentos (hadwares), de aplicativos e instalações de sistemas de informática (softwares).
Desenvolvimento de Programas de Informática – refere-se ao desenvolvimento, produção, fornecimento de documentação e edição de programas de informática, softwares e serviços de desenho de páginas para Internet (web design).
Processamento de Dados – comporta os serviços de entrada e processamento de dados, CPD; digitação; gestão e operação de equipamentos de processamento de dados pertencentes a terceiros; aluguel de hora em computador, serviços de escaneamento de documentos; serviços de hospedagem de páginas (web hosting).
Atividades de Banco de Dados – reúne serviços de editoração eletrônica para produtos on line e serviços de portal de busca da web.
Manutenção e reparação de máquinas de escritório e de informática – refere-se a manutenção e reparação de computadores de pequeno porte e outros equipamentos de informática, tais como impressoras e periféricos.
Outras atividades de informática, não especificadas anteriormente – referem-se às atividades de recuperação de panes informáticas e serviços de instalação de programas de informática.
No caso das atividades de Serviços em Informática, as microempresas empregaram 27,5% de trabalhadores formalmente registrados, enquanto as grandes empresas (com mais de 500 trabalhadores), significaram 32,4%. Esses dados demonstram, portanto, um equilíbrio da capacidade de geração de empregos formais entre as grandes e as microempresas nas atividades de Serviços em Informática, consideradas características da “Nova Economia” a partir do crescimento do setor de Serviços e da penetração das tecnologias da informação.
Em outros casos o profissional da área pode ter interesse em se tornar um profissional liberal e controlar seus serviços e clientes. Nada se compara ao setor de informática quando a questão é a prestação de serviços. Onde houver um computador certamente haverá várias necessidades, sejam em manutenção, seja redes, softwares de automação comercial ou uma simples conexão com internet. E novamente nos deparamos com o dilema: Que tipo de serviço prestar para os clientes da minha região? Me especializar ou atender todos os tipos de solicitações?
Em que profissão eu vou?
Nada melhor do que conhecer as diversas áreas disponíveis e o que exatamente executam para definir o que melhor se encaixa aos interesses pessoais. Claro que nada substitui a experimentação, mas já é de grande avalia saber com o que se manipulará. Abaixo segue uma lista de serviços que podem ser prestados por um profissional da área, ressaltando-se é claro que as possibilidades não se esgotam por aqui.
Digitador: pessoa treinada em digitação de dados, num determinado sistema, com rapidez em datilografia.
Operador de Microcomputador, de Computador ou de Terminal: pessoa treinada para operar determinado equipamento de processamento de dados. Formação: 1º Grau.
Programador: pessoa habilitada em programação com uma ou mais linguagens de programação. Formação: Superior ou Técnico.
Analista de Sistemas: pessoa com habilitação em Análise e Programação de Computadores. Dever ter formação superior ou ser especialista em uma determinada atividade da empresa.
Gerente de CPD: pessoa escolhida pela diretoria da Empresa, com longa experiência em Análise de Sistemas e conhecedor das atividades principais da empresa. Deve ter aptidão para a liderança e ser profundo conhecedor dos equipamentos e das atividades do CPD - Centro de Processamento de Dados (hoje em dia poucas empresas possuem um CPD).
Técnico: pessoa capacitada em eletrônica que monta e conserta computadores (mexe somente com a parte de hardware).
Consultor: presta assessoria na área de informática.
Engenheiro de Software: conhece amplamente as linguagens de programação de baixo nível (código de máquina) e cria softwares aplicativos de controle e genéricos.
Especialista em Sistema de Informação: pessoa capaz de adquirir, organizar, desenvolver e gerenciar serviços, sistemas e recursos da tecnologia de informação para uso em processos organizacionais.
Web Designer: desenvolve homepages para a internet.
Web Master: cuida da manutenção de sites na internet (trabalha no provedor de acesso à internet).
Desenvolvedor de Sites: cabe-lhe desenvolver e tornar um site competitivo no mercado. Precisa ter conhecimento técnico afiado, criatividade e conhecimento profundo do negócio da empresa, deve também saber mudar de acordo com a vontade do cliente.
Programador de Internet: cria programas para uso na internet, mas deve ter um conhecimento a fundo das linguagens de programação para a web e também a utilização de objetos distribuídos, para compor uma tecnologia que suporte o crescente aumento de usuários da web.
Produtor Executivo para a Web: é também conhecido como arquiteto de soluções, projeta sites, alinha os custos e apresenta soluções para construir sistemas para a internet, além de cuidar também do back office.
CIO - Chief Internet Officer: nada mais é do que diretor da Web, ou executivo de e-business. Necessita entender como funciona cada tecnologia do mundo cibernético e como transformá-la em diferencial estratégico de negócios. Não precisa ser especialista em nada, mas tem que entender de marketing e planejamento estratégico.
Executivo de Comércio Eletrônico: pessoa com tino comercial, conhecimento de tecnologias de internet e de sistemas de ERP, supply chain, CRM, logística e métodos de relacionamento com clientes.
Expert em Segurança de Sites: também conhecido como Web Security (são hacker do bem), deve planejar e implantar a política de segurança que será adotada pela empresa para manter seu site longe de hackers e crackers. Precisa entender de várias tecnologias, como os programas de firewall e de criptografia, protocolos de rede, roteadores, switches e programas usados para entrar à força nos sites.
DBA - Administrador de Banco de Dados para a Web: pessoa especializada em banco de dados voltados para a Web, seja para o e-commerce (comércio eletrônico), como para os portais e sites de busca. Precisa conhecer as linguagens tanto do lado do servidor, quanto do lado do cliente.
CKO - Chief Knowledge Officer: ou seja, Diretor de Conhecimento, pessoa que administra o capital intelectual da empresa. Precisa entender de tecnologia, de internet, intranet, banco de dados e linguagem SQL, deve também conhecer completamente o negócio e o mercado que a empresa atual.
Especialista em Conectividade: pessoa que presta serviços em redes corporativas. Deve verificar sistemas que possam ser programados para mudar de rota ao aparecer um defeito na rede.
Arquiteto de Interface para Internet Móvel: cria interfaces para web móvel, ou seja, internet para celulares e palms. Há a necessidade de conhecer a fundo o hardware (no caso, os palms e celulares) e as linguagens de programação para esse equipamento, além de estar sempre por dentro das novas tecnologias.
Especialista em Recuperação de Desastres: pessoa capaz de colocar tudo de volta no ar, o mais rápido possível, após um ataque de vírus ou de crackers a um site.
Caçador de Piratas e Fraudadores: normalmente um ex-cracker, pessoa capaz de encontrar fraudadores e sites piratas. Presta serviços pra empresas de segurança, bancos entre outros orgão em empresas que necessitam de segurança em seus projetos.
Programador de TV Interativa: pessoa especializada em integrar conteúdo de internet e comércio eletrônico com programas de TV que sejam divertidos e que prendam a atenção do telespectador.
Tudo em um
Sendo mais objetivo em relação ao profissional (de qualquer área), ele deve ser especialista em um assunto, para se tornar referência naquele assunto. Pode se entender de um bando de coisas, mas quando alguém fala o nome do "tal profissional" no mercado a primeira coisa que vem a cabeça é "Hardware", por exemplo, e não Redes ou Negócios na Internet. Dessa forma, é importante sim ser um especialista em um determinado assunto e focar sua fonte principal de renda e de divulgação nele. As demais áreas pode-se ir explorando com o tempo, ou o que me parece mais sensato: montar uma equipe onde haverá colegas realmente especialistas nos outros assuntos, com quem pode-se passar os clientes e ir acompanhando, até mesmo para aprender mais. Assim, em vez de se concentrar todo o trabalho em uma única pessoa, será distribuído tarefas, permitindo até mesmo conseguir mais clientes e atendê-los de forma mais adequada.
O que está faltando no mercado de trabalho não são técnicos, mas sim técnicos que atendam bem seus clientes, técnicos que estejam preocupados com qualidade e ética. Conseguindo criar essa cultura dentro do negócio e usar isso como diferencial junto aos clientes, rapidamente seus eles irão divulgar os serviços para novos potenciais clientes.
Tomando sempre o cuidado de não cair na armadilha de tentar fazer tudo ao mesmo tempo e não conseguir atender ninguém bem, ou mesmo nem conseguir executar os serviços dentro do prazo. Daí a sugestão de montar uma equipe com especialistas em cada área de atuação do negócio.
Finalmente, não idealize a profissão, procure conhecê-la
Quando era criança, Christian Carbone Matos gostava de construir castelos de areia e ficava encantado com prédios altos. Quando chegou o momento de se inscrever em um curso, a escolha foi óbvia: engenharia civil. Ele entrou na Poli (USP) aos 18 anos, mas, no começo do quarto ano de faculdade, desistiu. Prestou novamente vestibular e hoje, com 25, está no terceiro ano de psicologia.
Assim como aconteceu com ele, é comum que pessoas acreditem que já sabem o "querem ser quando crescer" se decepcionem com o que estão fazendo, ou podem não se adaptar bem a uma determinada da área.
O planejamento de carreira é algo dinâmico que pode ser revisado periodicamente, permitindo mudanças e reformulações. Uma área como a informática onde um tipo de serviço e outro estão tão próximos pode confundir e induz o profissional a fazer uma escolha que futuramente se arrependa, ou simplesmente considere que há outra de maior interesse.
Finalmente faça uma analogia com um vôo. O seu vôo deve ser do tamanho dos seus sonhos, dos seus conhecimentos e da sua determinação; mas sempre é bom ter em mãos um “plano de vôo”, porque é importante saber o destino desejado, as condições de tráfego aéreo e a quantidade de combustível disponível. E por último mas não menos importante, faça o que goste.
Texto em PDF, clique aqui para fazer o download.
Tuesday, May 8, 2007
[Off-Topic] As primeiras cabeçadas
Com uma boa lida em alguns tutoriais que encontrei na internet a respeito do JAVA (vá no google e digite JAVA), comecei a jornada. Bem, a primeira coisa que fiz foi baixar o servidor no endereço:
https://sdlc3e.sun.com/ECom/EComActionServlet;jsessionid=E52FEE790206073D6162A69ABB4BD25D
Logo depois que reiniciei a minha maquina (ele pode ou nao solicitar isso, mas mesmo que não o faça), cliquei em Start Default Server para iniciar o servidor, como na imagem abaixo:

Agora vá no icone Meu Computador > Propriedades na aba Avançado>Variáveis de Ambiente e procure pelo Path e no final dele adicione o caminho "

Crie uma pasta temporária dentro diretório da instalação JAVA (no meu caso htdocs) e depois abra o prompt e entre dentro dele execute os comandos. Como abaixo:

Bem, não vou entrar em detalhes, se vire e procure na internet. Mas ai já tem um bom caminho a se seguir. Como os tutoriais na internet são horríveis resolvi comprar o livro. Não ganho nada das americanas para divulgar, mas foi o lugar mais barato que encontrei pra comprar.
http://www.americanas.com.br/prod/252735/BookStore?i=1
Abração a todos.... e até a proxima.