Archive for the ‘ Programação ’ Category

Listando vídeos do YouTube com PHP

Neste pequeno artigo irei disponibilizar esta classe bem simples para listar os vídeos de um determinado usuário através dos feeds do YouTube.

Para que a classe funcione, é necessário que as extensões cURL e SimpleXML estejam habilitadas no seu servidor apache. Eis o código da classe:


<?php

/**
 * Class YT_Video
 * Get an array of the most recent videos of the specified username
 *
 * @abstract
 * @example $videos = YT_Videos::getUserVideos('username');
 */
abstract class YT_Videos
{
    /**
     * @var string URL to youtube feeds
     * @static URL of youtube feeds
     */
    private static $youtube_feedUrl = 'http://gdata.youtube.com/feeds/base/users/%s/uploads?orderby=updated&v=2';

    /**
     * @static
     * @method array getUserVideos($username) Get the videos from $username
     * @return array Returns an array of videos
     * @return NULL Returns NULL if the user does not exists
     */
    public static function getUserVideos($username)
    {
        $cURL = curl_init(sprintf(self::$youtube_feedUrl, $username));
        curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($cURL, CURLOPT_FOLLOWLOCATION, true);
        $cURL_result = curl_exec($cURL);
        curl_close($cURL);

        $xml = new SimpleXMLElement($cURL_result);

        if($xml->getName() == 'erros') { return NULL; }

        $videos = array();
        foreach($xml->entry as $video)
        {
            /*
             * Separa a URL para pegar o id do vídeo
             */
            $url = (string)$video->link['href'];
            parse_str(parse_url($url, PHP_URL_QUERY), $params);
            $id = $params['v'];

            /*
             * Preenche um array com os dados do vídeo
             */
            $videos[] = array(
                'id'    => $id,
                'title' => (string)$video->title,
                'thumb' => 'http://i' . rand(1, 4) . '.ytimg.com/vi/' . $id . '/hqdefault.jpg',
                'url'   => $url
            );
        }

        return $videos;
    }
}

?>

Agora para usar a classe é incluir ela e chamar de forma estática o método “getUserVideos”. Veja o exemplo:

...
$videos = YT_Videos::getUserVideos('andreoav');
// Este teste verifica se o usuário existe, já que o método retorna NULL caso usuário não exista, ou que algum outro erro tenha acontecido.
if(!$videos)
{
    // Listamos os videos aqui.
}

Espero que tenham gostado!!

Este método é uma implementação em forma de classe baseado no post do Thiago Belem.

Configurando o Visual Studio 2008 para NVIDIA CUDA

Olá, depois de bastante tempo sem postar algo novo, resolvi postar um PDF que fiz para o projeto de Iniciação Científica em que eu sou bolsista na Universidade Federal de Santa Maria (UFSM).

Trata-se de um Tutorial simples porém bem útil para quem está começando agora a desenvolver aplicação utilizando a tecnologia CUDA para programação em GPU.

Confira o PDF aqui: Configurando VS 2008 para CUDA

[Java] Produtividade: Percorrendo Arrays

Olá, as coisas na faculdade andam apertadas! Vários trabalhos… muitos trabalhos… infinitos trabalhos.

Porém hoje voltei ao blog para postar algo que é muito útil: Uma maneira legal, fácil e produtiva de percorrer um Array.

Geralmente usamos o laço for para percorrer um array. Fazemos isso iterando uma variável até que ela alcance por exemplo o fim do array. Exemplo:

String[] str = new String [] {"Brasil", "Argentina", "Alemanha"};
for(int i = 0 ; i < str.length ; i++)
{
   System.out.println(str[i]);
}

O que muitos não sabem (nem eu sabia até pouco tempo) é que em java existe uma maneira muito mais fácil de percorrer Arrays. Veja:

String[] str = new String[] {"Brasil", "Argentina", "Alemanha"};
for(String s : str)
{
   System.out.println(s);
}

O código acima tem o mesmo efeito que o foi mostrado anteriormente. Simples e prático \o

É isso aew… até a próxima.

Via[Brunão]

[C++] Básico sobre: Enum

Neste post irei demonstrar um pouco sobre enumerações em C++, definido através da palavra reservada enum.

Na linguagem C e C++ estamos acostumados a declarar constantes da seguintes forma:

#define BRASIL 0
#define ITALIA 1
#define PORTUGAL 2
#define ALEMANHA 3

Podemos expressar essas mesmas declarações de uma forma diferente usando enumS.

enum Paises
{
   BRASIL,
   ITALIA,
   PORTUGAL,
   ALEMANHA
};

Continue lendo este artigo….

Continue lendo

[C++] Básico sobre: Namespaces

Nesse artigo tentarei mostrar o básico por trás do Namespace do c++. Como base, usei o artigo sobre namaspaces de Juan Soulie, publicado no site www.cpluscplus.com.

Namespaces nos permitem agrupar um conjunto de classes globais, objetos e/ou funções sob um nome. Em outras palavras, eles servem para dividir o escopo global em sub-escopos conhecidos como namespaces.

Continue lendo