Posts filed under 'web'

Voltando

Desculpem a ausência, mas estive meio ocupado por uns tempos:

As novidades são que finalmente passei em Cálculo I (o problema é que semana que vem terei que encarar o Magossi em Cálculo II, eu acho).

Outra novidade é que agora estou usando o Opera. No começo eu achava o Safari melhor (ele renderiza as páginas melhor e ele em si é bem mais “visualmente agradavel”). Mas depois de conhecer o Opera só pude dizer: Wow!

Confesso que comecei a usá-lo apenas porque o Firefox 3 me decepcionou (ao menos não achei ele tudo o que diziam que ele seria), e principalmente porque o Safari não roda em Linux, e agora estou usando meu Mandriva com uma certa frequência.

Claro que o Fernandinho tinha que perguntar “Como você faz para verificar seu Gmail, ou gerenciar seus links no Ma.gnolia?”.

Realmente, o Opera não é um “quebra-cabeça” como o Firefox,  onde você deve ir juntando as pecinhas para que ele funcione corretamente (precisa de extensão para baixar arquivos, extensão para renderizar as páginas, …).

Mas, que seja, o Opera já é um navegador completo, com um cliente de e-mail embutido, que pode ser usado para gerenciar o GMail bem (só cadastrar como uma conta IMAP que você consegue até aplicar os labels nos e-mails).

Mas, se preferir, o Opera suporta widgets, que são mini-aplicativos que você pode rodar no desktop. Dentre estes existe um que eu até gostei, e que pode ajudar nisso. É o multiGmail, que faz exatamente o que as extensões do Firefox fazem: informam se há ou não algum email.

Já para o Ma.gnolia,  como não encontrei nada que pudesse ajudar, resolvi fazer eu mesmo um widget. veja algumas imagens dele sobre a edição desse artigo.

Ma.gnolia Opera Widget Main

Ma.gnolia Opera Widget Config

Claro que ele ainda está em seus passos iniciais, mas acho que não demorará tanto para ficar pronto (ou vai, nunca se sabe).

Outras metas:

  • Estudar a Oracle Call Interface e dar uma ajuda com a DDBI, já que há uma parte na interface com Oracle com um “return null;” que estava me intrigando.
  • Passar esse semestre sem nenhum exame (difícil, considerando Cálculo II, mas é uma meta).
  • Terminar meu primeiro artigo sobre E/S usando Tango (faz tempo que ele está como draft).
  • Brincar mais um pouco com a biblioteca para comunicação serial (e/ou paralela?) em D.
  • Terminar o sistema de comunicação instantânea que eu comecei.
  • E, além de tudo isso, levar uma vida comum (essa parte está difícil).

Add comment 31/07/2008

Gaia Online

Em minha busca por substitutos para o Orgut, encontrei este site totalmente excelente, chamado Gaia Online.

O site é formado por varios fóruns, comunidades (chamadas guilds). É possível adicionar alguém em amizade, construir seu próprio avatar, comprar roupas para ele, montar uma casa, passear pela cidade, jogar alguns games disponíveis, fazer “quests” (atualmente só tem uma disponível, mas outras estão em desenvolvimento).

Ainda há eventos, como o dessa semana, o V-Day (Valentine’s Day – Dia dos namorados), onde o objetivo era sair “beijando” todo mundo e, a cada 5 beijos dados, você recebia um prêmio.

É possível adicionar um pouco de CSS à página de seu perfil, adicionar um plano de fundo…

Também está sendo desenvolvido o tão esperado sistema de batalha.

Gaia Battle SystemGaia Battle System Hosted on Zooomr

Muito bom o site.

A única coisa que talvez possa incomodar um pouco é que o site é em inglês, mas isso não chega a ser um problema.

Bom… meu perfil, ainda em construção, é este.

blogblogs tags:, ,

technorati tags:, ,

Blogged with Flock

86 comments 16/02/2007

A Linguagem D – Estruturas de Controle II

Me desculpem pela pausa, mas tive uns problemas. Agora, continuando com as estruturas de controle em D:

Instrução switch

Essa estrutura é parecida em qualquer linguagem ‘C-like’ (C++, Java, D):

switch(expressão)
{

case comp1 : bloco1; break;
case comp2, comp3, compn : bloco2; break;
default : bloco3; break;

}

Onde “expressão” é qualquer valor que possa ser comparado com “comp1“, “comp2“, etc. Se uma comparação for verdadeira, o respectivo bloco será executado. Se nenhum caso for executado, então default será. break é usado para se sair da estrutura switch depois de executar um bloco. Se ele não for usado, mesmo quando um bloco for executado, os outros valores serão testados até que um break seja encontrado ou o fim da estrutura.

Veja um exemplo (bem besta) de como isso funciona:

import std.stdio;

void main()
{

uint x;
switch(x)
{

case 1 : writefln(“1″); break;
case 2 : writefln(“2″); break;
case 3 : writefln(“3″); break;
default : writefln(“Outro”); break;

}

}

Nesse caso, como não houve uma inicialização explícita da variável, esta terá o valor padrão 0. Sendo assim, nenhum dos casos será verdadeiro, então o bloco default será executado e será exibido “Outro” na janela de console.

Uma diferença entre D e C/C++ com relação à essa instrução é que D aceita strings como expressões e casos.

Veja este exemplo (também meio besta):

import std.stdio;

void main()
{

char[] s;
s = “Oi”;
switch(s)
{

case “oi” : writefln(“1″); break;
case “Oi” : writefln(“2″); break;
case “xau” : writefln(“3″); break;
default : writefln(“default”); break;

}

}

Vale lembrar que essas comparações são são sensíveis ao caso (diferenciam maiúsculas de minúsculas). Sendo assim, será exibido “2″.

Por agora vou parando por aqui. Espero na próxima falar sobre todas as estruturas de repetição. Até lá.

blogblogs tags:, ,

technorati tags:, ,

Blogged with Flock

Add comment 19/01/2007

Jabber Software Foundain muda o nome

Hoje, 16 de Janeiro de 2007, a Jabber Software Foundain mudou seu nome para XMPP Standards Foundation.

Essa era uma atitude já esperada, afinal o nome do próprio protocolo já havia sido mudado de Jabber para XMPP quando foi aprovado pelo IETF.

Provavelmente a mudança se deu também para que o protocolo não seja ligado a nenhuma emprese específica (no caso, Jabber Inc).

Mais detalhes podem ser encontrados aqui.

Para quem não conhece, o XMPP (Jabber) é um protocolo aberto para comunicação em tempo real. Ele já é usado, por exemplo, pelo Google Talk para toda a comunicação. Inclusivo o Google ajudou a implementar extensões para o protocolo, como a parte de Voz (Jingle), por exemplo.

blogblogs tags:,

technorati tags:,

Blogged with Flock

2 comments 16/01/2007

Tags Semânticas que tu podes ter esquecido

Estava eu lendo meus feeds quando me deparei com um artigo no dzone que merece ser citado: Semantic Semantic tags you may have forgotten (ou Tags Semânticas que tu podes ter esquecido.

Realmente, muitas pessoas esquecem destas tags de suma importância para uma web com mais “significado”, por exemplo.

Eis um resumo do artigo:

  • <abbr> – Define uma abreviação. Usando o atributo title tu podes fornecer uma dica sobre a abreviação.

    <abbr title=”Doutor”>Dr</abbr>

  • <acronym> – Define um Acrônimo, parecido com a tag abbr. Usar o atributo title mostrará uma dica que tu podes usar para a explicar o acrônimo.

    <acronym title=”Cascade Style Sheets”>CSS</acronym>

  • <address> – Define o começo de um endereço. Tu deverias usar isso para definir endereços, assinaturas ou autoria de documentos (segundo a W3).

    <address> 3.7 Designs, 320 S. Main Suite B, Ann Arbor, MI 48104 </address>
    <address> Website Design and Content Copyright 3.7 Designs </address>

  • <cite> – indica uma referência para um trabalho alheio, como um livro, reportagem ou site, e pode-se incluir a data da publicação, um link para a publicação e uma descrição da publicação sendo citada.

    <cite> Escrito em 26 de Dezembro de 2006, por Ross Johnson</cite>

  • <code> – Define um código de computação. A tag code por padrão deixará a fonte monoespaçada, mas também define código de computador e deixá-o separado de outro conteúdo.

    <code>#header { margin: 0; font-size: 3em; } </code>

  • <samp> – Define uma amostra de código de computador. Semelhante à tag code, a tag samp deixa o texto monoespaçado e se refere à códigos de exemplo em teus documentos.

    <samp> html, body { margin: 0; padding: 0; } </samp>

  • <del> – define texto que foi deletado. A maioria dos navegadores exibirá um texto tachado, e é usada para mostrar que e como o documento foi atualizado.

    Semântica <del>freqüentemente</del> é importante

  • <ins> – define texto que foi inserido (freqüentemente usada com <del>). A maioria dos navegadores exibirá um texto sublinhado, mas vários ainda m]exibem texto simples.

    Semântica <del>freqüentemente</del> <ins>sempre</ins> é importante

  • <q> – define uma cotação curta. Semelhante à tag blockquote, a tag q define uma cotação curta. Navegadores modernos automaticamente exibirão aspas no conteúdo, porém o IE6 e anteriores não. Alguns usam DOM para solucionar isso.

    <q>Estudando e aprendendo.</q>

Para mais detalhes sobre as tags, veja-as na W3Schools.

blogblogs tags:, , ,

technorati tags:, , ,

Blogged with Flock

Add comment 09/01/2007

Ma.gnolia

Faz algum tempo que estava brincando na net quando achei este maravilhoso site para compartilhamento de favoritos.

No Ma.gnolia cada usuário tem seu perfil e pode parcitipar de grupos e pode adicionar outros usuários como contatos. O login pode ser feito usando uma OpenID. Pode importar favoritos do navegador ou do del.icio.us.

Vale conferir.

Para quem quiser ver, meu perfil pode ser encontrado aqui.

blogblogs tags:,

technorati tags:,

Blogged with Flock

Add comment 30/12/2006

Biblioteca XMPP

Hoje comecei a implementar uma biblioteca para XMPP (Jabber) Open Source, em D.

Quando ela estiver um pouco evoluída, tentarei hospedá-la no dsource e/ou no sourceforge.

Depois, provavelmente, tentarei implementar um cliente usando-a.

Bom pra mim né… hehe!!!!

Para quem não conhece, o Jabber é um protocolo aberto, descentralizado (não depende de um único servidor) para comunicação instantânea. Seu nome foi mudado para XMPP quando o IETF criou um grupo de trabalho para adaptá-lo para ser um padrão na web para comunicação instantânea.

technorati tags:, , , , ,

Blogged with Flock

Add comment 10/10/2006

Friend of a Friend

Já foi escrito aqui como expressar relações entre sites, formando redes sociais.

Porém, além de conhecer essas relações, é possível informar sobre o autor da página. Não estou falando da metatag author, mas de informações mais detalhadas. E não apenas sobre o autor da página, mas sobre amigos também.

Com esse objetivo é que foi projetado o FOAF (Friend of a Friend). A especificação define um conjunto de atributos, utilizando RDF (Resource Description Framework). Um exemplo:

<rdf:RDF
      xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
      xmlns:foaf="http://xmlns.com/foaf/0.1/"
      xmlns:admin="http://webns.net/mvcb/">
  <foaf:PersonalProfileDocument rdf:about="">
    <foaf:maker rdf:resource="#me"/>
    <foaf:primaryTopic rdf:resource="#me"/>
    <admin:generatorAgent rdf:resource="http://www.ldodds.com/foaf/foaf-a-matic"/>
    <admin:errorReportsTo rdf:resource="mailto:leigh@ldodds.com"/>
  </foaf:PersonalProfileDocument>
  <foaf:Person rdf:ID="me">
    <foaf:name>Christian Hartung</foaf:name>
    <foaf:title>Sr</foaf:title>
    <foaf:givenname>Christian</foaf:givenname>
    <foaf:family_name>Hartung</foaf:family_name>
    <foaf:nick>Chris7ian</foaf:nick>
    <foaf:mbox rdf:resource="mailto:christian.s77@gmail.com"/>
    <foaf:homepage rdf:resource="http://chris7ian.50webs.com"/>
    <foaf:depiction rdf:resource="http://static.flickr.com/73/215157439_cce1108295_m.jpg"/>
    <foaf:schoolHomepage rdf:resource="http://www.cotil.unicamp.br"/>
    <foaf:knows>
      <foaf:Person>
        <foaf:name>Amigo</foaf:name>
        <foaf:mbox rdf:resource="mailto:amigo@provedor.com"/>
      </foaf:Person>
    </foaf:knows>
  </foaf:Person>
</rdf:RDF>

O que isso faz? Descreve uma pessoa (no caso, eu): Sr. Christian Hartung, apelidado Chris7ian, com o email christian.s77@gmail.com e homepage http://chris7ian.50webs.com. Ainda há o endereço de um avatar para essa pessoa e o endereço da escola em que estuda (http://www.cotil.unicamp.br). Essa pessoa tem um amigos chamado “Amigo” com o endereço de email “amigo@provedor.com”.

Há ainda vários atributos que podem ser aplicados, desde logos, grupos, …, até IDs para mensagens instantâneas (Jabber, por exemplo) Estes podem ser encontrados na especificação.

E todas as informações aplicadas à pessoa podem ser aplicadas ao(s) amigo(s).

Agora, com o documento FOAF, neste caso foaf.rdf,  preparado, deve-se informar sua existencia. Para isso basta utilizar:

<link rel="meta" type="application/rdf+xml" title="FOAF" href="http://site.com/foaf.rdf" />

É claro que dá para fazer muito mais com isso. Para maiores detalhes, veja a especificação.

technorati tags:, , ,

Blogged with Flock

Add comment 03/10/2006

Redes Sociais

Sabemos que não estamos sozinhos no mundo. Todo mundotem ao menos um familiar.

Agora vomos levar isso para a web.

Sabemos que existem vários usuários nainternet. E estes estão conectados de alguma forma.

As redes sociais indicam como esses váriosusuários estão conectados.

Por exemplo: o vício de vários internautasque conheço: orkut.É considerado uma rede social, ligando vocêà seus amigos/familiares/qualqueroutro. Este caso pode serclassificado como uma rede de relacionamento, onde você pode”interagir” com seus contatos.

Porém, ainda há a questão:você não tem apenas uma conta no orkut. Eu, porexemplo, tenho esse blog. Posso ter um amigo que tenha um website.

É possível criar redes sociais entre esteswebsites utilizando “semãntica”. Por exemplo, utilizando XHTML Friends Network. Veja o exemplo:

<a href=”http://www.site-amigo.com” rel=”friend met“>Amigo</a>

Nesse exemplo está claro que o site para o qual olink aponta é de um amigo.

categoria da relação Valores XFN
amizade (apenas um): friend
acquaintance contact
fisicamente: met
profissional: co-worker colleague
geografica (apenas um): co-resident neighbor
familiar (apenas um): child parent sibling spouse kin
romântica: muse crush date sweetheart
identidade: me

Outro meio de criar redes sociais é utilizando FOAF. Futuramente postarei algo sobre o assunto.

technorati tags:, , ,

Blogged with Flock

1 comment 03/10/2006