O 8,000 visitante \o/

8 05 2008

Não, não é mais uma daquela propagandas em que diz: você é o 999,999,99 visitante, clique aqui para receber seu prêmio… E ainda tem aquelas que dizem: Isso não é brincadeira… ¬¬…  Hahahaha!! Mas então, o meu visitante número 8,000 foi um cara muito gente boa, brother mesmo, o Mário… Amigo dos tempos do CEDUC, Hein galera que foi para o Varjão!! Hahahaha!! Bons tempos aquele…

Bom, valeu brother, abraço!

Simonarde Jr.





A moda agora é twittar xD

8 05 2008

Twitter é um microblog, onde você responde a simples pergunta: o que você está fazendo agora? E automaticamente, todos os seus amigos ficam sabendo… Interessante, não??
Pois bem, a princípio pode parecer besteira, mas é só você começar a usar para ver o quão viciante é esse serviço, eu por exemplo, posto praticamente o tempo todo. O melhor, é que você não precisa necessariamente estar na frente do computador para atualizar, você pode fazê-lo via SMS ou via WAP a partir do seu dispositivo móvel preferido ou então a partir do seu MSN, GTalk, enfim…

bom, quem quiser me seguir lá e saber o que eu estou fazendo, basta entrar nesse link e e clicar em “Follow“, pronto, rápido, fácil, eu diria até indolor :D

Até o próximo post, boas twittadas

Simonarde Jr.





Gerenciador de Contatos v1.0 [parte 2]

25 04 2008

Opa opa! Cá estamos de volta, com a segunda parte do Artigo Gerenciador de Contatos, dessa vez iremos desenvolver a página principal, ou “index.php”, vamos lá?

Com o seu editor preferido aberto, digite as linhas responsáveis por carregar o arquivo de funções (aquele que você desenvolveu no post anterior, lembra?):

<?php
  require_once("funcoes.php");
?>

Pronto, agora você poderá usar todas as funções no seu projeto :D , é importante lembrar que o arquivo “funcoes.php” deverá estar no mesmo diretório que o “index.php”, ou então será necessário informar o caminho ao require_once.

Agora vamos ao HTML básico, digite as linhas a seguir:

<html>
 <head>
  <title>Gerenciador de Contatos v1.0</title>
 </head>

 <body>

 </body>
</html>

Pronto, com essa estrutura básica, você deverá ter uma página sem nada escrito, apenas com o título da página mostrando “Gerenciador de Contatos v1.0″.

Vamos incrementar um pouco e adicionar um título para que possamos informar ao usuário do que se trata a página que ele está vendo no momento, adicione dentro da tag “body”:

<h1>Gerenciador de Contatos v1.0</h1><hr>

Essas linhas devem criar um título e uma linha horizontal.

Bom, como você quer listar os contatos na sua página principal, vamos utilizar agora a função Listar() que desenvolvemos no post anterior, para isso, digite a linha a seguir logo após a tag “hr”:

<?php Listar(); ?>

Agora insira mais uma linha horizontal digitando a tag “hr”, poderemos também inserir algumas informações no rodapé, tais como o Copyleft ou um link, sua imaginação é o limite aqui ;) :

<hr>
Copyleft Simonarde Jr.
Desenvolvido para o artigo Gerenciador de contatos em http://simonardejr.wordpress.com

Bom, com isso sua página principal está pronta e deve se parecer com esse código abaixo:

<?php

 require_once("funcoes.php");

?>

<html>
 <head>
  <title>Gerenciador de Contatos v1.0</title>
 </head>

 <body>
  <h1>Gerenciador de Contatos v1.0</h1>
  <hr>
  <?php
   Listar();
  ?>
  <hr>
  <center>Desenvolvido por Simonarde Jr.<br/>
  Para o Artigo "Gerenciador de Contatos v1.0" em <a href="http://simonardejr.wordpress.com/" target="_blank">zWorld</a>.</center>
 </body>

</html>

No próximo post iremos desenvolver a página de cadastro (”adicionar.php”). Até lá.

Simonarde Jr.





Gerenciador de Contatos v1.0 [parte 1]

21 04 2008

Salve salve meus ilustríssimos visitantes, cá estou de volta e, como prometido, trazendo o Artigo sobre o Gerenciador de Contatos. Gostaria de lembrar-vos que esse projeto é OpenSource, ou seja, você poderá usar, modificar e é totalmente encorajado a distribuir essa versão (ou a editada) desde que seja mantido os devidos créditos. Aliás, esse é o meu primeiro projeto OpenSource, espero que gostem ;)

Bom, então vamos digitar código né??

Crie o BD e a tabela com o seguinte script SQL:

CREATE DATABASE gerenciador;
 USE gerenciador;

CREATE TABLE IF NOT EXISTS contatos (
  ID int(5) NOT NULL auto_increment,
  nome varchar(255) NOT NULL,
  telefone varchar(255) NOT NULL,
  celular varchar(255) NOT NULL,
  email varchar(255) NOT NULL,
 UNIQUE KEY ID (ID) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Começaremos por um arquivo chamado “funcoes.php”, onde serão escritas todas as funções do aplicativo, facilitando assim a manutenção e poluindo menos as páginas :D . Abra então seu editor preferido e comece abrindo a tag PHP: <?php .

A primeira função será a que facilitará a conexão com o MySQL:

function Conectar( $user, $password, $local="localhost" ) {
  $conexao = @mysql_connect( $local, $user, $password ) or die( "Erro: ".mysql_error() );
  if ( $conexao ) { $bd = @mysql_select_db( "gerenciador" ) or die( "Erro: ".mysql_error() ); }
}

Veja que passamos 3 parâmetros para ela, sendo dois obrigatórios ($user e $password) e um opcional ($local, que se não for passado recebe o valor “localhost”). Fazemos então a conexão e testamos se ela foi realizada com sucesso, se sim, ele escolhe o banco “gerenciador” para o uso. Pode parecer uma função simples, mas realmente é muito útil pois toda vez que precisar realizar uma conexão tudo o que precisa digitar é Conectar(”user”, “senha”);.

Vamos então agora a função Listar();

function Listar() {
  Conectar("user", "senha"); //Passe seu user e senha como parametros.
  $query_lista = "SELECT * FROM contatos ORDER BY nome ASC";
  $resultado = @mysql_query($query_lista) or die("Erro: ".mysql_error());
  if ($resultado) {
   $total = mysql_num_rows($resultado);
   if (mysql_num_rows($resultado) != 0) {
    echo "<table border=\"0\"><tr bgcolor=\"#ff2200\"><td>Nome</td><td>Telefone</td><td>Celular</td><td>E-mail</td><td>Opções</td></tr>";
    while ($linha = mysql_fetch_array($resultado)) {
     if ($i % 2 == 0) { $cor = ""; }
     else { $cor = "#EEEEEE"; }
     echo "<tr bgcolor=\"".$cor."\"><td>".$linha["nome"]."</td><td>".$linha["telefone"]."</td><td>".$linha["celular"]."</td><td>".$linha["email"]."</td><td><a href=\"editar.php?ID=".$linha["ID"]."\">Editar</a> | <a href=\"deletar.php?ID=".$linha["ID"]."\">Deletar</a></td></tr>";
     $i++;
    }
    echo "</table><br/><br/>";
   }
   echo "Você possui ".$total." contatos cadastrados. Deseja <a href=\"adicionar.php\"> adicionar</a> outro?";
  }
}

Essa função realiza a consulta no banco de dados e nos mostra os resultados numa tabela zebrada (ou seja, sempre que precisar listar todos os contatos, basta digitar Listar();, mais simples impossível não é mesmo? ;) ). Ela possui também um contador, onde é possível ver quantos registros você possui.

Que tal escrevermos a função Adicionar()? Vamos lá então ;)

function Adicionar($nome, $telefone, $celular, $email) {
  Conectar("user", "senha"); //Passe seu user e sua senha como parametros.
  if ( $nome == "" ) { $nome = "NULO"; }
  if ( $telefone == "" ) { $telefone = "(00) 0000-0000"; }
  if ( $celular == "" ) { $celular = "(00) 0000-0000"; }
  if ( $email == "" ) { $email = "nenhum fornecido"; }
  $query_adic = "INSERT INTO contatos (ID, nome, telefone, celular, email) VALUES ('NULL', '$nome', '$telefone', '$celular', '$email')";
  $resultado_adic = mysql_query($query_adic) or die("Erro: ".mysql_error());
}

Bom, essa função serve exatamente para fazer o que o nome propõe, adicionar um novo contato, ela possui uma série de testes para atribuir valores às variáveis se as mesmas forem vazias. Novamente, visando a facilidade da inserção, basta digitar Adicionar(”nome”, “telefone”, “celular”, “email”); para que as informações sejam armazenadas no BD.

Mas Simonarde, eu já adicionei, já listei, mas é se eu quiser remover? Vamos resolver isso agora caro visitante, com a função Deletar();

function Deletar($id) {
  $query_del2 = "DELETE FROM contatos WHERE ID='$id'";
  $resultado_del2 = @mysql_query($query_del2) or die("Erro: ".mysql_error());
  if ($resultado_del2) {
   echo "Removido com Sucesso! Clique <a href=\"index.php\">aqui</a> para retornar.";
  }
}

Pronto, basta passar como parâmetro o ID do contato que queres deletar e pronto (Deletar(3); por exemplo), ele será removido do DB ;) .

E se eu coloquei as informações erradas Simonarde, vou ter que apagar o contato e cadastrar de novo? Não ilustríssimo, você vai desenvolver agora a função Editar() e Editando(), uma vai buscar as informações no BD e a outra vai alterar esse registro :D

function Editar($id, $nome, $telefone, $celular, $email) {
  Conectar( "user", "senha"); //Passe seu user e sua senha como parametros.
  if ( $nome == "" ) { $nome = "NULO"; }
  if ( $telefone == "" ) { $telefone = "(00) 0000-0000"; }
  if ( $celular == "" ) { $celular = "(00) 0000-0000"; }
  if ( $email == "" ) { $email = "nenhum fornecido"; }

  $query_edit = "UPDATE contatos SET nome='$nome', telefone='$telefone', celular='$celular', email='$email' WHERE ID='$id'";
  $resultado_edit = mysql_query($query_edit) or die("Erro: ".mysql_error());
 }

function Editando($ide) {
  Conectar( "user", "senha"); //Passe seu user e sua senha como parametros.
  $query_edit2 = "SELECT * FROM contatos WHERE ID='$ide'";
  $resultado_edit2 = mysql_query($query_edit2) or die("Erro: ".mysql_error());
  if ($resultado_edit2) {
   while ($linha_edit2 = mysql_fetch_array($resultado_edit2)) {
    echo "<form action=\"editar.php\">
           Nome: <input type=\"text\" name=\"nomec\" value=\"".$linha_edit2["nome"]."\"> <br/>
           Telefone: <input type=\"text\" name=\"telefonec\" value=\"".$linha_edit2["telefone"]."\"> <br/>
           Celular: <input type=\"text\" name=\"celularc\" value=\"".$linha_edit2["celular"]."\"> <br/>
           E-mail: <input type=\"text\" name=\"emailc\" value=\"".$linha_edit2["email"]."\"> <br/>
           <input type=\"hidden\" name=\"valida\" value=\"ok\">
           <input type=\"hidden\" name=\"ID\" value=\"".$linha_edit2["ID"]."\">
           <input type=\"submit\" value=\"Editar\"> <input type=\"button\" value=\"Cancelar\" onClick=\"javascript:history.back(1);\">
          </form>";
   }
  }
 }

Pronto, para apresentar um formulário com as informações a serem editadas, basta digitar Editando(ID); passando o ID do contato a ser editado como parametro, já para salvar, basta digitar Editar(”ID”, “nome”, “telefone”, “celular”, “email”); passando as informações como parametro, simples não? ;)

Bom, agora só falta você fechar a tag PHP que você abriu lááá no começo do Artigo, para tal, digite: ?> e com essas funções escritas, seu arquivo “funcoes.php” está completo e pronto para uso.

No próximo post, iremos desenvolver a “index.php”, que será responsável por mostrar os contatos cadastrados e oferecer a opção para inserir um novo registro no BD.

Até lá ;)

Simonarde Jr.





Seja Livre: Use Linux [parte 2]

8 04 2008

Salve salve meus ilustríssimos visitantes, cá estou de volta com os resultados das minhas experiências com o Linux.

  • Edição de imagens

Bom, confesso que o que me prendia mais ao Windows Vista era o Adobe Photoshop. Mas aí, você que conhece Linux fala: mas nós temos o GIMP! É, realmente, nós temos o GIMP… Mas eu não conseguia usá-lo, até que eu decidir dar uma segunda chance para ele… O resultado vocês devem imaginar né? :D Não, não, eu não desisti dele, pelo contrário, estou me adaptando muito bem a ele e, sendo bem sincero, não deve nada nada ao seu concorrente proprietário…

Temos também o Inkscape, um software OpenSource para vetorização. Ele é bem simples, mas não se engane por isso, estou aprendendo a vetorizar ainda, mas já consigo fazer algumas coisas bacanas…

  • Instant Messaging

Para conversas online, temos muitas opções de IM que conectam em várias redes ao mesmo tempo, mas os que eu testei aqui foi o Pidgin (ex-Gaim) e o aMSN (idêntico ao software da Microsoft), ambos cumprem bem o papel, mas recomendo o aMSN.

  • Multimídia

Quem me conhece sabe, não vivo sem ouvir música ou assistir meus seriados e filmes, no Linux temos muitas opções de players, um que eu venho usando e gostado bastante é o VLC media player (para DVDs, DivX, entre outros), já para música (mp3, ogg… etc), uso o Rhythmbox, ambos também cumprem muito bem a sua missão e sua interface não poderia ser mais simples.

  • Programação

Bom, 99% do meu tempo na frente do computador é gasto com programação, não tem jeito… Então, nada mais justo que um tópico sobre as ferramentas de programação disponíveis no X, não é mesmo?? Então, não tive tempo para testar outras além do Lazarus, que nada mais é que uma ferramenta que visa substituir o Delphi da Borland e o Eclipse (utilizado para programar em PHP, Java, entre outras), mas não testei muita coisa além da sua interface gráfica :D .

  • Jogos

Atualmente eu estou jogando dois jogos, Diablo II (e sua expansão) e World of Warcraft. O primeiro rodou belezinha, sem nenhum tipo de complicação, já o segundo, esse sim, deu um pouco de trabalho, pois temos que fazer uns hacks para que ele rode tranquilo (os quais ainda não fiz todos :D ). Estou planejando testar Shadow Ops: Red Mercury e talvez algum outro de guerra.

  • Conclusão

Bom caríssimos visitantes, como podem ver, cada vez mais gosto do Linux, tanto por ser seguro (uma vez que não tenho que me preocupar com vírus, spywares, malwares e todas essas pragas), quanto por suprir todas as minhas necessidades como programador. O melhor, tudo isso de graça, com amplo suporte espalhado pela internet, tudo o que você quer configurar, existe um tutorial bem explicado e detalhado… A comunidade OpenSource é simplesmente fodástica!

Vou encerrando por aqui, até o próximo post :D

Simonarde Júnior.





Seja Livre: Use Linux

3 04 2008

Ontem eu resolvi mandar o Windows Vista para o espaço e instalar o Ubuntu 7.10 no meu notebook. Eu já gostava do Linux por ser bem mais seguro e (ao meu ver) muito melhor que o Windows, mas nunca havia radicalizado e deixado apenas ele como eu fiz agora…

Já usei algumas distros conhecidas (Kurumin, Debian, Fedora, Conectiva) mas confesso que estou me surpreendendo a cada nova versão do Ubuntu, com essa agora, não tive nenhum problema com a detecção do meu hardware, tudo foi identificado certinho e está funcionando perfeitamente, até a placa de vídeo (ATI Radeon Xpress 1100), foi identificada e, com uns pequenos ajustes, está rodando o Compiz-Fusion (com os efeitos) numa boa. Ponto para o Pinguim. Outra coisa interessante foi o fato de eu ter conseguido rodar o game Diablo II (e a expansão) sem nenhum tipo de problema através do WINE, amanhã começarei os testes com outros jogos e aí eu posto o resultado aqui. Resta agora esperar pela versão 8.04, que vai ser lançada oficialmente dia 24 de Abril e conferir as novas features.

Bom gente, vou ficando por aqui, e claro, deixando a dica para vocês: Seja Livre: Use Linux ;)

Simonarde Júnior.





Gerenciador de Contatos v1.0

3 04 2008

Salve salve caríssimos visitantes, cá estou a postar novamente e dessa vez vos trago o resultado da pesquisa do post anterior… Bom, seguinte, pelos comentários que recebi aqui juntamente com o conselho do meu professor Thiago, decidir então fazer o Artigo ensinando a fazer e no final postar o Aplicativo pronto para uso, certo? Então, fiquem de olho que eu já comecei a desenvolver o projeto e, muito em breve, eu posto a primeira parte do Artigo ;)

Vou ficando por aqui, até o próximo post…

Simonarde Júnior.





Ó dúvida…

31 03 2008

Bom galera, após exatos 170 dias sem postar (o que é equivalente a 5 meses e 20 dias, quase meio ano :O ), cá estou eu escrevendo novamente…

Primeiramente gostaria de pedir desculpas aos meus nobres visitantes pelo tempo sem atualizações, prometo não acontecer de novo, e, aproveitando, agradecer as 7,311 visitas únicas que eu tive até o presente momento :D .

Então vamos ao motivo do post, estou aqui a pensar em um projeto que vai ser de grande utilidade para mim, que costumo sempre perder meus contatos… Então eu pensei, porque não manter os meus contatos em um banco de dados, com uma interface amigável e bem diferente desses softwares que costumam vir com o celular (que aliás são horríveis, pesados e geralmente nunca fazem o serviço direito), junto com a facilidade de eu poder acessá-los de qualquer lugar? Daí surgiu a idéia de desenvolver um sistema em PHP para que eu pudesse guardar meus contatos no meu servidor e ter acesso a qualquer hora e qualquer lugar, sem precisar instalar nada, usando apenas o navegador de qualquer computador… Então surgiu outra dúvida: disponibilizar o aplicativo para download ou simplesmente criar um Artigo ensinando a fazer um (o que seria melhor pois além da possibilidade de personalização, ainda rolaria o aprendizado :D ) ?

Bom, resolvi perguntar a vocês o que acham melhor, o aplicativo para download ou o Artigo? Respondam aí que a partir de Quarta-Feira (dia 02), eu já coloco aqui o escolhido :D

Vou ficando por aqui, espero que aceitem minhas sinceras desculpas pelo tempo sem postar…

Ahh! E obrigado mais uma vez pelas visitas :D

Simonarde Júnior.





Delphi com Banco de Dados

11 10 2007

É galerinha, após um looongo período sem postar, cá estamos de volta, e com um assunto que me interessa muito.

Realmente descobri o que eu gosto de fazer, programar. Pode ser o software mais simples do mundo (como o Bloco de Notas que estou desenvolvendo), mas só de você ver ele rodar e funcionar como deveria já dá uma sensação tão boa que é quase inexplicável, porque afinal, foi você quem codificou tudo, você quebrou a cabeça p/ fazer as rotinas de verificação, se tal coisa tá marcada, se tal clique acontecer, enfim, você que programa sabe do que eu tô falando :P.

“Eu amo Delphi”, essa frase eu venho usando muito ultimamente, e isso se deve ao Curso de Extensão que a UniNorte está oferencendo (Delphi com Banco de Dados). Eu já tinha ouvido falar da fama do Delphi, mas sempre preferi usar o VB sem nem nunca ter dado uma chance para ele. “Adeus VB”, é o que eu falo hoje… hahahaha, as coisas mudam hein?

No primeiro sábado do curso, já desenvolvemos um Bloco de Notas beeeeeem fuleiro, mas em todo e qualquer curso, todo mundo sempre começa por uma coisa simples, hoje eu estou complementando o projeto, fazendo aperfeicoamento do código e implementando novas funcionalidades (no próximo post eu coloco uma screenshot dele). Vamos ver o que vamos fazer na próxima aula, estou ansioso ao extremo, já que agora só no sábado que vem, porque esse vai ser feriado =/.

Então, p/ encerrar o post, lembro-me de uma frase que o Célio (meu professor de física do 3º ano (é, faz até um tempinho :P)) disse: “Se você for fazer alguma coisa, faça porque gosta, e não porque é obrigado a fazer.

Abraço e até o próximo post

Simonarde Júnior.





C++ e Pascal… Ahh, Agora sim…

15 08 2007

É galerinha, após um looooongo período de férias, cá estamos todos nós na correria da facul novamente. Agora sim, a programação em si começa a entrar na grade, estamos começando com o C++ e o Pascal e é sobre eles que eu vou falar um pouco nesse post.

Para quem nunca programou, é normal ficar meio perdido nas aulas teóricas, mas não se preocupem, tudo vai fazer sentido assim que tivermos aulas práticas…

Bom, começando então, um exemplo básico de C++:

ola_mundo.jpg

Vixe, complicou? Peraí vamos debugar linha por linha:

/* Olá mundo [by Simonarde Jr] */
Essa linha se trata de um simples comentário, ela diz, nesse caso, o nome do script e o autor (não é obrigatório o uso desse comentário, mas para facilitar a leitura é sempre bom você comentar seus programas ;] ).

# include <iostream>
Aqui é onde mostramos ao compilador a(s) biblioteca(s) que iremos usar ao longo do programa que estamos desenvolvendo.

using namespace std;
Aqui informamos ao compilador qual(is) função(ões) iremos utilizar também ao longo do programa.

int main()
Essa parte é muito importante, é dentro dessa função main() que o nosso aplicativo vai ser desenvolvido, podemos dizer que esse é o corpo do programa em si. É importante lembrar também que essa função obrigatóriamente tem que iniciar com uma “{” e ao final dela temos que fechá-la usando “}”.

cout << “Ola Mundo!” << endl;
Essa linha é responsável por mostrar tudo o que está dentro das “” na tela (no nosso exemplo é a frase “Olá Mundo!”), seguido por “endl;” (lê-se end line ou fim da linha) que mostra ao compilador que a linha termina ali.

sytem(”Pause”);
Como estamos programando aplicativos simples, essa linha manda um sinal de pausa e então podemos visualizar a janela com o texto, sem ela, a janela iria se abrir e ao término da execução dos comandos listados na função main(), iria se finalizar, fechando assim a janela. (Nesse primeiro momento ela só servirá para que você visualize o programa rodando mesmo.)

return 0;
Essa linha também não é obrigatória, pelo menos no Dev-C++, pois ele já “sabe” que a instrução int main() tem que resultar em 0 (zero), e já faz isso sozinho, mas em outros compiladores você tem que por no braço mesmo, se não o programa não é compilado.

Pronto, se você digitar essas linhas no Dev-C++ e quiser ver o programa rodando, aperte F9 e divirta-se ;]

Já o Pascal, ainda estamos em fase de migração do VisuAlg para ele, vou postar uns exemplos depois, mas o que muda são apenas algumas coisas, como por exemplo, as palavras reservadas e as instruções são em inglês e o uso de “;” (ponto e vírgula) é obrigatório no final das instruções.

Bom, vou encerrando por aqui, qualquer dúvida, só me procurar, ok?

Abraço a todos

Simonarde Jr.