Mostrando uma agenda do Google Calendar no seu site

Escrito em PHP. Pode ser usado no tema do seu WordPress. Requer CURL. Faz cache do calendário para não ter que baixá-lo sempre que alguém entra no seu site. Desenvolvido para um site que vai sair nos próximos dias. Use, modifique e distribua como quiser. (Não me responsabilizo por qualquer problema. Fiz pra um caso específico. A checagem de erros é meio porca.)

<?php
date_default_timezone_set('America/Sao_Paulo');
$events = Array();
$dom = new DOMDocument();

$file = "cached_calendar.xml";

$last = -1;
if (file_exists($file)) {
    $last = filemtime($file);
}
// Mude 3600 para o tempo (em segundos) que você quiser que o cache expire
if (time() - $last > 3600) {
    $fp = fopen($file, "w+");
    if (!$fp) {
        die();
    }
    // Substitua o e-mail do calendário do Google CodeJam pelo e-mail do seu calendário (público)
    $ch = curl_init("https://www.google.com/calendar/feeds/" .
      "google.com_jqv7qt9iifsaj94cuknckrabd8%40group.calendar.google.com/public/full");
    curl_setopt($ch, CURLOPT_TIMEOUT, 50);
    curl_setopt($ch, CURLOPT_FILE, $fp);
    curl_exec($ch);
    curl_close($ch);
    fclose($fp);
}

$dom->load($file);
$feed = $dom->getElementsByTagName("feed");
$entries = $feed->item(0)->getElementsByTagName("entry");
foreach ($entries as $entry) {
    $children = $entry->getElementsByTagName("*");
    $day = "";
    $start = "";
    $end = "";
    foreach ($children as $child) {
        switch ($child->tagName) {
        case "title":
            $title = $child->nodeValue;
            break;
        case "gd:when":
            if ($child->hasAttribute("startTime")) {
                $st = strtotime($child->getAttribute("startTime"));
                $time_to_sort = $st;
                $day = date_i18n("l, d/M", $st);
                $start = date("H:i", $st);
            }
            if ($child->hasAttribute("endTime")) {
                $et = strtotime($child->getAttribute("endTime"));
                $end = date("H:i", $et);
            }
            break;
        }
    }
    if ($title != "" && $day != "") {
        $events[] = Array(
            "time_to_sort" => $time_to_sort,
            "day" => $day,
            "start" => $start,
            "end" => $end,
            "title" => $title
        );
    }
}
function cmp($a, $b) {
    $a = $a["time_to_sort"];
    $b = $b["time_to_sort"];
    if ($a == $b) {
        return strcmp($a["title"], $b["title"]);
    }
    return ($a < $b) ? -1 : 1;
}
usort($events, "cmp");

$n = count($events);
if ($n > 0) {
    $lastDay = "";
    for ($i = 0; $i < $n; $i++) {
        $day = $events[$i]['day'];
        $title = $events[$i]['title'];
        $start = $events[$i]['start'];
        $end = $events[$i]['end'];
        if ($lastDay != $day) {
            if ($i != 0) {
                echo "</ul>\n\n";
            }
            echo "<h3 class="day"><span>$day</span></h3>\n";
            echo "<ul>\n";
          }
          echo "\t<li>\n";
            if ($start != "") {
                // Você pode modificar aqui para mostrar o horário de término ($end).
                echo "tt<span class="time">{$start}</span>\n";
            }
            echo "\t\t<strong>{$title}</strong>\n";
            echo "\t</li>\n";
          $lastDay = $day;
      }
      echo "</ul>\n";
} else {
    echo "<p>Nenhum evento cadastrado.</p>\n";
}
?>

Como baixar e assistir filmes completos na internet

Todo mundo gosta de assistir filmes, principalmente durante férias ou feriados chuvosos. Se você não tem dinheiro para comprar filmes, acha caro e chato sair para alugar um filme, seus problemas acabaram: ao fim deste artigo você estará qualificado para ser capaz de baixar e assistir qualquer filme (inclusive ainda não lançados aqui no Brasil) sem levantar da sua confortável cadeira de computador.

P2P

Disponibilizar um filme na internet é crime, violação de direitos autorais. Então se você quisesse baixar algum filme que não está disponível sob uma licença livre, você não encontraria o filme que quer baixar simplesmente procurando no Google por “Baixar filme do Harry Potter” ou “Baixar Shrek 3”. Ao invés de procurar na internet convencional, você teria que aprender a se conectar a outras pessoas. Isso é feito através de P2P, peer-to-peer, e existem vários programas neste ramo: Napster (um dos primeiros – acho que o programa não existe mais, mas a rede OpenNap ainda existe), Kazaa (bastante popular, sua rede FastTrack tem um bom conteúdo), Gnutella (rede livre – GNU – onde funcionam vários programas: Limewire, Frostwire, gtk-gnutella, entre vários outros), OpenFT, Ares, etc, etc, etc

Depois de usar durante bastante tempo o giFT, que já foi capaz de se conectar ao mesmo tempo nestas cinco redes (OpenNap, FastTrack, Gnutella, OpenFT e Ares), descobri um novo protocolo, novo e bem mais eficaz: o Bittorrent.

Bittorrent

Segundo a Wikipedia, BitTorrent é um protocolo que permite às utilizadoras e aos utilizadores fazerem download de arquivos indexados em websites. Essa rede introduziu o conceito “partilhe o que já descarregou” maximizando muito o desempenho e possibilitando downloads rápidos e imediatos. Foi criado por Bram Cohen em 2003 e tem sido o alvo nº1 de empresas que lutam em defesa da propriedade intelectual, devido a alegações de violação de copyright de alguns arquivos transmitidos pela rede.

O Bittorrent é provavelmente o mais inteligente dos partilhadores de arquivo da internet. Ele fragmenta os arquivos em pequenos pedaços e você ao mesmo tempo baixa e compartilha o seu arquivo (chamado torrent, com extensão .torrent).

Existem diversos clientes de Bittorrent, entre quais posso recomendar os três que eu já usei: Bittorrent (o original, de Bram Cohen), Azureus (provavelmente o mais pop. Multiplataforma, feito em Java, muitos sites partem do princípio de que você usa ele para distribuir seu torrent) e Deluge (parecido com o Azureus, mas em GTK)

Para baixar seu filme, você deve baixar um destes clientes (programas que abrem os arquivos .torrent).

Encontrando o filme e escolhendo a versão

Existe uma porção de sites que arquivam os .torrent disponibilizados internet a fora. Eu costumo usar o Mininova, mas ao fim deste artigo você encontra outros links interessantes.

Entre no Mininova e procure por “harry potter and the order of the phoenix” em filmes (movies). Sua busca retornou 74 resultados.

Como escolher qual baixar? Seeders são pessoas que estão compartilhando o arquivo, leechers são os que estão baixando. O mais importante é baixar um que tenha bastante seeders, para que seu download não falhe (não acabe de baixar) por falta de partilhadores. Em segundo lugar, veja que existem vários formatos diferentes de vídeo e tamanhos. Você pode optar por um vídeo que caiba num CD, por exemplo (700mb).

Escolhido seu torrent, clique nele, faça download do .torrent e abra com o seu cliente que você baixou no passo anterior. Em algumas horas, dias, meses, anos ou décadas (dependendo da velocidade da sua conexão e do número de seeders e de leechers) o seu filme estará baixado.

Também é bastante fácil baixar livros, seriados americanos, softwares e outros materiais ilegais em redes de torrent.

Encontrando e baixando a legenda

Existem vários sites para baixar legendas (subtitles) dos vídeos que você baixa na internet. Um deles é o Opensubtitles e outro é o Legendas.TV (em geral, é o que eu uso). Crie uma conta lá e procure pelo filme que você quer.

Procure pela mesma versão que você baixou o filme (o nome completo, exemplo nome-Xvid-aXXo-mavericK…), porque aí não há risco da legenda ficar mal sincronizada. Se não achar, não se preocupe: o player pode ressincronizar a legenda.

Usando o MPLAYER para assistir o vídeo

% mplayer [ARQUIVO DO FILME]

» Legenda

Para adicionar a legenda ao seu filme basta usar a opção -sub [ARQUIVO DA LEGENDA] ao comando do mplayer:

% mplayer -sub [ARQUIVO DA LEGENDA] [ARQUIVO DO FILME]

O mplayer é um programa muito mais versátil do que parece. É possível mudar a fonte, a cor e a posição da legenda, ente muitas outras coisas. A maioria dessas opções de legenda são alteradas usando o ASS. Eu costumo assistir os filmes com uma legenda grande amarela embaixo da área do filme widescreen (na faixa preta, porque a leitura torna-se mais fácil):

% mplayer -ass -ass-color FFFF0000 -ass-font-scale 1.2 \
-ass-force-style FontName=Arial,Default.Bold=1 -ass-use-margins \
-ass-bottom-margin 80 -sub [ARQUIVO DA LEGENDA] \
[ARQUIVO DO FILME]

Se a legenda estiver fora do tempo do filme, use as teclas x e z dentro do mplayer para alterar o delay.

» Tela cheia

Adicionando -fs -zoom ao comando mplayer você executa o vídeo em tela cheia:

% mplayer -fs -zoom [ARQUIVO DO FILME]

» Meu comando completo

% mplayer -fs -zoom -ass -ass-color FFFF0000 -ass-font-scale 1.2 \
-ass-force-style FontName=Arial,Default.Bold=1 -ass-use-margins \
-ass-bottom-margin 80 -sub [ARQUIVO DA LEGENDA] \
[ARQUIVO DO FILME]

Dicas para uma melhor sessão de cinema

  • Tem um amplificador ou um aparelho de som? Compre adaptadores pra ligar a saída da sua placa de som neles. São baratos e o som fica muito melhor.
  • Se você tiver um laptop ou um computador com uma placa de vídeo que tenha saída S-VIDEO, ligue o computador na TV. A imagem fica ótima e você se sente assistindo a um DVD de verdade.

Links úteis relacionados

  • Cinecombo (site brasileiro com vários torrents para legenda e um sistema de pedidos de filmes)
  • Bittorrent.com (site do cliente oficial e também busca torrents)
  • Mininova (indexador de torrents)
  • TorrentSpy (outro bom indexador e buscador de torrents)
  • Legendas.tv (baixe legendas em português do Brasil)
  • Mplayer (player de vídeo para Linux)

Importante! Não seja um fora-da-lei.

Não use o que eu escrevi neste artigo para baixar ilegalmente filmes, livros e outros conteúdos protegidos por copyright, hehe.

HOWTO: Como usar Pandora Radio no Brasil

O projeto Pandora é uma rádio on-line que funciona como um catálogo bem categorizado de milhares de CDs e é capaz de reproduzir músicas parecidas com o tipo que você diz para ele que gosta. Ficou confuso? É assim: eu entro lá e escrevo que gosto de Chico Buarque. Aí ele me diz: vamos tocar uma música do Chico que tem suas características principais como canto em português, violão leve, etc. Responda se você gostou ou não e baseado nessa escolha tocaremos outro estilo ou continuaríamos no mesmo.

É uma idéia muito legal porque no fim você ouve apenas o que gosta, mas também descobre novas músicas (porque ele não fica repetindo artista, álbum, música, mas só as características da música ou do artista que você selecionou a princípio).

Fazia tempo que eu não usava o Pandora porque num esforço comunitário de minha família, digitalizamos algumas centenas de CDs criando uma biblioteca de 35 gb em MP3. Porém, meu desktop (Durion 1.1) que era meu servidor de música (MPD) recentemente morreu (a placa-mãe deu pau) e, cansado de ouvir as poucas músicas que tinha aqui no laptop, resolvi ver como andava o Pandora.

Porém, fui surpreendido por uma mensagem dizendo que por causa de copyright brasileiros não podem mais usar o Pandora. Isso é um problema que eles dizem estar conversando com as autoridades para resolver, mas por hora não podem aceitar IPs brasileiros, o que me levou a buscar uma solução.

A primeira coisa que pensei foi procurar um servidor de proxy nos Estados Unidos. É fácil se você entrar no Public Proxy Servers, mas a velocidade deles realmente não me agrada, ainda mais pra ouvir uma rádio on-line. Então, pesquisei um pouco e depois de algum tempo encontrei a solução: SSH tunneling (túneis de SSH?)

Eu uso SSH todo dia e nunca tinha me dado conta que ele tem uma opção super interessante que é numa dada porta criar um tunelamento que pode ser usado como servidor SOCKS (proxy). Aí você pensa: mas qual a vantagem? De qualquer jeito você terá que usar um servidor proxy e ficar com a internet mais lenta. Sim, é verdade, mas o meu servidor na Dreamhost é sem dúvidas muito mais rápido que um proxy público e eu tenho certeza que minhas informações ficam seguras. Aliás, é por segurança que a maioria das pessoas usa SSH tunneling (ex.: pessoas com laptop numa rede wireless pública)

Vamos ao prático:

$ ssh -C -D 666 -N user@host

E configure seu navegador para usar Socks (eu usei V5, mas a V4 deve funcionar também) para o endereço: 127.0.0.1 (isso mesmo, não é o host que você colocou no SSH, é a sua máquina, porque ela que criou o servidor) na porta que você especificou com o parâmetro -D (nesse caso 666)

As opções do SSH que eu utilizei no exemplo são:

  • -C: comprime entrada e saída. Nos exemplos que eu peguei vinha, acredito que seja pras transferências serem mais rápidas.
  • -D [bind:]port: porta (e um endereço opcional) pro servidor rodar
  • -N: não executa nenhum comando (ie não abre um shell)

Esta dica funciona em sistemas operacionais que tem SSH (Linux, FreeBSD e provavelmente qualquer outro Unix-like). Para usá-la no Windows, você deve usar o PuTTy.

© 2005–2020 Tiago Madeira