quinta-feira, 31 de janeiro de 2013

[Filmes] [Programação] Extrator

Um projeto teste que desenvolvi, cujo o objetivo era realizar a leitura de uma página HTML, e recuperar elementos em formato escrito e filtrado da página.

O Extrator, tem como objetivo pegar informações de filmes e montá-las em formato XML, ele pode ser utilizado para programas que cadastram filmes, poupando tempo em adicionar cada uma das informações. Abaixo a tela principal do programa desenvolvido com Visual Studio em C#.


O funcionamento é relativamente simples, o usuário coloca uma ou mais URL's do filme, separadas por um enter, neste caso baseada no site do CINEPOP ( um dos maiores e completos sites sobre cinema do Brasil ). Após colocar a URL, o usuário informa a ID inicial que deseja para o filme a ser "extraído", e o ano do(s) filme(s). Ao clicar no botão Extrair, o software recebe a página web, lê os elementos necessários, filtra códigos HTML, eliminando-os, e salva a capa encontrada do filme no computador, e o processo está pronto.

Para o exemplo, utilizamos o ótimo filme do Lincoln como base, sua URL ( http://www.cinepop.com.br/filmes/lincoln.php ) e ao clicar em Extrair, o seguinte resultado foi exposto:

  <filme>
    <id>0</id>
    <ano>2013</ano>
    <duracao>150</duracao>
    <dvds>1</dvds>
    <codigo>BD077</codigo>
    <titulo>Lincoln</titulo>
    <tituloOriginal>Lincoln</tituloOriginal>
    <genero>8</genero>
    <idioma>1</idioma>
    <midia>4</midia>
    <sinopse>Daniel Day-Lewis dá vida ao 16º presidente dos Estados Unidos, durante o final de seu mandato, em uma época sangrenta. Em uma nação dividida pela guerra e por fortes ventos de mudança, o presidente Lincoln percorre um caminho de difíceis ações, a fim de terminar a guerra, unir o país e abolir a escravidão. Com coragem moral e força para obter sucesso, suas escolhas nesse período crucial mudam o destino das gerações que ainda estão por vir.</sinopse>
    <elenco>Daniel Day-Lewis, Tommy Lee Jones, Joseph Gordon-Levitt, James SpaderLee Pace, Sally Field, Jackie Earle Haley, Michael Stuhlbarg, John Hawkes, Joseph Cross, David Strathairn, Tim Blake Nelson.</elenco>
    <diretor>Steven Spielberg</diretor>
    <capa>Capas\lincoln_1.jpg</capa>
    <lancamento>25/1/2013 00:00:00</lancamento>
    <cadastro>31/1/2013 00:00:00</cadastro>
    <secao>
    </secao>
  </filme>

Assim, esse software desenvolvido demostra processos para se retirar material necessário da WEB. Ressalto que o objetivo desse software, assim como das informações por ele extraída, são totalmente para estudos.

quarta-feira, 9 de janeiro de 2013

[Filmes] [Prévia] O Homem de Aço

O trailer com mais de 25 milhões de views, já demonstra que o novo filme do Superman, está sendo esperado por todos, após a grande decepção com Superman - O Retorno, e o longo tempo de espera para lançamento de um novo filme, todos nós esperamos ser surpreendidos com a grande produção O Homem de Aço (Man of Steel, título original). Agora vamos a analise da prévia do filme e as expectativas quanto ao trailer. Para isso, assista ao trailer primeiramente.




0:14 - Musica dramática de fundo, no mínimo para demonstrar o quanto esse filme será real em drama, e além disso enfoca que detalhes sombrios podem estar presentes no filme. Vemos o Clark Kent mergulhado sobre a água, acima da água uma luminosidade, provavelmente proveniente de um explosão, confirmada pelos destroços em torno do Clark.

0:14 - Enquanto isso o Clark ( supostamente jovem, pela voz ) diz "O mundo é grande demais, mãe."

0:20 - O Clark aparece, e podemos ver barba ( Ohhhhhh! ) com isso já decidiram demostrar a maturidade do filme, fazendo com que o filme seja mais adulto, e em um Superman que podemos confiar ( ? )

0:20 - Então Marta Kent fala "Então torne-o pequeno" ( A respeito do tamanho do mundo )

0:22 - Aparecem lápis ( ? ) e alguém escrevendo no quadro ( supostamente Clark ). Nesse contexto creio que Clark, em sua infância, será tratado como anormalidade, e possivelmente será demonstrado o afastamento dele com demais pessoas da escola.

0:26 - Enquanto Clark corre pelos corredores da escola, Marta fala "Concentre-se na minha voz!". Então ele aparece segurando os ouvidos, claramente um gesto de proteção contra o mundo, em um local onde se guardam produtos para faxina ( não lembro o nome hoho ) e Marta continua "Faça de conta que ela é uma ilha no meio do oceano. Consegue ver?". E ai mostra o detalhe que eles provavelmente estão na fazenda Kent nesse momento. Volta para o Clark barbudo, e então o Clark jovem fala "Consigo!".

0:42 - Vemos o mar, e um ônibus caindo na água, alguém diz "Meu filho estava no ônibus, ele viu o que Clark fez.", então vemos o Clark segurando a traseira do ônibus.

0:53 - Fazenda Kent, logo após o acidente com o ônibus, Clark sentado na caminhonete, Jonathan Kent se aproximando dizendo "Terá que manter esse seu lado em segredo.", o Clark "O que acha que eu deveria ter feito? Deixá-los morrer?" - Clark barbudo vê um ônibus - Jonathan diz "Talvez." OPA PARA TUDO, inversão de valores aqui, Marta Kent que vai apoiar Clark nos poderes, e Jonathan Kent um pai desesperado que faria de tudo para esconder o filho do mundo ( ? )

1:06 - Clark adulto ( não sei se mais barbudo quanto antes ) aparece em um lugar um tanto alienigina. Onde o Clark diz "Eu tenho tantas perguntas. De onde eu vim?" - aparece um espécie de tubo com formato do caractere S kriptoriano.

1:14 - ( Ohhhhhhhh! ) Superman caminhando pelas geleiras. - voz de Jonathan Kent "Precisa decidir que tipo de homem quer ser quando crescer, Clark. Mas seja quem esse homem for, irá mudar o mundo" - Superman sente o sol em seu rosto, e dispara o voo com excelentes efeitos especiais.

1:46 - Agora é tudo muito rápido. Um lugar sendo destruído ( possivelmente Metropolis ) por um raio azul ( fonte alienigina ). Jor-El e Lara com seu filho no colo. Clark barbudo saindo de um lugar em chamas. Uma nave explode alguma coisa, essa mesma nave pousa na fazenda Kent. Depois vemos a imagem de Zod, e Superman ajoelhado, cuspindo sangue ( ? ). Depois vemos Perry White ( black ) fugindo da destruição em Metropolis. Kripton sendo destruido. Clark barbudo pescando, enquanto luz suspeita aparece no céu. Superman sendo levado por militares. Clark barbudo segurando alguma coisa ( que tem a ver com a explosão no começo do trailer!? ). Superman indo de encontro ao Zod, uma nave saindo de uma gigante explosão. Pessoas observando. Jonathan beijando a cabeça de Clark. Clark ( sem barba ) fugindo com uma menina no colo ( de um suposto furacão em Smallville? )

2:04 - Enquanto passa a foto de Jonathan com o Clark. Superman abraçando Marta. Superman indo de encontro a uma fonte de luz. Mostrando o o uniforme do Superman ( na fortaleza ). Clark diz "Meu pai acreditava que se o mundo descobrisse quem eu era, eles me rejeitariam."

2:09 - Superman sendo arremessado em um cofre. Superman e Lois Lane dão as mãos, cercado com militares. Clark continua "Ele era convencido de que o mundo não estava preparado. O que você acha?" ( provavelmente ele estaria falando tudo isso para Lois Lane ). Militares no cofre onde o Superman foi arremessado . E fim do trailer.



Minha opinião é que Smallville ( quando Clark jovem ) e Kripton serão flashes demonstrados no decorrer do filme. Ou excluindo essa hipótese o filme será mais ou menos assim:

Kripton sendo destruída, o banimento de Zod, assim como Clark sendo enviado a terra. Em Smallville, Clark sente seus problemas na escola, Marta Kent ajudando-o a superar isso. Clark sofre um acidente de ônibus, ele decide salvar o ônibus, tendo uma conversa com Jonathan. Após a morte de Jonathan, Clark preso pelas palavras de seu pai que o mundo não está preparado para seus poderes, ele se isola em um lugar um tanto diferente, ele quer ser um humano, para isso consegue um trabalho como pescador, durante esse processo, provavelmente a nave de Zod chega ( ? ). O barco em que ele estava, sofre um atentado, ele tenta ver sobrevivente, provavelmente não há, ele se sente culpado por isso, ele se afasta mais. Quando dá de encontro ( atraído? ) até o local da fortaleza, onde descobre seus segredos, se transforma em Superman, e volta para Smallville, onde Zod está, e acontece catástrofes lá ( ou a catástrofe acontece antes, onde Jonathan morre, e ele se isola ). Algo faz Clark seguir para Metropolis, lá ele precisa de emprego, acha um emprego temporário que vai ajuda-lo ter uma vida normal ( jornalista ) então Zod o rastreia e vai atrás dele em Metropolis, porém Zod tem um plano, demonstrar que o Superman é o vilão do filme, onde os militares o caçam, porém Superman salva o mundo da destruição.

Claro que isso é minha ideia sobre o filme ( não levem tão a sério ). Mas uma coisa é certo afirmar a linha do tempo do filme:

Clark criança -> Clark jovem -> Clark barbudo ( pescador? ) -> Clark sem barba ( jornalista e Superman )

E ai? Ansiosos para assistirem ao filme?


segunda-feira, 7 de janeiro de 2013

[Cinema] Roteiro

Olá pessoal hoje vou falar sobre Roteiro de Cinema, um processo interessante e fundamental de uma grande produção, sabiam que um roteiro bem escrito desenvolvido para longa-metragem aceitado por uma produtora de filmes, pode sair ao ganho orçamental de 5 mil reais ou mais. Claro que aceitação de um roteiro aqui no Brasil é muito mais difícil do que um roteiro para Hollywood. Entretanto não é impossível.

A essência de um roteiro é transmitir o máximo de informação possível, de maneira facilmente visível ao diretor, com grandes espaços para possíveis correções e inclusive com uma formatação correta de escrita. A encadernação é simples espiral, não precisa de grandes luxos, afinal o mais valioso do seu roteiro está nas palavras escritas. O interessante também, é anexar ao roteiro uma espécie de sinopse argumentativa que descreve o curso do seu roteiro e o defende como uma boa ideia, lembre-se que uma sinopse argumentativa tem uma para cada dez páginas do roteiro.

O importante da sinopse argumentativa ( termo definido por mim, então considerem haha ) é ser desenvolvida antes do roteiro, além de clarear as ideias é muito mais fácil depois desenvolver um roteiro com uma ideia bem desenvolvida anteriormente.

Bom se você não tem ideia de como escrever um roteiro, TENTE, pois nunca vai saber como sairá se não tentar, o importante de tudo é a essência. Vou dar uma dica para quem quiser mais facilidade, existe o software Celtx que é um editor de texto para roteiro. Porém, também é possível desenvolver um roteiro em editores de texto comum, mais demorado o processo, mas em minha recomendação, sempre o caminho mais difícil leva à maior experiência. Vamos começar.

Existe um modelo interessante de roteiro que podemos usar, chama-se master scenes onde para cada página do roteiro equivale a aproximadamente um minuto de filme, assim é possível controlar a duração aproximada do seu roteiro, e evitar um roteiro curto ou longo demais.

ETAPA 1 - SINOPSE ARGUMENTATIVA

Menos falas, mais descrição. Para a sinopse argumentativa, escreva a ideia do seu roteiro, uma história como em um livro, porém menor, e contanto os principais fatos, com suas descrições, e descrições dos seus personagens. E lembre-se, se deseja elaborar um roteiro para 20 minutos de esquete ( episódio de série de tv, por exemplo) é necessário de sua argumentação possua cerca de 2 páginas, uma para cada 10 minutos ( 10 páginas). Após escrita e corrigida, imprima a sinopse argumentativa e a partir será iniciado o roteiro.

ETAPA 2 - PREPARANDO O DOCUMENTO

Em um editor de texto como o Word, define as margens da página da seguinte maneira:

Superior - 2,5 cm | Esquerda - 3,0 cm | Inferior - 2,5 cm | Direita - 3,0 cm

Para a fonte da página defina Courier New tamanho 12. Defina ( em inserir ) a numeração da página no inicio alinhado a direita, com primeira página diferente ( em design ) para que não apareça a numeração na capa. Formate o número de páginas para iniciar em zero ( em inserir ).

ETAPA 3 - A CAPA

Dê oito enters, e escreva o título do roteiro alinhado ao centro da seguinte forma, tudo maiúsculo com ou sem aspas, utilizaremos o filme do Batman, como exemplo: "THE DARK KNIGHT" ou THE DARK KNIGHT.

Dê mais dois enters e escreva a identificação "um roteiro de" ou "story by" alinhado ao centro em minusculo. Dê um enter e escreva o nome e sobrenome do autor ( neste caso, você ). Nas duas ultimas linhas da página escreva o seguinte:

(alinhado a esquerda)                                                                     (alinhado a direita)
Copyright 2XXX                                                                Endereço (seu/seu agente)
Todos os direitos reservados                                                            (000) 0000-0000

ETAPA 4 - PRIMEIRA PÁGINA DO ROTEIRO

Agora vamos começar a escrever nosso roteiro, dê cinco enters e escreva o título do roteiro alinhado ao centro da seguinte forma, tudo maiúsculo com ou sem aspas "THE DARK KNIGHT" ou THE DARK KNIGHT. Escreva FADE IN com dois pontos ao final, alinhado a esquerda ( OPCIONAL ). E comece a escrita do primeiro cabeçalho

ETAPA 5 - DEMAIS PÁGINAS DO ROTEIRO 

A estrutura de cada cabeçalho será explicada a seguir.

ONDE - INT. ( para interior ) EXT. ( para exterior );
PRECISAMENTE ONDE - Local.
QUANDO - DIA ou NOITE.

Um exemplo de cabeçalho abaixo:

INT. ESCRITÓRIO -- DIA

JOÃO se levanta da MESA, e SAI pela porta.

EXT. CIDADE -- DIA

JOÃO observa a cidade, caminhando em direção ao PRÉDIO.

Agora, na minha concepção, somente é interessante colocar um efeito de transição de cena, por exemplo, onde existe um corte simples no filme, antes de iniciar o novo cabeçalho escreva CORTE PARA ou CUT TO com dois pontos ao final, alinhado a direita. Entretanto vale ressaltar que você é o roteirista  não o diretor, por tanto o diretor decide a melhor forma de exibição e cortes de cenas.

Após um cabeçalho sempre vem a descrição, onde detalhes devem ser ressaltados, nunca escreva informações repetidas, sempre descreva um personagem que aparece pela primeira vez em cena. Personagens, algumas ações de entrada e saída e objetos sempre em maiúsculo. Sempre identifique personagens, nada de ambiguidade.

Para diálogos nome do personagem em maiúsculo alinhado ao centro, um enter, fala do personagem também alinhada ao centro.

1. Se a fala for interrompida por uma ação, coloque três pontos, descreva a ação, e continue a fala descrevendo o nome do personagem seguido de (CONT'D).

JOÃO
Olá...

JOÃO ENTRA na sala.

JOÃO (CONT'D)
Tudo bem?

2. Se a fala for interrompida por fim da página, escreva (MAIS) ou (MORE) ao final da página, na seguinte continue a fala descrevendo o nome do personagem seguido de (CONT'D). ATENÇÃO, só utilize esse recuro quando o roteiro estiver finalizado e revisado.

JOÃO
Olá... 
(MAIS)

- fim da página -

JOÃO (CONT'D)
Tudo bem?

ETAPA 6 - ULTIMA PÁGINA DO ROTEIRO

Se utilizou FADE IN no começo do roteiro escreva FADE OUT após dois enters da ultima linda escrita, e logo em seguida, dê dois enters e escreva FIM ou END. Caso não tenha utilizado FADE IN, após dois enters da ultima linda escrita escreva FIM ou END.

CONSIDERAÇÕES SOBRE O ROTEIRO

Em minha opinião o roteiro tem certa liberdade, nada de lenga-lenga, portanto será direto, não use ideias avançadas de pessoas que explicam a escrita de um roteiro, afinal, como se dizem em cada objeto existem milhares de especificações, e a essência se encontram em 20% das especificações.

Portanto um bom roteiro tem capa ( com titulo e nome do criador ), cabeçalhos, descrições e falas. Transições ou posições de câmeras  só se for uma NECESSIDADE MÁXIMA, por exemplo em uma cena de memória do personagem, ou em uma cena onde são exibidos vários outros ambientes simultaneamente, afinal o diretor não vai perder tempo lendo especificações como essas durante a filmagem de cenas simples, muito menos atores que recebem o roteiro.

Espero que tenha ajudado a esclarecer ideias, e vocês iniciantes que já vão utilizar o Celtx sem passar pelo Word, tenho dó da experiencia de vocês :) estúdios com prazos apertados exigem até que seja elaborado rapidamente páginas em WordPad. Se você quer conhecer um roteiro de verdade, veja o roteiro disponibilizado do filme Batman - O Cavaleiro das Trevas em inglês, e se atente as ideias e formas de execução ( http://www.joblo.com/scripts/The_Dark_Knight.pdf ) Até a próxima pessoal.

sexta-feira, 21 de dezembro de 2012

[Programação] [Web] Segurança em PHP

Olá pessoal, resolvi escrever esse big post para abordar brevemente sobre segurança de dados e informações em arquivos php. Muitos programadores não se atentam aos detalhes de segurança, principalmente por php ser uma linguagem web, muito fácil e objetiva. Lembre-se não se limite só ao que conhece. Vamos falar sobre vários aspectos inseguros existentes e como eles podem ser revolvidos facilmente ( rimou? hahaha ).

CROSS SITE SCRIPT
Se dados são importantes, lembre-se não os passe por métodos GET. Por exemplo, no caso de envio do link style.html pela url http://example.com/index.php?link=style.html o usuário poderia facilmente manipular a página a ser aberta. Quando existe a necessidade de enviar informações por GET que sejam necessárias em um formulário, como por exemplo, a string $nome, verifique abaixo:

$nome = mysql_escape_string($_GET["nome"]);

A função mysql_escape_string serve tanto para GET quando para POST e retorna uma string validada, não permitindo uma SQL Injection, por exemplo.

TRATAMENTO DE DADOS
Sempre que possível, trate seus dados com base em seu formato, por exemplo, para dados inteiros, converta-os utilizando métodos em php, veja abaixo:

$codigo = int($_POST["id"]);

Independente do dado recebido, será convertido para inteiro. Como entrada "string12teste" será retornado somente "12".

SQL INJECTION
Nunca passe informações direto do formulário sem validá-las. Caso contrário expressões de SQL poderão ser passadas pelos formulários para manipular sua SQL já montada. Use tratamentos descritos acima.


HTML INJECTION 
Sim, existe e muitos ignoram. Mas a prevenção contra HTML Injection permite que as páginas se mantenham como são sem alterar sua forma. Para isso sempre que não desejar mostrar e manipular a html para o usuário utilize a função strip_tags().


TIPO DE DADO
Sempre verifique ou dê um tipo ao seu dado em variável. Em php variáveis são dinâmicas, podem assumir qualquer forma ou valor por isso armazenamento e verificação do seu tipo é importante. Por exemplo, a variável $codigo recebe valor 1, entretanto podemos definir o tipo desse valor 1, abaixo exemplos:


$codigo = $_GET["id"];
$codigo = $_POST["id"];
$codigo = $_SESSION["id"];
$codigo = $_COOKIE["id"];

Assim o $codigo não poderá ser recebido diretamente como 1. Evitando erros comuns ou propositais de usuários.

SEMPRE VALIDE DADOS SEGUROS POR TIPO
Em uma página onde a variável $autenticar retorna um valor booleano, ela pode ser manipulada caso não possua um tipo. Observe:

Sem declaração de tipo.


if ($autenticar) {
     echo “Usuário autenticado, prosseguir...”;
} else {
     echo “O usuário não está autenticado!”;
}

O usuário poderia fazer uma injeção na URL ?autenticar=true e manipular a entrada como se o usuário tivesse realizado login. Interessante ressaltar que sites como Apostilando.com possuem esse erro, sendo possível fazer download das apostilas manipulando a URL sem fazer login.

Para concertar esse erro, poderia ser declarado um tipo para variável.
if ($_SESSION["autenticar"]) {
      echo “Usuário autenticado, prosseguir...”;
} else {
     echo “O usuário não está autenticado!”;
}

Agora $_SESSION["autenticar"] nunca seria confundido com uma variável $autenticar que pode ser recebida como injeção $_GET.

ERRO COM INCLUDE
Muito cuidado ao utilizar o include, mesmo que a página incluída são seja encontrada, a página atual continua em execução, veremos a seguir.

Inclui uma autenticação, e verifica se obteve ou não sucesso.
include_once “login.php”;

if (!isLoggedIn()) {
     die(“Problemas de autenticação!”);
} else {
     echo “Informações sigilosas do usuário”;
}

No código acima, se a página login não fosse encontrada, continuaria a execução e o php mostraria erro na página exibindo informações importante como o nome da função isLoggedIn(). Para resolver esse problema, basta utilizar require_once ao invés de include_once, pois assim, a página só será executada se a requerida for encontrada.


NÃO EXIBA OS ERROS
Informações importantes podem ser exibidas em erros de MySQL. Evite que a mensagem não seja exibida, e grave-as em um arquivo log. Esse processo pode ser feito alterando as seguintes informações nas configurações do php:


display_errors: 0
log_errors: 1
error_log: /caminho/para/arquivo.log

SEMPRE VALIDE PÁGINAS RESTRITAS
Páginas restritas como de acesso/login/funções, necessitam de validação para não serem acessadas diretamente. Páginas de acesso restrito podem ser validadas com a SESSION aberta, páginas com informações restritas diretamente podem ser validadas com a URL.


RESTRIÇÃO HTML
Em formulários com campo textbox, necessitam ser validados, para que não contenham links, códigos html, ou scripts maliciosos para serem executados. Para isso utilize a função htmlspecialchars() ela irá tratar o código recebido para string texto.

ARQUIVOS VIA UPLOAD
É muito importante verificar o tipo a ser salvo, para que não sejam enviados arquivos proibidos ou potencialmente perigosos para o servidor de dados. Por isso sempre verifique o mime-type do arquivo.

LISTAGENS DE ARQUIVOS E PASTAS
Desabilite a possibilidade de indexes no arquivo .htaccess, isso evita que todos arquivos sejam exibidos. Caso seja preciso listar arquivos ou pastas específicos crie um função php para isso. Para desabilitar indexes, escreva:

Options -Indexes

PREVENÇÃO CONTRA HTML/JAVASCRIPT
Atualmente é comum em navegadores mais modernos a capacidade de alterar o corpo html da página, com isso, funções javascript de validação ou ainda limite de caracteres podem ser desabilitadas facilmente. Para resolver esse problema SEMPRE valide a string no php. Abaixo um exemplo:

Input que recebe o nome com máximo 10 caracteres.
<input type="text" name="nome" id="nome" maxlength="10" />

Se o usuário desabilitar no código o maxlength, haverá problemas, e ocorrerá erros, isso pode ser validado novamente em php, observe:

// Recebe o nome
$nome = mysql_escape_string($_POST["nome"]);

// Valida o nome


if (strlen($nome) > 10)
{ die("Erro na string!"); }

Cuidado com campos tipo hidden, encripte sempre que possível.


PREVENÇÃO EM JAVASCRIPT
Mesmo que o script possa ser manipulado e seja necessária a validação em php como visto anteriomente. Sempre faça scripts em javascript que valide informações na própria página, para evitar que o usuário fique enviando informações e voltando caso ocorra erros.

PREVENÇÃO EM SENHAS
Utilize sempre processos de criptografia de dados ao ler/armazenar senhas em banco de dados.

Bom pessoal, é isso! Aqui nessa postagem alguns dos vários métodos existem, espero que tenham gostado, e aproveitem o máximo do conteúdo aqui descrito, e lembre-se não se limite só ao que conhece ( acho que eu já disse isso LOL )

quarta-feira, 19 de dezembro de 2012

[Programação] Métodos de Classificação - Insertion Sort


Olá pessoal, para compensar dias sem postar hoje iremos abordar sobre os principais métodos de classificação existentes para algoritmos esses métodos tornarão possível classificar objetos salvos na memória, sendo desde arrays até listas mais complexas. O objetivo desses métodos é facilitar a localização entre esses dados não havendo necessidades de montá-los novamente na memória, gastando assim menos armazenamento na memória ao executar diversas tarefas de trabalho com os dados.

O principio dos métodos se baseia na existência de um conjunto de dados e a partir de um valor enviado pelo usuário, utilizados os métodos nesse conjunto de dados, acessando a informação se ela existir. Existem vários métodos de classificação. Vamos abortar o principio e a execução de cada um. Para esse post começaremos com Insertion Sort

Insertion Sort - O método Insertion Sort percorre todo o vetor recebido da esquerda para direita, e à medida que avança deixa os elementos mais a esquerda ordenados. Veremos abaixo o código em funcionamento:

// Função de Insertion Sort que recebe o conjunto de dados
// Em nosso exemplo recebemos um vetor de inteiros
public int[] InsertionSort (int[] vetor)
{
     int j;
     int temp;


     for (int i = 1; i < vetor.Count; i++)
     {
          j = i;

          // Enquanto o J for maior que zero, e o valor anterior for menor que o valor atual
          while ((j > 0) && (vetor[j - 1] > vetor[j]))
          {
               // Será realizada a troca do anterior com o atual
               // Define o temporário como o valor atual
               temp = vetor[j];
               // Define o valor atual como o valor anterior
               vetor[j] = vetor[j - 1];
               // Define o valor anterior como o valor temporário
               vetor[j - 1] = temp;
               j--;
          }
     }

     return vetor;
}

 

domingo, 25 de novembro de 2012

[Projeto] REFg

Olá pessoal,

Um bom tempo sem entrar aqui! Estou envolvido em uns projetos, ai acabo que esqueço e não tenho tempo de postar informações aqui... Entretanto aguarde pois começarei a postar muito mais!

Nesse post estou aqui para falar de um projeto que desenvolvi e que já está online. E foi batizado de REFg! Ele basicamente é um Gerador de Referências produzido por mim, e através dele é possivel desenvolver referências e citações obdecendo as normas existentes da ABNT, de uma maneira mais rápida e objetiva. Fiz esse sistema pensando em estudantes do ensino superior, entretanto atende vários públicos onde se usam referências bibliográficas.

O REFg iniciou-se bem simples e você como usuário beta pode auxiliar na inclusão ou modificações de todos itens que estão contidos lá através do link "Avaliação" do site; ou então enviar um e-mail para 8itoporcento@gmail.com.

Para quem desejar ver, e usar o sistema, abaixo o link provisório:
http://refg.net46.net/

sábado, 22 de setembro de 2012

[Variedades] Galeria de Desenhos

Olá pessoal, estou aqui postando alguns desenhos que desenvolvi. Esses desenhos são os esboços desenvolvidos inicialmente a lápis, e logo após, a caneta para finalizar o desenho. (:


Clark Kent e Lois Lane


Casais I


Casais II


Hora de Aventura


Coyote e Papáleguas


Cartoon I


Baby Panda


Pernalonga


Apenas um Show


Scooby-Doo


Batman


Superman