Rede Social para Universidades

Novamente voltando à postar para apresentar um outro projeto pessoal, este ao contrário do último, não entra na característica de projeto rápido de uma noite, já que este projeto teve como característica a implementação para utilização na apresentação de meu TCC no final do ano passado.  TCC nota 10 por sinal :-)

Meu trabalho de conclusão de curso baseava-se na defesa da utilização das redes sociais no meio acadêmico como solução alternativa ou complementar para universidades que possuem os sistemas tradicionais, com intuito de melhorar a experiência dos alunos e proporcionar uma melhor comunicação entre os professores e alunos.

Este TCC contou com uma monografia à respeito do tema, uma pesquisa com diversos alunos à respeito do que eles achariam desta utilização e qual a opinião deles sobre os sistemas que suas universidades oferecem atualmente, além de uma implementação da aplicação.

E é esta implementação que quero mostrar para vocês hoje.

Segue abaixo o link de redirecionamento:
http://www.redesocialparauniversidade.com/

Ou o link direto provisório:
http://www.andersonarcenio.com/redesocial/projeto/

A ideia era prosseguir com o projeto, com a evolução do mesmo, e quem sabe torná-lo um negócio, porém pela falta de tempo acabou ficando parado temporariamente.

Caso tenha interesse, no projeto, no tema, na pesquisa, entre em contato, vamos conversar!

Figurinhas da Copa 2010

Após muito tempo sem atualizar este blog, eu volto para falar à respeito de um projeto rápido que eu junto à um amigo fizemos na noite passada.

Tendo em vista o alto sucesso do #albumdacopa e a dificuldade que se tem em certos pontos da coleção de adquirir aquela tal figurinha que queremos, foi criado este projeto que tem como objetivo justamente facilitar aos colecionadores de adquirirem as tais figurinhas que estão procurando.

Segue abaixo o link de redirecionamento:
http://www.figurinhasdacopa2010.com

Ou o link direto provisório:
http://www.andersonarcenio.com/figurinhas

É um projeto rápido, que pode até ser considerado uma brincadeira, mas que é um projeto sério e que visa prestar este serviço para quem tiver interesse.

PS: Quanto ao blog, prometo em breve dedicar mais tempo à ele.

Tutorial - PHP / MySQL - Módulo 04

Com a área de Cadastro finalizada, precisamos agora exibir estes registros, para isto vamos criar a área de Visualização das Notícias.

Segue abaixo o código, e logo em seguida comentários sobre ele.

<?php
require_once(”database.php”);

$sql = “SELECT * FROM noticias ORDER BY data_cadastro DESC”;

$result = mysql_query($sql);

if(mysql_num_rows($result) > 0) {

10º while($tupla = mysql_fetch_object($result)) {
11º $titulo = $tupla->titulo;
12º $texto  = $tupla->texto;
13º ?>
14º
15º <div class=”noticias”>
16º <h4><?=$titulo?></h4>
17º <p class=”texto”> <?=$texto?> </p>
18º </div>
19º
20º <?php
21º }
22º }else {
23º ?>
24º
25º <div class=”noticias”>
26º <p class=”texto”> Nenhuma Notícia cadastrada no momento. </p>
27º </div>
28º
29º <?php
30º }
31º ?>

Linha 2, incluimos o arquivo que faz a conexão no Banco de Dados.

Linha 4, criamos uma variável com a SQL necessária para seleção dos dados na tabela notícias, criada no Módulo 01, caso você tenha dúvida sobre a sintaxe utilizada, você pode consultar aqui ou aqui, além de obviamente deixar seu comentário com a dúvida.

Linha 6, executamos a SQL criada na linha 4 através da função mysql_query.

Linha 8, verificamos se o número de registros retornados é maior que zero, ou seja, se existe alguma notícia cadastrada naquele momento, para verificarmos isto usamos a função mysql_num_rows.

Linha 10, percorremos cada linha selecionada com a função mysql_fetch_object, sendo que esta função nos retorna o registro em forma de objeto. Poderiamos pegar de outras formas, como pela função mysql_fetch_array.

O restante do código, simplesmente apresenta na tela os dados selecionados.

Para conferir como ficou nosso mini-sistema:
http://www.andersonarcenio.com/exemplos/tutorial_php_mysql_modulo_4

Para fazer o download do código-fonte.
http://www.andersonarcenio.com/exemplos/tutorial_php_mysql_modulo_4.rar

Tutorial - PHP / MySQL - Módulo 03

Pois bem, neste momento nosso mini-sistema possui já sua área de Login e com isso podemos partir para área de Cadastro das Notícias.

Segue abaixo o código, e logo em seguida comentários sobre ele.

<?php
require_once(”database.php”);

function insereNoticia() {
extract($_POST);

$data_atual = date(’Y-m-d’);

$sql = “INSERT INTO noticias(titulo, texto, data_cadastro) VALUES (’”.$titulo.”‘, ‘”.$texto.”‘, ‘”.$data_atual.”‘)”;
10º $result = mysql_query($sql);
11º
12º return $result;
13º }
14º
15º if($_SERVER['REQUEST_METHOD'] == “POST”) {
16º
17º $return = insereNoticia();
18º
19º if($return) {
20º $msg = “Cadastro efetuado com sucesso!”;
21º }
22º else {
23º $msg = “Ocorreu um erro durante o processo!”;
24º }
25º
26º }
27º
28º ?>

Linha 2, incluimos o arquivo que faz a conexão no Banco de Dados.

Linha 4 a 13, é criada a função que faz a inserção da notícia.

Linha 5, chamamos a função extract, que importa os valores digitados nos inputs advindos do formulário de cadastro, submetidos pelo método POST.

Linha 7, salvamos a data atual com o formato padrão do MySQL através da função date, para posterior cadastro no Banco de Dados.

Linha 9, criamos uma variável com a SQL necessária para inserção dos dados na tabela notícias, criada no Módulo 01, caso você tenha dúvida sobre a sintaxe utilizada, você pode consultar aqui ou aqui, além de obviamente deixar seu comentário com a dúvida.

Linha 10, executamos a SQL criada na linha acima através da função mysql_query.

Linha 15 a 26, verificamos o método de requisição, da mesma forma que foi realizado no Módulo 02, após isso chamamos a função criada insereNoticia, verificando seu retorno para setar a mensagem que será mostrada após o cadastro para o usuário. Lembrando que a função mysql_query, retorna verdadeiro, em caso de sucesso, ou falso, caso ocorra algum erro, para SQLs do tipo Insert conforme fizemos.

Para conferir como está nosso mini-sistema até o momento:
http://www.andersonarcenio.com/exemplos/tutorial_php_mysql_modulo_3

Para fazer o download do código-fonte.
http://www.andersonarcenio.com/exemplos/tutorial_php_mysql_modulo_3.rar

Tutorial - PHP / MySQL - Módulo 02

Temos como objetivo para este módulo a explicação de como fazermos o login no mini-sistema, como sempre gosto de salientar, tenho feito os códigos da maneira mais simples e direta possível, para que o público que considerei como alvo para estes tutoriais, consigam acompanhar, se você já está em um nível um pouco maior e quiser discutir sobre questões de segurança e complexidade do código, fico a disposição também.

A forma que utilizei no exemplo, não é a única à ser utilizada para se efetuar login em php, existem outras como, através da utilização de Cookie.

Segue abaixo o código, e logo em seguida comentários sobre ele.

<?php
session_start();

if($_SERVER['REQUEST_METHOD'] == “POST”) {

$usuario = $_POST["usuario"];
$senha = $_POST["senha"];
8º
if($usuario == “exemplo” && $senha == “xhtml”)  {
10º
11º $_SESSION['usuario'] = $usuario;
12º
13º header(”Location: cadastro.php”);
14º
15º }
16º else {
17º header(”Location: login.php”);
18º }
19º
20º }
21º
22º ?>

Logo na linha 2, temos um dos pontos chaves, a função session_start() inicia uma sessão, mas o que é uma sessão? Segundo o php.net, “Sessões no PHP consiste em uma maneira de preservar certos dados atráves dos acessos subsequentes..”, e com isso conseguimos controlar se o usuário está logado ou não.

A linha 4, serve apenas pra checarmos se a forma de acesso ao arquivo está sendo feita através do método “post”, ou seja, se está sendo acessado após o formulário ter sido submetido.

Linhas 6 e 7, armazenamos nas variáveis os valores digitados nos inputs respectivos.

Linha 9, verificamos se os valores digitados correspondem aos corretos, é neste ponto que fazemos a validação. Fica claro que, por se tratar de um exemplo, esta validação está sendo feita de forma direta, normalmente, se estivessemos tratando de um sistema de uso real, fariamos esta validação, com algumas questões de segurança, além de acesso à um Banco de Dados, e não diretamente por código.

Você ainda verá algo neste sentido aqui nos tutoriais.

Linha 11, aqui setamos a variável global $_SESSION, é com ela que controlaremos certas operações nas outras páginas.

Linha 13, redirecionamos para a página cadastro.php .

Agora, segue abaixo o código para fazermos o logout.

<?php
session_start();

unset($_SESSION);

session_destroy();

header(”Location: login.php”);
?>

Linha 4, destruímos a váriavel em questão.

Linha 6, a funcão session_destroy() destrói todos os dados registrados em uma sessão.

Para conferir como está nosso mini-sistema até o momento:
http://www.andersonarcenio.com/exemplos/tutorial_php_mysql_modulo_2

Para fazer o download do código-fonte.
http://www.andersonarcenio.com/exemplos/tutorial_php_mysql_modulo_2.rar

Twitter e o medo da Popularização

Tenho visto muita gente discutindo no Twitter, sobre “o Twitter estar virando o novo Orkut”, portanto vou expressar minha opinião à respeito.

Acredito que um pouco deste medo repentino, deve-se a reportagem de capa feita na revista Época,  dado o grande alcance que possui a revista, mas esta não foi a primeira e com certeza não será a última vez que outra mídia fala sobre ele, já vimos alguns jornais e programas de TV comentarem sobre a ferramenta.

O próprio criador do Twitter disse, que em 5 anos ocorrerá essa popularização, que “pessoas normais” irão utilizar a ferramenta de micro-blogging. Você pode ver esta entrevista aqui.

Existem alguns pontos à serem discutidos:

- Egoísmo.

Sim, egoísmo, as pessoas tem mania de querer que as “coisas boas” que utilizam, fiquem só para elas, tem medo de que a grande massa descubra e passe a usar também, que vire “modinha”.

Confesso que já fui assim, vou citar um exemplo fora desse contexto, à alguns anos atrás, quando eu era mais “moleque” ( me senti velho agora ), curtia punk rock / hardcore melódico / emocore, usem o rótulo que quiser, e ia em shows de bandas como CPM22, Dead Fish, NxZero, numa época em que somente o pessoal do meio conhecia.  Quando começaram a tocar em rádios, aparecer na MTV e afins, muitos dos fãs se revoltaram com as bandas. Alguns pontos realmente mudam, como o clima dos shows, o contato que era possível ter com as bandas, conversar diretamente com eles, mas o que via mesmo nas pessoas, é que não gostavam que suas bandas favoritas fizessem sucesso, pelo simples fato de que com isso aumentaria o número de fãs, egoísmo puro, não? Se a pessoa curtisse mesmo a banda, ela ficaria feliz pelo sucesso, de ver que o trabalho deles estava sendo reconhecido.

- Mídia social

O Twitter classifica-se como uma rede social, correto? Logo isto inclue todas as pessoas, e não somente um grupinho seleto deles.  E a inclusão digital? Você não valoriza isto? O Orkut é um dos grandes responsáveis pela inclusão de classes baixas na Internet e até mesmo na própria Informática. Seria ótimo que o Twitter colaborasse da mesma forma, é bom para todo mundo, inclusive para o pessoal “geek” que não quer a popularização do Twitter, afinal se você trabalha com internet, é interessante que mais pessoas comecem a utilizá-la de fato.

- Privacidade e Segurança

Se você tem medo dos “miguxos e semi-analfabetos”, como alguns são taxados no Orkut, apareçam no Twitter, eu me pergunto porque? Lembre-se que é você que escolhe quem você segue ou não, lembre-se que você pode bloquear seus updates, lembre-se que você pode bloquear certos seguidores.
Um ponto que acho que devemos nos preocupar é com a propagação de vírus, o que acontece muito no Orkut, já que no Twitter temos a compressão das urls o que pode colaborar com isso, mas com certeza existe uma solução para tal problema.

Pra finalizar, para os que não querem essa popularização, fiquem tranquilos, não serão todos que chegarão no Twitter e continuarão nele, é uma rede social totalmente diferente do Orkut, no Twitter não temos galerias de fotos, não temos aplicativos como BuddyPoke, logo muitos não acharam graça, ou mesmo utilidade para tal, tem dúvida? Veja alguns dos posts neste tópico da comunidade do Twitter no Orkut.

Tutorial - PHP / MySQL - Módulo 01

Antes de começar este módulo, vou primeiro comentar aqui com vocês, um fato que achei bastante interessante, após reparar que várias visitas estavam vindo através de certas palavras-chave pela busca orgânica do Google, fiz uma pesquisa rápida para ver meu posicionamento, e o resultado foi o seguinte:

“mini curso xhtml” : 1ª Página, 1ª Posição
“curso xhtml” : 1ª Página, 4ª Posição
“tutorial xhtml” : 3ª Página

Obs: Obviamente, se você ler este post no futuro, provavelmente estas posições estarão diferentes.

Bacana, espero que apesar de simples, estes tutoriais estejam sendo úteis para alguém.

Bom, vamos lá então, ao nosso primeiro módulo de PHP / MySQL que tem como objetivo a criação do banco de dados que será utilizado no mini-sistema.

Se você está usando como ambiente para desenvolvimento, o software EasyPHP, que citei no Módulo 03 de XHTML, iremos usar a ferramenta que ele disponibiliza, o phpMyAdmin para criar nosso Banco de Dados MySQL. Caso utilize outra forma, não terá problemas também, pois estarei colocando o SQL necessário para criação das tabelas.

A primeira tela após aberto o phpMyAdmin, apresenta a você a opção de criar um novo Banco de Dados, para isso, digite o nome:  “mini_sistema_noticias” e clique em Criar.

Criado o Banco, vamos a tabela agora, nesta tela seguinte, você tem a opção de adicionar uma nova tabela, para isso, digite em:

Nome:  noticias
Campos: 4

Na próxima tela, iremos criar os campos desta Tabela.

Campo 1:  id   int   unsigned   not null   auto_increment   chave-primária
Campo 2:  titulo   varchar(100)   not null
Campo 3:  texto   text   not null
Campo 4:  data_cadastro   date   not null

Feito, é esta simples tabela que irá armazenar as notícias cadastradas no exemplo.

Eu, particularmente não gosto muito de criar tabelas e adicionar campos da forma que citei acima, se você é como eu, ou não está utilizando o phpMyAdmin, abaixo estão os SQLs necessários para criação.

CREATE DATABASE `mini_sistema_noticias` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

CREATE TABLE `noticias` (

`id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`titulo` VARCHAR( 100 ) NOT NULL ,
`texto` TEXT NOT NULL ,
`data_cadastro` DATE NOT NULL ,
PRIMARY KEY ( `id` )

);

Obs: Volto a ressaltar que estes tutoriais, tem como público-alvo, pessoas que estão iniciando, por isso estou tentando fazer da forma mais simples possível, é obvio que,  numa outra ocasião as coisas seriam mais complexas e completas.

Links:

http://www.w3schools.com/sql - Tutorial de SQL da w3schools ( Inglês )
http://dev.mysql.com/doc/refman/4.1/pt/reference.html - Referência para MySQL ( Português )

Tutorial - PHP / MySQL

Desenvolvemos durante o Tutorial de XHTML as páginas estáticas que iremos utilizar para desenvolver o mini-sistema de notícias, agora no Tutorial de PHP / MySQL iremos torná-las dinâmicas, fazendo a programação necessária para que o mini-sistema funcione.

O tutorial será dividido em 4 módulos:

  • Criação do Banco de Dados MySQL
  • Login
  • Cadastro
  • Visualizar

Breve, começamos!

Links:

http://www.php.net - PHP

http://www.mysql.com - MySQL

Tutorial - XHTML - Módulo 04

Antes de mostrar maneiras de validar seu código XHTML, vou falar um pouco da importância de se ter um código-fonte validado.

Primeiro ponto, que na minha concepção é bastante relevante, visto a grande difusão que hoje existe emcima de um bom posicionamento nos mecanismos de busca, um código bem feito, seguindo os padrões existentes, colabora para uma maior indexação do conteúdo do seu site, já que graves erros no código dificultam à leitura por meio dos motores de busca.

E por experiência própria, em um projeto recente, confirmo a afirmação que fiz acima, claro que, não somente um código bem feito lhe trará bons resultados na busca orgânica, então se quiser ler mais à respeito de possíves técnicas para se adotar, leia mais sobre SEO ( Search Engine Optimization), um link que recomendo:

Mestre SEO - www.mestreseo.com.br

Segundo ponto, um código validado, lhe garante uma maior compatibilidade com os browsers existentes hoje, aliás não somente com os de hoje, como também com os futuros que teremos. Além dessa compatibilidade, nos evita de enfrentar erros estranhos e difíceis de se resolver.

Terceiro ponto, e visto de forma bem interessante pelo Marco Gomes, trata-se de que os validadores são a prova para seu cliente, já que provavelmente ele não entende nada de XHTML, e precisa ter uma segurança maior de que seu trabalho está bem feito e seguindo as regras existentes.

Você pode ver um pouco mais sobre o porque validar seus códigos, aqui, aqui ou aqui.

Apresentado alguns motivos, vamos à alguns links onde é possível validar:

http://validator.w3.org/

http://www.htmlvalidator.com/

http://watson.addy.com/

http://www.dasilva.org.br/

Confesso que somente utilizo o primeiro link citado, da W3C, mas fica os outros como opções.

Com isso, finalizo este mini tutorial de XHTML, na próxima semana começo o de PHP / MySQL.

Tutorial - XHTML - Módulo 03

Como falado na apresentação deste tutorial, este módulo é destinado à apresentar as telas que vamos utilizar para construir o mini-sistema de notícias.

Antes de demonstrá-las, vou falar a respeito de um programa que acredito que será útil para vocês testarem o que estamos fazendo, caso, não possuam outro ambiente adequado para isto, este programa chama-se EasyPHP.

Na verdade, EasyPHP não é só um programa, mas sim, três em um. Por um lado temos o Apache, o servidor mais popular de páginas web. Por outro lado o MySQL, um dos mais difundidos bancos de dados, e por fim o PHP.

É um programa que permite dispor dos três componentes indispensáveis para programar o nosso mini-sistema de notícias em seu próprio computador, com um download rápido e uma instalação sem nenhum tipo de problema ou necessidade de configuração adicional.

Segue abaixo alguns links:

http://www.easyphp.org - Site Oficial do EasyPHP

http://sourceforge.net/project/showfiles.php?group_id=14045 - Link para Download

Feito isso, segue abaixo o link de onde estarão os telas do mini-sistema:

http://www.andersonarcenio.com/exemplos/tutorial_xhtml_modulo_3

Como puderam perceber, fiz algo simples e rápido, com intuito apenas de demonstrar e servir como base para que criem a de vocês.

Para download dos arquivos, clique aqui.

Caso tenham alguma dúvida com relação ao XHTML das páginas, é só comentar.

Observação: O Login e o Cadastro não estão funcionando, nesta parte do tutorial demonstro apenas as telas que serão utilizadas, quando começarmos o Tutorial de PHP, aí sim os formulários passarão a funcionar.