Dica: Baixando e convertendo automaticamente vídeos do YouTube

“Talvez você ainda não tenha ouvido falar no site http://www.youtube.com , mas é um grande sucesso para o compartilhamento e distribuição de vídeos na Web. O site é uma excelente alternativa para se criar vídeos de todos os gêneros e inclui-los em qualquer lugar na Internet. Isto é você compartilha o vídeo depois pode embuti-lo em uma página web para ser exibido em um player em flash diretamente do servidor do YouTube.com. Desta forma sem ter que hospedar o vídeo, não há consumo de tráfego (banda) em sua página. O bom é que o site já traz os códigos prontos para incluir o vídeo em qualquer página web. O que é melhor ainda é que pode-se distribuir, desta forma, qualquer vídeo que já tenha sido compartilhado por alguém. Não é demais?

O desconforto para alguns usuários, principalmente do Linux, é que o vídeo é executado através de um player feito em flash e o suporte ao flash para Linux está bem desatualizado (não saiu ainda da versão 7). Outro 'problema' é que muitas pessoas querem guardar o vídeo para poder assistí-lo a qualquer hora e sem estarem conectadas.

Para resolver o problema de baixar os vídeos existem diversas soluções mas mesmo depois de salvar o vídeo o usuário pode continuar com o problema do flash, pois o formato será o .flv, necessitando de outro programa para exibi-lo. Para resolver os dois problemas (baixar e converter) utilizaremos o downtube. O downtube é um programa para fazer download e conversão dos vídeos do YouTube. É um projeto do codigolivre.org.br e pode ser encontrado em http://downtube.codigolivre.org.br.

Como pré-requisitos tenha previamente instalados os programas: wget, mplayer/mencoder com os codecs e o python.”

A nota foi enviada por Wanderson Santiago dos Reis (wandersonsreisΘgmail·com), que acrescentou este link da fonte para maiores detalhes.

Se gostou da matéria deixe um comentário or subscribe to the feed and get future articles delivered to your feed reader.

Comentários

Nenhum comentário ainda.

Deixe um comentário

(obrigatório)

(obrigatório)


Qual sua real função.

Às vezes no inicio da carreira o profissional de web, não consegue se encontrar em qual função ele se encaixa melhor. Faz um pouco de tudo, faz o layout, gera html, faz o planejamento de banco de dados, integra todo mundo, faz os testes, hospeda, dá suporte e cobra o cliente.
Simplesmente um multitarefa ambulante. Muitas vezes torna-se necessário, mas isso prejudica, por ele não se especializar numa determinada área, o que influenciaria muito em sua carreira.
Eu tive esse serio problema, como comecei na área de informática com o “bum” da internet, acompanhei o nascimento de varias tecnologias, algumas que nem  cheguei a conhecer muito bem por que deixaram de existir, antes disso, mas enfim. Programei pra desktop, em basic, Visual Basic, Delphi, adoro programar, mas sentia que ainda não era bem isso, sempre gostei de Corel Draw, Adobe Photoshop, trabalhar com criação publicitária.
Eu relutei para aderir ao Macromedia Dreamweaver, pois usava o Allaire HomeSite, Macromedia Flash.
Quando comecei a aprender javascript, que na época todo mundo achava que era a mesma coisa que Java. Entrei nas linguagens de Server Side com ASP, onde comecei a usar Microsoft Access como SGBD. Logo após entrei em uma empresa que trabalhava com Cold Fusion. Algum tempo depois estava me adentrando no mercado de Software Livre com o php3 e o MYSQL. Em questão de banco de dados foi uma migração menos dolorida, por que já tinha conhecimentos em Firebird e Sybase, mas a estruturação do ASP e do Cold Fusion em relação ao PHP foi meio penosa, mas persisti.
Como eu trabalhava de freelancer, e dava aulas, meio que parei com desenvolvimento web, fiquei só trabalhando com Criação, principalmente para web, onde criei uma intimidade com Macromedia Flash, e perdi a implicância com o Macromedia Fireworks, aprendi que cada um é ótimo na sua área, e acho que a maioria dos designers também, em relação à eterna briga dele com o Photoshop. Sempre fiquei no fogo cruzado, entre desenvolvedores e designer, porque desenvolvedores nunca faziam uma aplicação esteticamente agradável e designer nunca concebiam aplicações funcionais.
Sempre tentei unir os dois na medida do possível, mas logo percebi que não estava sozinho nessa peleja.
Logo estavam fazendo sites ou aplicações mais agradáveis visualmente, os usuários agradeciam e agradecem até hoje, viva a acessibilidade e a usabilidade.
Só que se criaram outros vícios, que ou o site era em Flash, ou o site não era atual, como com o advento da web 2.0, se eu usar Flash, tabelas ou não possuir nada de AJAX, o site é ultrapassado, não existe uma mediação.
Mesmo depois de percorrer todo esse caminho com idas e voltas, hoje estou me especializando em PHP, MYSQL, tendo como foco usabilidade e acessibilidade, sendo usando Flash, AJAX, e que tenha uma construção lógica bem concebida e com uma estética agradável.

Se gostou da matéria deixe um comentário or subscribe to the feed and get future articles delivered to your feed reader.

Comentários

Nenhum comentário ainda.

Deixe um comentário

(obrigatório)

(obrigatório)


Classes em PHP 5

Um objeto se define indicando que propriedades e funcionalidades têm. Justamente essas declarações são o que é uma classe. Quando se faz uma classe simplesmente se especifica que propriedades e funcionalidades têm. Por exemplo, um homem poderia ter como propriedades o nome ou a idade e como funcionalidades, comer, mover-se ou estudar.

Na classe homem, declararíamos dois atributos: a idade ou o nome, que seriam como duas variáveis. Também deveríamos criar três métodos, com os procedimentos a seguir para que o homem possa comer, mover-se ou estudar. Estes métodos se definem declarando funções dentro da classe.

O código para definir uma classe pode ser visto a seguir:

class home{
var $nome;
var $idade;

function comer($comida){
//aqui o código do método
}

function moverse($destino){
//aqui o código do método
}

function estudar($diciplina){
//aqui o código do método
}
}

Poderá se comprovar que este código não difere em nada das versões anteriores de PHP, que já suportavam certas características da POO. Esta situação mudará explorando um pouco mais as características mais avançadas de PHP 5, que implicarão melhoras que não estavam presentes nas versões anteriores

Instanciar objetos a partir de classes

Vimos que uma classe é somente uma definição. Se quisermos trabalhar com as classes devemos instanciar objetos, processo que consiste em gerar um exemplar de uma classe.

Por exemplo, temos a classe homem anterior. Com a classe em si não podemos fazer nada, mas podemos criar objetos homem a partir dessa classe. Cada objeto homem terá umas características próprias, como a idade ou o nome. Ademais poderá desempenhar umas funções como comer ou mover-se, agora também, cada um comerá ou se moverá por sua própria conta quando lhe for solicitado, sem interferir à princípio, com o que possa estar fazendo outro homem.

Aproveitando, vamos ver como se gerariam dois homens, ou seja, como se instanciariam dois objetos da classe homem. Para isso, utilizamos o operador new.

$carol = new nome();
$jorge = new nome();

Conclusão

É importante se dar conta da diferença entre um objeto e uma classe. A classe é uma definição de umas características e funcionalidades, algo abstrato que se concretiza com a instanciação de um objeto de tal classe.
Um objeto já tem propriedades, com seus valores concretos, e podem ser passadas mensagens (chamar aos métodos) para que façam coisas.

Abaixo uma classe de conexao com o banco de dados e como utiliza-la.

<?
/* Inicio da classe  */
class cMysql {
 var $host; 
 var $db;
 var $user;
 var $pass;
 var $conexao;
 var $sSql;
 var $arrRecordset;
 
 function connect($host, $db, $user, $pass) {
  $this->host = $host;
  $this->db  = $db;
  $this->user = $user;
  $this->pass = $pass;
  $this->conexao = mysql_connect($this->host,$this->user,$this->pass);
  if (!$this->conexao) {
   echo "Não foi possível conectar-se ao Bando de Dados MySQL";
  }else{
   if (!mysql_select_db($this->db,$this->conexao)) {
    echo "Banco de dados não encontrado";
   }
  }
 }
 
 function cMysql(){
  $this->connect('localhost', 'redirecionamento', 'root', 'senhadoroot');
 }
 
 function disconnect(){
  mysql_close($this->conexao);
 }
 
 function free_page_result($recordset) {
  mysql_free_result($recordset);
 }
 
 function get_num_rows() {
  $this->num_rows = mysql_num_rows($this->arrRecordset);
  return $this->num_rows;
 }
 
 function query ($sTipo, $sSql) {
  $this->sSql = $sSql;
  switch ($sTipo) {
      case "select":{
    $this->arrRecordset = mysql_query($this->sSql, $this->conexao) or die(mysql_error('Erro ao executar o Select:'.$this->sSql));
   }
      break;   
      case "insert":{
    $this->arrRecordset = mysql_query($this->sSql, $this->conexao) or die(mysql_error('Erro ao executar o Insert:'.$this->sSql));
      }
      break;
      case "delete":{
    $this->arrRecordset = mysql_query($this->sSql, $this->conexao) or die(mysql_error('Erro ao executar o Delete:'.$this->sSql));
   }
   break;
      case "update":{
    $this->arrRecordset = mysql_query($this->sSql, $this->conexao) or die(mysql_error('Erro ao executar o Update:'.$this->sSql));
   }
   break;
  }
  return $this->arrRecordset;
 }
}
/* Fim da classe  */

/* Forma de Uso */
 $qRedirecionamento = new cMysql;
 $rsRedirecionamento = $qRedirecionamento->query('select','SELECT * from jwt_redirect ORDER BY redirect_time ASC');
 $registros = $qRedirecionamento->get_num_rows();
 for ($i = 0; $i < $registros; $i++){
  echo '<br/> A URL: <strong>'.mysql_result($rsRedirecionamento, $i, "redirect_url").'</strong> foi acessada as '.mysql_result($rsRedirecionamento, $i, "redirect_time");
 }
 $qRedirecionamento->free_page_result($rsRedirecionamento);
?>

Se gostou da matéria deixe um comentário or subscribe to the feed and get future articles delivered to your feed reader.

Comentários

Nenhum comentário ainda.

Deixe um comentário

(obrigatório)

(obrigatório)