terça-feira, 22 de novembro de 2011

Agendando o shutdown da máquina

Olá,

Dica rápida e muito legal, desta vez vou mostrar apenas como desligar ou reiniciar a máquina em um tempo programado, é muito útil para quem quer deixar um computador fazendo download e ir dormir (assim como eu hehe).

Obs.: Esta dica é apenas para Linux (no Windows execute no prompt "shutdown /?" para saber os parâmetros válidos)

No Linux:

Suponhamos que queira desligar sua máquina às 17:00hs da tarde, você deverá executar o seguinte comando:

$ shutdown -h 17:00

Para reiniciar às 17:00hs faça desta forma

$ shutdown -r 17:00

O intervalo de tempo(horários) vão de 00:00hs à 23:59hs!

Para cancelar este agendamento você deverá executar o comando:

$ shutdown -c

Um abraço!

quarta-feira, 9 de novembro de 2011

Excel: Botão direito parou de funcionar? Saiba como resolver!

Olá,

Problema: De uma hora para a outra o clique do botão direito do mouse no Microsoft Excel 2007 para de funcionar.

Motivo: Isto acontece por causa de algum valor irregular no registro do usuário, para resolver este problema é simples, basta seguir o procedimento abaixo:

Solução:

Entre no editor de registro: Iniciar -> Executar -> regedit e clique em OK

No editor de registro, procure pela chave abaixo:
HKEY_CURRENT_USER\Software\Microsoft\Office

Renomear a chave Office para Office.old e reinicie o computador, (muitas das vezes não é necessário reiniciar).

Obs.: Este procedimento irá zerar todas as configurações do Microsoft Office, inclusive configuração de E-mail (Microsoft Office Outlook).

Referencia:
Esta solução foi encontrada no fórum oficial da Microsoft.

Até mais!

quarta-feira, 5 de outubro de 2011

Reduzindo o tamanho de arquivos PDF

Olá,

Se você chegou até este post é porque esta desesperadamente tentando diminuir o tamanho do seu arquivo .pdf...assim como eu há um tempo atrás, infelizmente esta dica é apenas para usuários Linux, para fazer esta compactação siga os passos abaixo:

# apt-get install ghostscript zenity

O ghost script é necessário para a compressão de arquivos pdf e o zenity é o software que irá exibir as telas de diálogos do script.

Agora é necessário fazer o download do script principal que irá fazer a compressão do arquivo .pdf

$ wget http://launchpad.net/compress-pdf/1.x/1.4/+download/Compress-PDF-1.4.tar.gz

Após o download é necessário descompactar na pasta do nautilus-scripts, se você descompactar algo nesta pasta, o script será disponibilizado quando o arquivo for clicado com o botão direito do mouse.

$ tar zxvf Compress-PDF-1.4.tar.gz -C ~/.gnome2/nautilus-scripts/

Agora é só você clicar com o botão direito em cima do seu arquivo PDF e selecionar o "Compress PDF" e será exibido o nível de compressão desejado, feito isto o seu arquivo será compactado.

No meu caso, meu arquivo continha 9,16MB após a compactação, 4,25MB.

Fico por aqui, até mais!

Esta dica foi extraída do seguinte link: http://ubuntued.info/reduza-o-tamanho-dos-seus-pdfs

terça-feira, 4 de outubro de 2011

Criando um CD do Windows personalizado


Olá,

Para criar um cd do Windows personalizado é muito fácil com ajuda do software Nlite, com ele é possível personalizar várias versões do Windows, porém ainda não é compatível com o Windows 7.

Através do software Nlite você poderá incluir patchs de atualizações, adicionar drivers para serem instalados durante a instalação do Windows, você também pode definir um nome padrão para a máquina, poderá adiciona-lá em domínio, personalizar o desktop, otimizar os recursos, entre muitas outras coisas, tudo isto através do Nlite, muito bom não acha?

Ele me salvou esta semana, fui tentar instalar o Windows XP SP3 numa máquina Dell que tem um HD Sata moderno que o windows não dá suporte durante o boot, então era exibido a tela azul com uma mensagem mais ou menos assim: "Seu disco rígido foi desligado para evitar danos em seu computador, se esta é a primeira vez que você recebe esta mensagem, reinicie e tente novamente, ou chame o administrador do sistema"...

Para resolver este problema, precisei baixar o driver do HD Sata, e é claro, personalizar o Windows XP SP3 para adicionar este driver durante a instalação, e isto só foi possível através do Nlite, o software é auto explicativo, muito fácil de usar, você pode baixa-lo através do site que disponibilizo abaixo.

Site oficial: http://www.nliteos.com/download.html

Baixaki: http://www.baixaki.com.br/download/nlite.htm

Por hoje é só, até mais!

segunda-feira, 3 de outubro de 2011

Recuperando arquivo .pst do Outlook

Olá,

Uma dica interessante e as vezes salvadora da pátria, trata-se do utilitário scanpst.exe que vem junto ao Microsoft Office 2007, com ele é possível verificar possíveis erros no arquivos .pst do seu Outlook e muitas das vezes é possível recuperar um arquivo que o Outlook julgue como corrompido, porém este utilitário fica "escondido", para acessá-lo acesse o diretório abaixo:

C:\Arquivos de programas\Microsoft Office\Office12\scanpst.exe

Após executar, é necessário selecionar o arquivo .pst e clicar em verificar, após várias etapas de verificação, será necessário efetuar um backup do arquivo antes de qualquer correção.

Feito isto você já pode abrir o Microsoft Office Outlook.

Agora se você também esta com problemas no arquivo .ost (para usuário de servidores de e-mail Microsoft Exchange), você poderá usar o scanost.exe que também fica no mesmo diretório do scanpst.exe

Ambos tem as mesmas funções, este por sua vez é responsável por corrigir possíveis erros no arquivo .ost.

Caso nenhum dos utilitários funcione, você poderá tentar o ultimo recurso: inicializar o Outlook em modo de segurança, para isto execute o atalho do Outlook com /safe, por exemplo:

Acesse: Menu iniciar -> Executar e digite:

C:\Arquivos de programas\Microsoft Office\Office12\outlook.exe /safe

Se conseguir visualizar o seus e-mails isto é um bom sinal, agora crie um novo arquivo .PST e copie seus e-mails para ele, assim você não perderá nenhuma informação :)

Bom, tentei explicar da melhor forma possível, qualquer dúvida podem utilizar o campo de comentários.

Um abraço.

quinta-feira, 22 de setembro de 2011

E-mail com vírus recebido no e-mail

Recentemente usuários da empresa onde trabalho receberam e-mail com um link para baixar um vírus, abaixo disponibilizo o conteúdo do e-mail, exceto o link para o download do vírus é claro, retirei para não ter perigo de ninguém clicar.

Se você receber uma mensagem igual esta, ignore-a e a delete imediatamente.

Intimação nº 0149339.871/2011

De conforme com Artigos 39 Inciso V, 41 inciso I e 42 da Lei nº 14.223/06

FICA V. S.ª INTIMADO A Regularizar (Especificar a violação prevista nesta lei ou decreto regulamentador).

NO PRAZO DE 5(cinco) dias.

SOB PENA DE Reaplicação da Multa e remoção pela PMSP com cobrança dos custos.

Abra o anexo para visualização completa da Intimação, com os dados para contato.


Anexo: LINK_COM_VIRUS

Atenciosamente,

Rafael Aguiar Cerqueira
Oficial de Justiça



Abraço.

quinta-feira, 15 de setembro de 2011

Hoje não deu!

Olá,

E aí pessoal, como puderam ver, hoje, hoje não deu para postar nada no blog, ando muito ocupado e ultimamente a unica coisa que me falta é tempo e mais tempo, trabalhos da faculdade, desenvolvimento do projeto de TCC e outras coisas, além do meu trabalho.

Enfim, estes são os motivos por eu não ter postado hoje e talvez nem amanhã, mas em breve, estarei publicando um post sobre o comando "pr" o mesmo serve para paginar arquivos .txt e outros, é bem interessante, bom fico por aqui.

Um abraço.

quarta-feira, 14 de setembro de 2011

Download Windows 8

Como todos devem estar sabendo, ontem (13/09/2011) foi anunciada a nova versão do Windows, cujo nome ainda não confirmado "Windows 8" sucessor do sucesso do Windows 7.

A versão para desenvolvedores esta disponível para download, mas atenção, esta versão ainda é beta, ou seja, possui bugs, pode haver instabilidade e outros problemas, portanto, não instale o sistema em uma máquina que você irá usar no dia-a-dia, segundo Steven Sinofsky presidente responsável pela divisão Windows, este novo sistema operacional pode ser instalado em hardware modestos, ou seja, você não irá precisar comprar uma máquina nova para instalar o novo sistema operacional.

O mesmo foi projetado principalmente para dar suporte a telas touchscreen, um dos requisitos é que o monitor tenha uma resolução igual ou superior à 1024x768 para poder colocar as janelas de aplicações lado a lado.

Abaixo disponibilizo o link para o download, lembrando!!! Não instale o sistema em uma máquina de trabalho, você pode correr vários riscos: perder arquivos, tempo caçando solução para os problemas, incompatibilidade com outros aplicativos, e mais uma coisa, a Microsoft não vai dar suporte no sistema, pois ele é apenas um "Preview".

Link de download oficial Microsoft.
http://msdn.microsoft.com/en-us/windows/apps/br229516

Abraços.

terça-feira, 13 de setembro de 2011

Resolvendo o erro: Call to undefined function mysql_connect()

Olá,

Este erro ocorre quando você está tentando conectar/acessar um banco de dados MySQL através do PHP, o motivo deste erro é simples, seu php não está com suporte ao MySQL, para resolver é necessário instalar o plugin php5-mysql.

Para instalar no Debian execute:

# apt-get install php5-mysql

Para instalar no Red Hat/CentOS/Fedora execute:

# yum install php5-mysql

Feito isto, basta você reiniciar o serviço do apache através do comando:

Debian

# /etc/init.d/apache2 restart

Red Hat e derivados

# service httpd restart

Abraços.

segunda-feira, 12 de setembro de 2011

PHP+MySQL: Populando table com informações do banco de dados

Olá,

Nesta dica vou mostrar como montar uma tabela (table) através do PHP com as informações de um banco de dados MySQL.

Considerando que você já saiba codificação .html e entenda um pouco de programação em .php vamos começar!

Primeiro, vou explicar o ambiente.

Meu banco de dados possuem apenas dois campos: nome e cidade. E a partir deles eu vou gerar uma tabela com todos os nomes que já estão cadastrados.

Partindo deste principio, vou considerar que você já tenha sua conexão do PHP + MySQL pronta, caso não tenha, você pode ler este post: Conexão no mysql com php onde explico como efetuar uma conexão e inserir dados no MySQL através do PHP.

Ok, voltando ao post, meus dados já estão cadastrados na tabela o que me resta é apenas executar um select no php e salvar o resultado, pois bem, vamos lá.

Crie um arquivo tabela.php (ou outro nome) você que manda.

$ vi tabela.php

<?php
include("conexao.php");

$query = "select * from usuarios;";

$resultado = mysql_query($query,$conexao) or die(mysql_error());

if(mysql_num_rows($resultado)>0)
{
      print "<table border='1'>";
      print "<tr><td>Nome</td><td>Cidade</td></tr>";
          while ($info = mysql_fetch_array($resultado))
              {
print "<tr><td>$info[nome]</td> <td>$info[cidade]</td></tr>";
}
      print "</table>";
 }
?>

Feito isto, salve e feche o arquivo, vou tentar explicar o que acontece dentro deste código. Na primeira linha, estou incluindo o código de conexão, assim eu consigo chamar a conexão sem nenhum problema, a variável $query contém o comando que será executado no MySQL, ou seja, neste caso precisamos de informações que estão contidas no banco de dados, então é necessário executar o comando select.

Já a variável $resultado ela literalmente recebe o retorno do comando select feito no MySQL, o mysql_query() vai executar a sua query e retornar as informações dentro de um array, ou vetor, como você preferir, caso contrário ele irá mostrar uma mensagem de erro através do mysql_error().

Para saber se meu select obtive o retorno esperado utilizei o mysql_num_rows() se for maior que 0, significa que o select retornou algo, caso contrário pode ter acontecido algum erro ou algo do tipo.

Caso a minha condição (if) seja válida eu crio a tabela <table> e já faço o cabeçalho que eu quero que apareça, Nome e Cidade, agora vou imprimir o resultado em novas linhas e colunas através do while.

Através do comando mysql_fetch_array() eu vou ler o array completo, como você pode observar estou jogando os valores dentro da variável $info, é importante dizer que $info[nome] é o nome do meu campo do banco de dados ou seja [nome] é uma coluna que esta no meu banco de dados.

Após finalizar o while, fechamos a tabela e pronto, sua tabela estará pronta e com todos os dados que foram retornados na consulta do banco de dados.

É importante dizer, apesar que quem ler já vai saber, este arquivo deve estar dentro do seu diretório de publicação web seja no apache com suporte para php em Windows ou Linux.

Abaixo uma imagem de como ficou minha tabela com as informações do banco de dados.


Qualquer dúvida/sugestões/críticas podem utilizar o campo de comentários!

Um abraço!

Copiando arquivos entre duas máquinas Linux!

Olá,

Nesta dica irei demonstrar como copiar arquivos entre duas máquinas Linux, porém é necessário que as duas estejam conectadas em rede e o principal, o serviço de sshd (servidor ssh) deve estar sendo executado.

O processo é bem simples, no terminal vamos utilizar o comando scp

$ scp arquivo/pasta usuario@192.168.0.1:/diretório_destino

Obs.: para copiar pastas, é necessário adicionar o parâmetro "-r" após o "scp" para que ele copie a pasta e também os arquivos que estão dentro dela.

Um exemplo funcional para o meu caso, seria:

$ scp arquivo.txt cesar@192.168.0.1:/home/cesar


$ scp -r pasta cesar@192.168.0.1:/home/cesar

Após teclar enter, é só colocar a senha do usuário da máquina destino.

Note que na máquina destino estou usando o usuário "cesar" e copiando os arquivos para o /home do mesmo, este usuário deve existir para que o comando funcione.

Abraço!

sexta-feira, 9 de setembro de 2011

Linux: usando o comando "wc"

Olá,

Nesta dica irei demonstrar de maneira fácil e prática como se usar o comando "wc" e para que serve.

O comando "wc" no Linux é utilizado para contar, seja caracteres ou bytes em um arquivo.

Por exemplo:

Crie um arquivo qualquer e adicione qualquer conteúdo.

$ vi arquivo.txt

blá blá blá blá blá
blá blá blá blá blá
blá blá blá blá blá

Agora, salve e feche o arquivo, comando para salvar e sair ":wq"

Agora execute o comando abaixo para ver o resultado:


$ wc arquivo.txt

root@tecnopad:~# wc arquivo.txt
 3 15 75 arquivo.txt

Onde os números 3, 15 e 75 significam:

  • 03 - linhas
  • 15 - palavras
  • 75 - bytes

Para obter mais informações sobre o comando wc, você pode executar o comando wc --help

Um abraço.

Entenda com funciona o comando dpkg do Debain e derivados.

Olá,

Nesta simples dica, irei demonstrar como instalar e remover pacotes no Debian e derivados através do comando dpkg.

Para instalar algum pacote .deb

# dpkg -i pacote.deb

Para remover algum pacote .deb

# dpkg -r pacote.deb

Além disso, você também pode obter informações  de dependências do pacote através do comando:

# dpkg -S apt

Para saber os programas instalados, execute

# dpkg -l

Com isso, será mostrado todos os programas .deb instalados, você também filtrar a listagem se quiser, por exemplo: vou listar o pacote "xdm"

# dpkg -l xdm

Termino aqui a dica sobre o dpkg!

Referencias deste post!

Livro: Certificação Linux LP1 - 2º Edição - 2008
Autores: Steven Pritchard, Bruno Gomes Pessanha, Nicolai Langfeld, James Stanger, & Jeff Dean.

quinta-feira, 8 de setembro de 2011

Links simbólicos no Linux

Olá,

Nesta dica irei demonstrar como é feito o link simbólico e explicar a diferença entre os comandos: "ln" e o "ln -s"

Suponhamos que você precise de um link para um arquivo, como exemplo, vou utilizar o sources.list do apt-get que esta localizado em /etc/apt/sources.list

Supondo que você queira um link dele em seu desktop (Área de trabalho) vamos utilizar o comando abaixo:

$ ln /etc/apt/sources.list /home/usuario/desktop/sources

Feito, o link esta pronto! para ter realmente a certeza que o link foi feito com sucesso, você pode executar o comando " ls -l ".

A forma que deve utilizar o comando "ln" é a seguinte:

$ ln [arquivo/diretório origem] [nome arquivo simbólico]

O comando "ln" cria um novo arquivo, apontando para o mesmo espaço de memória que foi alocado para o arquivo original, já o "ln -s" cria um novo "atalho" em outro endereço de memória apontando para o arquivo original.

Quer tirar um "tira teima"? então vamos lá, vamos criar dois links usando o comando acima, com o parâmetro " -s " e um sem ele.

$ ln /etc/sources.list sources1
$ ln -s /etc/sources.list sources2


Agora você pode visualizar o endereço de memória de onde o arquivo esta através do comando "ls -l"

$ ls -l

total 4
-rw-r--r-- 2     root root 566 Set  2 07:54 sources1
lrwxrwxrwx 1 root root  21 Set  6 15:05 sources2 -> /etc/apt/sources.list

Notem, que o arquivo "sources1" foi criado com o comando "ln" apenas, e esta apontando para o espaço de memória "566". Agora vou executar o comando "ls -l" no diretório original /etc/apt/ e ver quando é o endereço de memória do arquivo original.

$ ls -l

total 40
drwxr-xr-x  4    root root 4096 Set  6 15:19 .
drwxr-xr-x  89  root root 4096 Set  6 15:04 ..
drwxr-xr-x  2    root root 4096 Set  1 16:21 apt.conf.d
-rw--------  1     root root       0 Set  1 15:22 secring.gpg
-rw-r--r---  2     root root   566 Set  6 15:19 sources.list
drwxr-xr-x  2    root root 4096 Abr 20  2009 sources.list.d
-rw--------  1     root root 1200 Set  1 15:22 trustdb.gpg
-rw--------  1     root root 5801 Set  1 15:22 trusted.gpg

Feito, agora você já sabe a diferença entre o comando "ln" e o comando "ln" com o parâmetro "-s".

Um abraço!

Entenda como funciona o comando "join" no Linux

Olá,

Nesta dica irei demonstrar de forma simplificada de como funciona o comando join no Linux, me refiro a Linux porque este comando é instalado por default em todas as distribuições.

Assim como em qualquer banco de dados, o comando join serve para unir informações, seja entre tabelas, ou como neste caso, arquivos! O requisito para funcionamento é praticamente igual, os dois arquivos devem ter índices iguais, abaixo irei demonstrar assim ficará mais fácil de ser compreendido.

Com usuário comum, não precisa ser necessariamente o usuário root, crie dois arquivos:

$ touch fruta.txt preco.txt

Em apenas um comando criei os dois arquivos, pois bem, agora com seu editor de textos, vamos adicionar o conteúdo no arquivo.

$ vi fruta.txt

1 Maça
2 Uva
3 Melancia
4 Mamão
5 Morango

Ok, agora salve e feche o arquivo e vamos abrir o outro arquivo chamado preco.txt

$ vi preco.txt

1 R$ 1,00 reais
2 R$ 2,00 reais
3 R$ 3,00 reais
4 R$ 4,00 reais
5 R$ 5,00 reais

Ok, agora salve e feche o arquivo.

Como perceberam, antes de citar a fruta e os preços, eu adicionei um índice, 1,2,3...! Isto é necessário para que o comando join possa unir o conteúdo dos dois arquivos, agora vamos ver saída do comando join usando estes dois arquivos.

$ join fruta.txt preco.txt

1 Maça R$ 1,00 reais
2 Uva R$ 2,00 reais
3 Melancia R$ 3,00 reais
4 Mamão R$ 4,00 reais
5 Morango R$ 5,00 reais

Como perceberam o comando join uniu os dois arquivos, exibindo as frutas e os preços correspondentes a cada uma.

Para mais detalhes do comando join, você pode consultar através do comando join --help

Um abraço!

terça-feira, 6 de setembro de 2011

Repositórios para Debian Squeeze 6.0

Olá,

Hoje venho apenas para divulgar um post do blog http://pprjbgbo.wordpress.com há um tempo atrás ele postou uma lista de repositórios do seu debian squeeze, uma das maiores dificuldades quando se troca uma versão de distribuição é arrumar um repositório bom o suficiente para suprir suas necessidades, onde você possa instalar o seus programas sem muito trabalho (claro, usando o gerenciador de pacotes).

Para adicionar os repositórios em sua distribuição, abra o arquivo /etc/apt/sources.list

# vi /etc/apt/sources/list

Adicione estas linhas no final do arquivo:

deb http://http.us.debian.org/debian/ squeeze main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb http://ftp.br.debian.org/debian/ squeeze-updates main
deb-src http://ftp.br.debian.org/debian/ squeeze-updates main
deb http://ftp.br.debian.org/debian/ squeeze main contrib non-free
deb http://www.debian-multimedia.org squeeze main non-free

Salve e feche o arquivo e agora é necessário resolver um problema da chave de segurança do repositório, para isto baixe o arquivo como vou mostrar abaixo:

# wget http://www.debian-multimedia.org/pool/main/d/debian-multimedia-keyring/debian-multimedia-keyring_2010.12.26_all.deb

# dpkg -i debian-multimedia-keyring_2010.12.26_all.deb


Agora basta atualizar o apt-get.

# apt-get update

Feito isto, você já pode instalar os seus programas sem nenhum problema :)

Um abraço!

Fonte: http://bit.ly/oxruDl

Copiando arquivos do Linux através do Windows

Olá,

Um utilitário muito interessante é o WinScp, ele é uma interface gráfica, onde você pode copiar através da rede arquivos que estão em uma máquina linux. O protocolo de comunicação utilizado é o ssh, só que temos uma interface gráfica que facilita o trabalho.

Para efetuar o download você pode usar o link disponível abaixo.

http://winscp.net/download/winscp434setupnocandy.exe

A instalação é simples, Next, Next...Finish!

Sua utilização também é auto explicativa, caso tenha problemas, você pode utilizar o campo de comentários que eu farei o possível para responder.

Um abraço!

segunda-feira, 5 de setembro de 2011

Conheça a diferença entre o comando tac e o cat

Olá,

Hoje apresento-lhes o comando "tac" ao contrário do comando "cat" ele exibe as informações de trás para frente, vamos a um exemplo básico para você ver a diferença de um e o outro.

Abra um terminal e crie um arquivo qualquer, como por exemplo:

$ touch arquivo.txt

Agora abra o arquivo com um editor de textos e insira alguma informação, para surtir mais efeito, vou adicionar números um em cada linha de 1 à 10.

$ vi arquivo.txt

1
2
3
4
5
6
7
8
9
10

Agora salve e feche o arquivo.

Para exibir o conteúdo você pode usar o comando cat, que ele irá mostrar o conteúdo do arquivo no seu terminal, por exemplo:

$ cat arquivo.txt

1
2
3
4
5
6
7
8
9
10

Agora veja o conteúdo do arquivo usando o comando tac.

$ tac arquivo.txt

10
9
8
7
6
5
4
3
2
1

Perceberam a diferença? legal né? hehe

Até a próxima.

Instalando o MySQL Server no Debian Lenny

Olá,

Nesta dica iremos instalar o SGBD, MySQL Server no Linux, para ser mais específico no Debian Lenny, o procedimento é  muito fácil.

Abra um terminal e conecte como root.

# apt-get install mysql-server

Diga sim para a pergunta que será exibida na tela e espere até o download e iniciar a instalação.

Quando o processo de instalação estiver quase no fim, será exibida uma mensagem(imagem abaixo), requisitando uma nova senha para o usuário root do MySQL Server.


Digite a senha e tecle enter, será necessário confirmar a senha novamente, após isto o seu MySQL Server já estará disponível para utilização.

Agora vamos conectar no MySQL e fazer um teste, criando um banco de dados.

Para acessá-lo, você deverá efetuar o seguinte comando:

# mysql -u root -pSENHA

A senha deverá ser digitada junto ao parâmetro "-p" que significa password. No meu caso, seria assim:

# mysql -u root -p123456

Após dar enter, você será conectado ao console de administração do MySQL. Para visualização os bancos (datatables) já existentes, você pode utilizar o comando abaixo:

mysql> show databases;

E será retornado algo parecido com isto:


mysql> show databases;
+--------------------------------+
| Database                        |
+--------------------------------+
| information_schema        |
| mysql                               |
+--------------------------------+
2 rows in set (0.00 sec)

Agora vamos criar uma base de dados e criar também uma tabela como exemplo:

mysql> create database tecnopad;
Query OK, 1 row affected (0.00 sec)

Veja que o comando foi executado com sucesso, agora que o banco de dados foi criado, para criarmos tabelas dentro deste banco, será necessário usar ele, usando um jargão "entrar" no banco "tecnopad" que foi criado, para isto execute:

mysql> use tecnopad;
Database changed

Agora podemos ver que, o database foi alterado para o "tecnopad", agora já podemos criar tabelas dentro deste banco, o comando para criar tabelas também é muito simples, veja abaixo:

mysql> create table usuario(
    -> nome text,
    -> cidade text);
Query OK, 0 rows affected (0.02 sec)

mysql>

Como podem ver, a tabela foi criada sem nenhum problema, neste caso como era apenas um exemplo, eu não adicionei uma chave primária.
Agora vamos cadastrar um usuário nesta tabela, veja como é fácil.

mysql> insert usuario(nome,cidade) values("Cesar","Americana");
Query OK, 1 row affected (0.00 sec)

mysql>

Pronto, muito simples, agora para podermos ver o que temos dentro de uma tabela é só executar um comando de select.

mysql> select * from usuario;

+--------+-----------------+
|  nome    | cidade       |
+--------+-----------------+
|  Cesar   | Americana |
+--------+-----------------+
1 row in set (0.00 sec)

mysql>

Simples, não é mesmo? Agora você já sabe como instalar, acessar, criar e inserir dados no MySQL Server!

É importante dizer que os comandos dentro do MySQL devem ter o ponto e vírgula no final de cada operação.

Por hoje é só, um abraço!

sexta-feira, 2 de setembro de 2011

SSH - Bloqueando autenticação remota do root

Olá,

Uma pequena dica para ajudar ainda mais a segurança do seu servidor, vamos bloquear o acesso remoto do usuário root, para isto devemos editar o arquivo de configuração do ssh.

Com seu editor de textos, abra o arquivo /etc/ssh/sshd_config

# vi /etc/ssh/sshd_config

Localize as linhas abaixo:

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

Altere para:

# Authentication:
LoginGraceTime 120
PermitRootLogin no #Observe que aqui alteramos para "no"
StrictModes yes

Salve e feche o arquivo, e agora resta apenas reiniciar o serviço do sshd, para isto execute o comando abaixo:

# /etc/init.d/ssh restart

Agora tente conectar usando o usuário root para ver o que acontece :D (imagem abaixo)


Agora você deve estar se perguntando, "E agora como vou conectar no servidor?"

Simples, somente foi bloqueado o acesso remoto do root, mas você poderá acessar o servidor por um usuário comum e após a autenticação, você pode utilizar o comando "su -" para tornar-se root.

$ su -
(digite a senha e tecle enter)

Veja como ficou na imagem abaixo:



Pronto, você já esta conectado como root de uma forma mais segura, confesso que as vezes pode parecer chato, mas fazer o que, é o preço a se pagar.

Um abraço.

Exibindo mensagem ao conectar no ssh

Olá,

Uma pequena dica, adicionar uma mensagem ao servidor de acesso remoto (sshd), geralmente ela é utilizada para empresas que possuem servidores de acesso restrito, você pode adicionar uma mensagem como: "O acesso é monitorado, blá blá e blá", etc.

Explicando de um modo mais compreensível.(nada melhor que uma imagem) abaixo:


Ao efetuar login remoto, a primeira coisa que é exibida é uma mensagem, esta mensagem pode ser alterada, e é o que geralmente acontece, abaixo explico como fazer!

Com seu editor de textos, edite o arquivo /etc/motd

# vi /etc/motd

Nele você encontrará a mensagem original que já veio por default na distribuição, basta você adicionar a mensagem que você gostaria que aparece-se e pronto, simples assim!

Como teste, fiz uma pequena mensagem, vejam abaixo.


Muito fácil, não acha?

Obs.: Vale ressaltar que a distribuição aqui utilizada foi a Debian Lenny, talvez o diretório/arquivo de mensagem /etc/motd de outras distribuições podem estar em diretórios diferentes.

Fico por aqui, até a próxima.

Um abraço!

Instalando o ssh e nmap no Debian Lenny

Olá pessoal,

Recentemente precisei usar o Linux aqui no serviço e a única mídia que eu tinha em mãos era o bom e velho Debian Lenny, apenas o CD 1, instalei o mínimo de recursos, pois eu não tinha as outras mídias, a parte negativa de se fazer isto é que todos os comandos que você mais precisa, não é instalado, como por exemplo: ssh e nmap.

Eu os considero muito importante, pelo menos para quem trabalha em um departamento de informática, mas que disse que não tem a parte positiva?

O legal de instalar assim é a curva de aprendizado, você vai ralar, pesquisar, ler e ler documentações para instalar um simples programa que na instalação da distribuição você poderia ter selecionado apenas com um clique, mas no meu caso, isto não era possível.

Alguém deve estar se perguntando, "Pô mas instalar o ssh e o nmap é fácil, só utilizar o apt-get". Realmente é só utilizar o apt-get, porém quando não se tem o mirror de download no arquivo sources.list fica complicado :D

Mas depois da historinha (chá de espera) vamos para os procedimentos (receita de bolo).

Entre como root em seu terminal e edite o arquivo sources.list.

# vi /etc/apt/sources.list

Adicione as linhas no final do arquivo.

#Repositório para o NMAP
deb http://backports.debian.org/debian-backports lenny-backports main

#Repositório para as LIBS
deb http://ftp.de.debian.org/debian lenny main

Feito isto, salve e feche o arquivo.

Agora, ainda como root, digite:

# apt-get update

E espere até que seus mirrors sejam atualizados, ao finalizar, você poderá instalar o nmap e o servidor ssh da seguinte forma.

# apt-get install nmap ssh

Após verificar a existência dos mesmos, você receberá uma pergunta na tela se efetuar o download do arquivo, basta você dizer sim para a pergunta, que o resto ele fará sozinho!

Simples assim, qualquer dúvida, podem me contactar pelo campo de comentários!

Um abraço!

quinta-feira, 1 de setembro de 2011

Visual Studio 2010 desenvolvendo para Android!

Olá pessoal,

Hoje uma dica interessante, como todos nós sabemos a linguagem de programação nativa para Android é a plataforma Java!

Mas hoje, venho com uma novidade, não tão nova, mas para muitos pode ser uma novidade! Programar para a plataforma Android usando a IDE Visual Studio 2010 com a linguagem C# (C sharp).

Vou passar a receita de bolo e o resto é com você. :D

Você precisará dos seguintes itens:

  1. Java SDK
  2. Android SDK
  3. Visual Studio 2010
  4. Mono Android
Vamos aos links para download e uma breve explicação.

Java SDK - Para fazer o download, entre no link abaixo:

Android SDK - Para fazer o download, entre no link abaixo:

Mono Android - Para fazer o download, entre no link abaixo:

Breve explicação:

É necessário o Java SDK para poder executar o principal, o Android SDK que conta com um emulador do sistema Android.

Já o Mono Android é um plugin desenvolvido pelo pessoal da OpenSUSE, o plugin não é grátis, porém é possível efetuar o download e testá-lo e suas aplicações.

O plugin do Mono Android deve ser o último pacote a ser instalado, assim ele será integrado como uma opção de novos projetos no Visual Studio 2010.

A minha intensão não é ensinar como programar no Android, mas sim, apresentar uma maneira alternativa ao Java!

Para saber mais informações de como programar, você pode consultar um acervo online de exemplos no site oficial do Mono Android.

Para facilitar a sua procura disponibilizo abaixo o link para o famoso Hello World.

Site Oficial Mono Android: 



quarta-feira, 31 de agosto de 2011

Shutdown remoto no Windows

Olá pessoal!

Hoje, trago uma dica interessante, quem aqui já precisou reiniciar ou desligar uma máquina de um outro departamento que não esta nada perto de você?

Bom, todos nós sabemos que existem softwares para acesso remoto e tudo mais, mas acredito que este utilitário que vem por default no Windows pode ajudar muito mais, além de ser fácil e rápido de usar.

Nele você tem uma gama de opções para reinicializar e desligar as máquinas em poucos cliques :)

Para acessá-lo, clique no menu "Iniciar" e vá em "Executar" e agora digite "shutdown /i" como mostra a figura abaixo.



Clique em "OK" e você verá a janela do "Remote Shutdown Dialog", como a figura abaixo.


Para usa-lo é muito simples, você pode desligar/reiniciar vários computadores ao mesmo tempo, basta clicar em "Add" e adicionar o nome ou o endereço IP da máquina alvo, veja um exemplo abaixo:


Após colocar o nome ou endereço IP, clique em "OK" e você vai perceber que a máquina alvo foi adicionada à lista de computadores que serão desligados.


Agora basta você escolher o que você quer fazer com a máquina alvo, entre "Desligar/Reiniciar"...etc, também a opção de colocar um intervalo de tempo para a máquina efetuar a ação remota, existe também a opção/motivo do desligamento que deixei amostra na figura acima, abaixo das opções existe o campo de comentários que você pode escrever uma mensagem e o usuário irá receber em sua sessão.

Fazendo isto, basta clicar em "OK" para concluir, simples assim! :)

Obs.: Para executar este procedimento remoto é necessário ter acesso de administrador da máquina alvo.

Por hoje é só!

segunda-feira, 29 de agosto de 2011

Windows Live Messenger FULL (versão off-line)

Olá pessoal!

Hoje, venho com uma dica simples, porém, para ambiente corporativo certamente irá ajudar e muito, como vocês sabem, a partir de uma certa versão do Windows Live Messenger, a Microsoft disponibiliza o download de apenas um setup que se conecta em um de seus servidores para baixar os arquivos de instalação, pois bem, como trabalho em uma multinacional, onde nem todos os usuários possuem direito a download de arquivos executável, não era fácil ter que instalar o programa em suas máquinas, por muito tempo procurando na internet uma solução, como por exemplo, "Instalador off-line do Windows Live" e finalmente encontrei em um fórum americano onde apontava para um link da Microsoft onde estava uma lista com os setup full de todos idiomas do Windows Live Messenger e hoje venho aqui deixar o link para vocês não passarem este sufoco também :) (até que eu sou bonzinho né?)

Bom, agora que já contei a minha historinha, segue abaixo o link de download. :)

http://windowslivehelp.com/solution.aspx?solutionid=61168194-26aa-4ce6-910a-aeb36fc89d17

Após isto nunca mais precisei ficar fazendo o download para cada instalação! Agora sim :)

Um abraço!


quarta-feira, 20 de julho de 2011

Efetuando conexão no MySQL com PHP

E aí pessoal, tudo na paz?

Hoje vou postar um pequeno passo-a-passo para quem quer estabelecer uma conexão do PHP com o MySQL, o processo é muito fácil...digo, extremamente fácil!

Com seu editor de texto, copie o código abaixo e salve o arquivo como "conexao.php" (sem aspas, por favor).


<?php

$host = "localhost"; // Máquina que esta instalado o MySQL, pode colocar o nome ou o endereço IP
$user = "root"; //Nome do usuário de acesso ao banco, normalmente usa-se o root (administrador)
$pass = "senha"; //Senha que foi definida para o usuário root.
$database = "banco de dados"; //Nome do banco de dados
//A string conexão irá receber os parâmetros de conexão com o banco de dados, e também selecionar o banco a ser utilizado
$conexao = mysql_connect($host,$user,$pass) or die ("Não foi possível conectar com o banco de dados");
  mysql_select_db($database,$conexao) or die ("Não foi possível selecionar o banco");
?>

Salve e feche o arquivo!

Pronto nosso arquivo de conexão está pronto, agora vou considerar que você já tenha um banco de dados e que agora esteja tentando acessá-lo.

Neste exemplo vou criar um outro arquivo .php que vou utilizar para fazer o select ou insert, ou o que você desejar.

<?php
include("conexao.php"); //Quando usamos o include, todo o conteúdo da página é acrescentado a esta outra, ou seja agora temos também todo o processo de conexão a esta página.
/*  Considerando que você queira fazer um insert no seu banco vou fazer o código abaixo */

$query = "insert into t_nome (nome,idade) values ('César','23');"; //Aqui você define o seu comando de insert como é feito no próprio prompt do MySQL
$resultado = mysql_query($query,$conexao) or die (mysql_error()); // Aqui usamos a função mysql_query() e passamos os parâmetros "comandos" e a "conexão".

//A variável "resultado" irá conter o resultado do insert para sabermos se o insert foi executado com sucesso, podemos fazer o código abaixo;

if (mysql_num_rows($resultado)>0)
{
   print "Insert executado com sucesso!";
}else
{
   print "Não foi possível executar o insert!";
}

?>

Salve e feche o arquivo, agora você pode acessar a página e testar, caso dê certo, irá aparecer "Insert executado com sucesso!", caso contrário a mensagem de erro será exibida.

Tentei explicar o máximo possível, acredito que com isto até um iniciante poderá executar o insert/update/delete no PHP + MySQL.

Caso tenha interesse em aprender muito mais e se tornar um expert no assunto, recomendo o material abaixo:

Qualquer dúvida, utilize o campo de comentários!

Abraços!

segunda-feira, 11 de abril de 2011

Sistemas Distribuídos - Threads

Threads

Definição: É uma unidade básica de utilização de CPU: ID de definição; Contador de programa; Um conjunto de registradores; Um pilha.

Além disso, compartilha com outras threads pertencentes ao mesmo processo sua seção de:
  • Código
  • Dados
  • E outros recursos S.O., como arquivo abertos e sinais. 
Benefícios da programação Multithread
  • Responsividade
  • Compartilhamento
  • Economia
  • utilização de arquitetura multiprocessadas

Categorias de threads

Threads de Kernel: Gerenciadas pelo sistema operacional
Threads de usuário: Gerenciadas pela aplicação

Modelos de threads

  • Modelo muitos para um
  • Modelo um para um
  • Modelo muitos para muitos

Threads em Sistemas Distribuídos

Implementação de threads: Basicamente existem 2 abordagem na criação de threads, sendo elas:

1)      Construir uma biblioteca de threads que é executada inteiramente em modo usuário
2)      Fazer com que o kernel fique ciente das threads e os escalone.

Conceito Cliente/Servidor

Cliente: Praticamente existe 2 modo que um cliente pode ser visto em um ambiente distribuídos, sendo elas:

1)      Para cada serviço remoto, a máquina cliente terá uma contraparte separada que pode contatar o serviço pela rede.
2)      Fornece acesso direto a serviços remotos, disponibilizando apenas uma interfaces de usuários conveniente.

Cliente Multithreads

Funcionamento

1)      Primeiramente é necessário que essa thread consiga realizar uma conexão de alta velocidade.
2)      Precisa controlar a latência entre a solicitação e a resposta que o servidor enviará;
3)      Enquanto o servidor não encaminha nada, o cliente pode realizar alguma tarefa;

Servidor

É um processo que implemento um serviço específico em nome de um conjunto de cliente

Funcionamento

Em essência, cada servidor é organizado do mesmo modo, ou seja:
  • Ele espera por uma requisição que vem de um cliente, e na sequência, assegura que ela seja atendida.
  • E depois fica aguardando pela próxima requisição

Modo de organização de um servidor:
  • Servidores Iterativo: O servidor manipula a requisição e, se necessário, retorna uma resposta ao cliente requisitante.
  • Servidores concorrente: O servidor manipula por si próprio a requisição mas passa para uma thread separada ou para outro processo, depois imediatamente espera pela próxima requisição

Característica

Um ponto importante em um servidor é como o cliente contatam um servidor; Em todos os casos os clientes enviam requisições a um terminal, também chamado de porta, na máquina em que o servidor esta executando.

Uma abordagem é designar globalmente portas para serviços bem conhecidos, por exemplo:

  • Servidores que manipulem requisições FTP sempre ouvem a porta TCP 21.
  • Servidores HTTP sempre ouvem a porta TCP 80

IANA ( Internet assigned numbers authortiy)

  • Outro ponto que precisamos analisar em um servidor é quando o cliente aborta uma operação.

Solução

1 ) Fora da banda: O cliente e o servidor enviam dados que serão processados antes de quaisquer outros dados daquele cliente. 
2 ) Porta de controle: O servidor abre uma outra porta (com prioridade mais baixa).


 Estado do Servidor

Sem estado: Significa que o servidor não mantém informações sobre o estado de seus clientes e pode mudar seu próprio estado sem ter de informar a nenhum cliente

Com estado: Significa que o servidor mantém informações persistente sobre seus cliente.

Servidores Multithread

Uma implementação em um servidor, possibilita realizar um processamento paralelo, esmo que este seja monoprocessado;

Isso porque, o servidor encaminha para vários clientes, tarefas, as quais serão processadas em recursos (processadores) diferentes;

No servidor, podemos ter duas estrutura possíveis, sendo elas:
1)      Servidores multithread
2)      Servidores monothread

Seu funcionamento é realizar as chamas Send e Receive, ou seja, enviar e receber.

terça-feira, 5 de abril de 2011

Afinal o que é Ciência da Computação?


Afinal o que é Ciência da Computação?

Hoje, vou dar uma dica e não dizer realmente o que é Ciência da Computação ou o seu significado. Para as pessoas que desejam cursar o curso de Ciência da Computação, ou até mesmo aquelas que estão em dúvida se faz ou não um curso de graduação na área de informatica, meu objetivo(aqui) é falar sobre ciência da computação, afinal é o que eu faço e que graças à Deus, termino este ano. (2011)

Para as pessoas que estão mal informadas sobre a grade do curso, ou até mesmo aquelas pessoas que pensam que vão entrar no curso, e aprender a mexer no Word, Excel, formatar máquinas, instalar Linux, estão TOTALMENTE enganadas, como o próprio nome do curso diz, Ciência!!!. Você meu chapa, será um cientista, e para isto acontecer, você irá aprender muita matemática, física, álgebra, resumindo tudo o que envolve matemática, você irá aprender, arquitetura de computação, que envolve desde a criação e funcionamento do hardware desde o ano 1900 (e bolinhas) até as tecnologias mais atuais, e é claro você irá aprender, o porque uma coisa é melhor do que a outra, porque aquilo é tem um preço mais acessível e uma capacidade maior de armazenamento, e outra contém a metade de armazenamento e é extremamente mais cara, etc.

Faço este post porque acredito que é comum, toda a faculdade que possui este curso, possuir uma certa dificuldade de manter seus alunos até o final do curso. Todos os anos formam turmas com muitos alunos, no meu caso 40 pessoas em uma sala (1 semestre), e logo no segundo semestre, a quantidade cair para 25 pessoas, e o motivo mais comum (obvio) é porque muitas das pessoas que entram neste curso, imaginam ou sei-lá, pensam que vão aprender Word, Excel, mas logo de cara, começam na terrível matemática (Cálculo I, Geometria Analítica, (velhos tempos, eee saudade!).

Então, você aí!. Que pensa que vai aprender "informática" em Ciência da Computação, esta totalmente enganado, para dar uma "luz", a grade de Ciência da computação costuma a ser mais ou menos esta:

1. Cálculo I
2. Geometria Analitica
3. Metodologia Ciêntifica
4. Inglês para computação
5. Física Experimental
6. Cálculo II
7. Álgebra Linear
8. Algoritmo e Introdução de Liguagem de programação
9. Estrutura de Dados I
10. Estrutura de Dados II
11. Circuitos Digitais
12. Sistemas Digitais
13. Assembly
14. Engenharia de Software
15. Banco de Dados I
16. Banco de Dados II
17. Paradigmas de Programação
18. Interface Homem Máquina

E por aí vai, são muitas matérias não citei todas, ou seja, você não irá aprender formatar micros, se quiser aprender isto, aconselho procurar uma instituição como a Microlins ou Microcamp, que são conceitudas nestes cursos extracurriculares.

O objetivo deste post, não é criticar quem já começou e parou o curso, mas sim alertar, afinal se você começar estudar e parar, estará perdendo o seu tempo e também o seu dinheiro!

quinta-feira, 31 de março de 2011

Quer ganhar um IPad2?

Olá galera,

Dica rápida, para quem estiver querendo um IPad 2, o site de tecnologia macmagazine.com.br está fazendo um sorteio via twitter, e o felizardo que for sorteado irá ganhar "di grátis" um IPad2.

Para concorrer acesse o link abaixo e saiba mais!.

http://macmagazine.com.br/2011/03/30/agora-e-pra-valer-quer-ganhar-um-ipad-2/

Um abraço!

quarta-feira, 23 de março de 2011

Enviando e-mail pelo VB.NET

Olá pessoal,

Hoje vou postar como enviar e-mail através do VB.NET, o código esta comentado, então não será necessário explicar.

Antes de começar, no cabeçalho do código, onde ficam os Imports, coloque o seguinte importe para que nosso método de envio de e-mail possa funcionar.

Imports System.Net.Mail

Agora sim, o método para enviar o e-mail é este, logo abaixo:


   Protected Sub send()
        Dim objNovoEmail As New MailMessage
        Dim objSmtp As New SmtpClient

        'Adicionando o e-mail do remetente
        objNovoEmail.From = New MailAddress(txtEmailRemetente.Text)

        'Adicionando o e-mail do destinatário
        objNovoEmail.To.Add(New MailAddress(txtEmailDestinatario.Text))

        'Adiciona a prioridade do e-mail
        objNovoEmail.Priority = MailPriority.High

        'Adicionando o assunto ao atributo assunto
        objNovoEmail.Subject = txtAssunto.Text

        'Formato de e-mail em Html?
        objNovoEmail.IsBodyHtml = True

        'Inserir o corpo da mensagem no atributo Body
        objNovoEmail.Body = txtMensagem.Text

        'Configuração de tipagem da linguagem, para não aparecer caracteres estranhos na mensagem
        objNovoEmail.SubjectEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1")
        objNovoEmail.BodyEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1")

        'Adicionando os campos dos atributos da configuração do e-mail
        'parametros necessários para envio de e-mail.


        'Configuração do IP do servidor SMTP
        'Por exemplo: smtp.mail.yahoo.com.br (EXEMPLO)
        objSmtp.Host = txtServidorSmtp.Text
        objSmtp.Port = txtPorta.Text

        'Caso queira definir um tempo do timeout 
        'objSmtp.Timeout = 10


        'Define se deve usar autenticação ou não
        If txtUsuario.Text <> String.Empty And txtSenha.Text <> String.Empty Then
            objSmtp.Credentials = New System.Net.NetworkCredential(txtUsuario.Text, txtSenha.Text)
        End If

        If txtUsuario.Text = String.Empty Then
            objSmtp.UseDefaultCredentials = False
        End If

       'Habilitar SSL ou não? 
        objSmtp.EnableSsl = chkSSL.CheckState

        'Enviando a mensagem por e-mail
        Try
            objSmtp.Send(objNovoEmail)
        Catch ex As Exception
            Throw ex
        Finally
            objNovoEmail.Dispose()
        End Try
        objNovoEmail.Dispose()
    End Sub


Obs¹.: Atente-se que em alguns trechos de código os atributos estão recebendo alguns TextBox, que são do meu form (formulário visual).


No seu formulário (form) deverá ter um botão de enviar, que deverá colocar o seguinte código para chamar o método send().

Obs².: Atente-se que o código que deverá ser inserido no seu botão começa à partir do comando Try até o End Try.


Private Sub btnEnviar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnviar.Click
        Try
            send()
            MessageBox.Show("E-mail enviado com sucesso!", "Send mail", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Catch ex As Exception
            MessageBox.Show("Falha!" & ex.ToString, "Send mail", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
   End Sub

Logo abaixo, um screen do projeto que fiz como teste, caso tenham dúvidas utilizem o campo para comentários que tentarei responder à todos da melhor forma possível.



Um abraço e bom estudo.