Arquivo da tag: rss

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";
}
?>

Estatísticas estranhas

ATENÇÃO: Este conteúdo foi publicado há 8 anos. Eu talvez nem concorde mais com ele. Se é um post sobre tecnologia, talvez não faça mais sentido. Mantenho neste blog o que escrevo desde os 14 anos por motivos históricos. Leia levando isso em conta.

A linha verde é a quantidade de subscribers do feed desse blog, segundo o Feedburner. A linha azul é a quantidade de vezes que um artigo foi lido (ou clicado) por algum desses leitores.

Feed Statistics

Como vocês podem notar, antes de eu criar este blog o feed estava estabilizado em 100. Logo que eu criei a quantidade de leitores aumentou substancialmente até quase 200. De um dia pro outro, de repente, como se para me confundir criando uma parábola, a quantidade de leitores começou a diminuir muito. Agora chegou em 78 (menos que eu tinha antes de começar a escrever).

Alguém tem algum palpite para o que está havendo?

Feeds RSS para fotologs

ATENÇÃO: Este conteúdo foi publicado há 11 anos. Eu talvez nem concorde mais com ele. Se é um post sobre tecnologia, talvez não faça mais sentido. Mantenho neste blog o que escrevo desde os 14 anos por motivos históricos. Leia levando isso em conta.

Não tenho programado absolutamente nada, a não ser nos trabalhos remunerados. Eu vejo a programação como uma arte… Programar é como compôr uma música, pintar, atuar; é preciso haver inspiração. Eu não ando inspirado para programar, mas nesse caso a necessidade me levou a criação de um script que pode ter utilidade para algum leitor perdido…

No ano passado, eu escrevi um script que gerava feeds RSS para fotologs do fotolog.net. O tempo passou, o meu usuário na UNICAMP foi deletado e nessa semana eu voltei a ter a necessidade de acompanhar um fotolog. Então, resolvi reescrever o script, agora com mais funcionalidades:

  • Compatível com Bloglines
  • Tem como descrição o “título” que o usuário coloca no Fotolog.net.
  • É atualizado sempre que há novos comentários nos últimos 6 posts.
  • Você pode comentar de dentro do seu leitor de feeds (ele copia o formulário de comentário pro feed).
  • Ele faz cache de tudo.

Resolvi presentear todo mundo usando o presente que a Dreamhost me deu no mês passado: 200gb de espaço e 2tb de banda tinham que servir pra alguma coisa no meu servidor. Então, ao invés de disponibilizar o código, eu criei uma página PHP que gera o feed que você quiser para você:

http://fotolog.tiagomadeira.net/USUARIO

Para ver um feed em ação no Bloglines, entre no meu diretório de feeds e procure um feed com prefixo “fotolog.com/”.

Depois de acabar de criar o script, ainda lembrei que o IE7 foi lançado nessa semana com suporte a feeds! Então, esse negócio pode ser útil pra bastante gente.

Acompanhe os fotologs dos seus amigos no Bloglines, divulgue aos seus amigos, comente sugerindo melhorias; aproveite enquanto eu ainda estou inspirado pra corrigir os defeitos! =)

Bill Gates é o nosso herói!

ATENÇÃO: Este conteúdo foi publicado há 11 anos. Eu talvez nem concorde mais com ele. Se é um post sobre tecnologia, talvez não faça mais sentido. Mantenho neste blog o que escrevo desde os 14 anos por motivos históricos. Leia levando isso em conta.

É engraçado a imagem do Bill Gates que a mídia tem feito com algumas notícias… Não sei se é ele que realmente está se tornando um ser humano ou ele está sendo pressionado assim e está tendo que se fazer pra brigar com o Google e o Yahoo (claro que esse segundo motivo é bem mais provável e, quem conhece o Bill Gates, sabe muito bem disso). Dessa vez eu li no meu feed de tecnologia do Terra uma notícia de um menino de 10 anos que presidiu a Microsoft por um dia.

Mas o pior mesmo foi aquela outra dos caras da Microsoft quererem padronizar o símbolo do RSS. Pô… Quando é que a Microsoft tentou padronizar alguma coisa na história? :D Eles estão realmente mudando. E acho que isso não é muito legal, porque eles parecem estar fazendo isso por interesse. Vejo um Google cada vez mais capitalista e, mesmo com propostas legais de software livre e talz, tá se unindo com a Microsoft em várias coisas. Não era esse o final que eu esperava para essa história.

De qualquer maneira, o bom é que a Microsoft está começando a desenvolver coisas livres também e parece que vamos ter uma mudança bem grande aí na internet nos próximos 10 anos por causa de todos esses acontecimentos, da Web 2.0 e dessas parcerias.

Fotolog.net Feed

ATENÇÃO: Este conteúdo foi publicado há 11 anos. Eu talvez nem concorde mais com ele. Se é um post sobre tecnologia, talvez não faça mais sentido. Mantenho neste blog o que escrevo desde os 14 anos por motivos históricos. Leia levando isso em conta.

[update] O script foi reescrito aqui e está muito mais interessante agora! :-) [/update]

Não sei se isso já não existe; Não sei se ninguém nunca sentiu falta. Afim de valorizar feeds RSS e acompanhar fotos de amigos, resolvi criar um feed para fotologs do Fotolog.net.

Fotolog.net Feed

Eu disponibilizei o código aqui: ff.phps mas o script para uso coloquei no “meu servidor super-poderoso” na UNICAMP: ff.php, por um motivo óbvio: economia de banda. Só que os caras da UNICAMP devem excluir o meu usuário algum dia, por isso sugiro que você pegue o código e coloque no seu servidor. Só precisa ter fopen_wrappers (quem que já programou em PHP e nunca viu aquela mensagem no manual: Tip: You can use a URL as a filename with this function if the fopen wrappers have been enabled? :D )

Hmmm… Talvez esse código tenha algum bug. Não sei o porquê de nenhum dos meus feeds funcionarem no Google Reader. Quem tiver afim de corrigir, me manda o novo arquivo que arrumarei com enorme satisfação (e aproveita pra me ensinar onde foi que eu errei!). Além disso, tenho dúvidas sobre se a foto pode ser aberta de fora do Fotolog.net. No Bloglines, só consegui visualizar as fotos que eu já tinha no cache do navegador. Pra mim isso não faz muita diferença, já que eu gosto de feeds na barra de favoritos do Firefox.

Coisas legais que vi hoje

Feed RSS, Google e OBM

ATENÇÃO: Este conteúdo foi publicado há 12 anos. Eu talvez nem concorde mais com ele. Se é um post sobre tecnologia, talvez não faça mais sentido. Mantenho neste blog o que escrevo desde os 14 anos por motivos históricos. Leia levando isso em conta.

Finalmente implementei o feed RSS que estava faltando na minha página… O Gustavo Custódio, do Colégio, me lembrou de criá-lo e fiz isso agora a noite mesmo…

Segui o padrão do Bruno Torres, porque não tenho muita experiência com feeds XML/RSS e criei até um XSL para não ficar só o feed mesmo, mas ter um “estilo associado a ele”, como diz o Mozilla.

Hmmm… Então agora vocês já podem ver o conteúdo do site via os feeds (o que facilita bastante)… E aproveitem para se encontrarem algum erro (eu fiz na pressa) me avisarem. :)

Hoje coloquei também em minha página o programa Google Adsense. Coloquei um pequeno banner (de 468×60) localizado embaixo do primeiro post da página e outro no rodapé da página e acho que não poluiu e aliás, as cores ficaram discretas e bonitas. :D (hehehe, sou o primeiro cara que diz que gosta de ads no mundo!).

E por falar em Google, nessa semana testei vários serviços deles. Começou com o GoogleTalk e depois que meu irmão colocou rótulo pra “todos” os lugares do mundo no GoogleEarth acabamos realmente nos viciando em Google. Mas os serviços deles são ótimos!

Boatos dizem que o Google vai dominar o mundo e o Pink e o Cérebro trabalham lá. Não sei se é verdade, mas cada vez mais acho que isso realmente faria sentido! Hehehe…

Sábado é a segunda fase da OBM (Olimpíada Brasileira de Matemática) e também começa o Festival de Música de Itajaí. Na Olimpíada, acho que não tenho muita chance e, aliás, nessa semana também andei estudando um pouco (com o César Kawakami inclusive, que me passou umas coisas bem legais sobre Teoria dos Números). No festival, me inscrevi para fazer piano mesmo com o Michel Friedenson.

Depois da semana do festival de música, quero voltar a programar logicamente. Essa semana só tentei fazer coisas em GTK, mas sem muito sucesso (aprendi um pouco de C/GTK, mas depois resolvi PHP/GTK porque PHP é uma linguagem mais completa, mas ainda não decidi nada)…