quarta-feira, novembro 14, 2007

Tamanho do gmail

Até acho piada ver na página o contador a andar a indicar o espaço que posso utilizar no mail, mas achava estranho o google estar a gastar espaço na sua base de dados para indicar por cada utilizador o espaço que este tinha. Afinal isto não tem nada a ver com a base de dados só tem a ver com o calendário da máquina na qual estamos a aceder ao gmail. Vejamos actualmente quanto espaço tenho:



E agora mudando o tempo da máquina acabei de ganhar instantaneamente cerca 25GB no gmail. Será que é validado do lado do servidor o espaço, se tentar inserir mais do que seria suposto?

terça-feira, novembro 13, 2007

Artista gráfico procura-se

O Orion's Belt vai no início do próximo ano evoluir para uma nova versão. Neste momento andamos à procura de um artista gráfico para criar os grafismos do site. Quem estiver interessado em receber os nossos requisitos para um orçamento é favor contactar-me.

sexta-feira, novembro 09, 2007

O que fazer em caso de ataque cardíaco?

Repentinamente sente-se uma forte dor no peito, que se difunde até ao braço e, até mais acima junto à mandíbula. Mesmo que se tenha sido treinado em RCP (Ressuscitação Cardio-Pulmonar), provavelmente o instrutor do curso nunca ensinou a auto aplicar a técnica. Sem ajuda, uma pessoa na qual o coração bata incorrectamente e se comece a sentir a desmaiar, só tem 10 segundos antes de perder a consciência. Tendo em conta que a maior parte dos ataques cardíacos acontecem quando uma pessoa se encontra sozinha e não consegue pedir ajuda, o que fazer então?

Não entrar em pânico começar a tossir repetida e vigorosamente. Deve-se respirar profundamente entre cada tosse, esta deve ser profunda e prolongada, como quando se produz um forte ataque de tosse, proveniente do diafragma. Cada inalação e cada tosse devem ser repetidas de dois em dois segundos, repetidamente e sem parar, até que se consiga ajuda ou até que o coração esteja de novo a bater correctamente. As inspirações profundas levam oxigénio aos pulmões e os movimentos de contracção da tosse comprimem o coração e mantêm o sangue a circular. A pressão sobre o coração também ajuda a recuperar o ritmo cardíaco normal. Desta maneiras as vítimas de ataque cardíaco podem chegar a um hospital e sobreviver.

Hoje em dia, devido à mudança de estilo de vida, os ataques cardíacos atingem pessoas de todas as idades, mesmo as pessoas com menos de 25 ou 30 anos que não estão incluídas em grupos de risco.

terça-feira, novembro 06, 2007

JSLint

Hoje descobri o JSLint que para quem não conhece, é uma ferramenta muito interessante para verificar a correcção de um javascript de acordo com as convenções de código. Às vezes este verificador pode parecer "picuinhas" mas é para o nosso próprio bem.

Traveler

Conheci o Traveler através de um amigo que me disse algo do género: "É pá vê esta série que é muito boa, tem trama e intriga como gostas e são só 8 episódios vê-se rapidamente". Quando chego ao fim do 8º episódio fiquei com a sensação - "Mas que raio de final foi este ainda existem uma data de pontas soltas...".

Virei-me para o meu amigo e disse-lhe que não tinha gostado do final apesar da série em si ser muito boa. Foi quando ele me disse que a série deveria ser de 15 episódios e não de 8, e que tinham parado de fazer a série devido à pouca audiência que a mesma tinha. Naquela altura apeteceu-me apertar o pescoço a alguém: ao meu amigo porque me aconselha uma série que ficou a meio e a todos os "bananas" que conseguiram que uma série relativamente boa não tivesse sucesso. Está bem que tem um tema já muito utilizado, conspiração governamental e vingança contra as pessoas do sistema por terem acusado algum inocente, mas não deixa de ser uma série que nos "prende" ao ecrã e nos faz desejar saber como tudo vai terminar. Vejam lá mas é se produzem os restantes 7 episódios que faltam...

sexta-feira, novembro 02, 2007

Formatar em FAT32

Precisei de formatar um disco em FAT32 com 500GB, quando descobri que o Windows XP não suporta a formatação de discos com mais de 32GB sem ser em NTFS. Solução:

- Start -> Run e escrever diskmgmt.msc;
-
Botão direito do rato no disco que se quer formatar e seleccionar "Criar nova partição";
- Seleccionar "Partição Primária";
- Escolher a dimensão máxima possível para o disco;
- Escolher uma letra para a partição;
- Escolher "Não formatar a partição";
- Fazer download do executável fat32format ou fat32formatsrc (para quem tiver curiosidade ou medo e queira perceber o que está por trás do executável);
- Finalmente ir à linha de comandos e no path onde tiver o executável escrever, fat32format [letra do disco]:

quinta-feira, outubro 18, 2007

Qualidade de vida

Aí está uma coisa que eu acho que a maioria das pessoas actualmente abdica, cada vez mais não se aproveitam as coisas simples mas boas da vida, cada vez mais as pessoas vivem para trabalhar em vez de trabalharem para viver.

Ontem à noite estava a fazer um zapping habitual pelos canais quando apanhei o início de um filme no canal Hollywood, claro que são filmes antigos mas porque não ver pelo menos que filme era? O filme era "Despertares" (Awakenings), já há uns anos atrás o tinha visto, mas como já não me lembrava bem decidi ficar a assistir. Este filme transmite exactamente a mensagem que a vida é efémera, cada momento que dispomos deve ser aproveitado como se fosse o último, cada momento deve ser aproveitado para realizarmos coisas que nos dão prazer e nos fazem felizes.

segunda-feira, outubro 15, 2007

Nobel da paz

Não quero que este post se confunda com um post político, porque efectivamente não o é apesar de poder parecer. Al Gore prémio Nobel da paz... para mim é insultuoso, ele é simplesmente mais um frustrado que ainda não conseguiu ser presidente dos EUA e faz tudo para parecer o "menino bonito" à opinião pública. Será que ele se preocupa tanto com o ambiente como diz? Quanto a mim não, é pura estratégia de marketing. Será que a nível mundial ninguém contribuiu mais para a paz do que ele? Não me parece...

quinta-feira, outubro 11, 2007

Chamada a métodos

Com o aproximar do fim do desenvolvimento do projecto Novo Site Optimus tenho tido muito pouco tempo para fazer posts. Contudo ontem deparei com uma situação que me deixou a pensar, e que acho que à primeira vista é difícil responder correctamente, imagine-se o seguinte código:
static void Main(string[] args)
{
  SetError("A");
  SetError("X", "Y");
  SetError("M", "N", "O");
  SetError("G", null);
  SetError("R", null, "S");
  Console.ReadLine();
}

static void SetError(string message, params object[] data)
{
  Console.WriteLine("Message=" + message);
}

static void SetError(string code, string message, params object[] data)
{
  Console.WriteLine("Code=" + code + "; Message=" + message);
}
Qual dos métodos será chamado em cada invocação?

Só a primeira chamada invoca o primeiro método, a segunda, terceira e quinta invocam o 2 método e a quarta dá erro de compilação porque a chamada é ambígua. Isto leva-me a dizer que a assinatura do primeiro método foi mal pensada, não devendo ter o segundo parâmetro, visto que uma chamada com dois ou mais parâmetros, vai invocar o segundo método ou no caso da quarta chamada ainda é pior provocando um erro de compilação.

terça-feira, outubro 02, 2007

Método genérico

O meu problema passava por ter de criar métodos com implementações iguais, só diferindo no tipo dos parâmetros recebidos, pois os objectos que eu queria passar como parâmetro eram em tudo distintos à excepção das propriedades acedidas nesses métodos. Exemplo:

Group[] groups = null;
Tone[] tones = null;

GetName(contact.GroupId, groups);
GetName(contact.ToneId, tones);

private string GetName(int Id, Group[] data)
{
foreach (Group info in data)
{
if(info.Id == Id) return info.Name;
}
return null;
}

private string GetName(int Id, Tone[] data)
{
foreach (Tone info in data)
{
if(info.Id == Id) return info.Name;
}
return null;
}
Solução 1: Criar uma interface que será implementada pelos dois objectos, e a interface terá os campos e/ou métodos que se desejem ter em comum:

Group[] groups = null;
Tone[] tones = null;

GetName(contact.GroupId, groups);
GetName(contact.ToneId, tones);

private string GetName(int Id, ShareInterface[] data)
{
foreach (ShareInterface info in data)
{
if(info.Id == Id) return info.Name;
}
return null;
}

Solução 2: Esta solução foi a que utilizei para o meu caso pois a Solução 1 tem um problema, no caso dos objectos serem obtidos através de uma black box é impossível criar uma interface para ambos os objectos implementarem. A solução é a seguinte:


Group[] groups = null;
Tone[] tones = null;

GetName(contact.GroupId, groups);
GetName(contact.ToneId, tones);

private string GetName(int Id, object[] data)
{
foreach (object info in data)
{
System.Reflection.PropertyInfo prop = info.GetType().GetProperty("Id");
int tester = (int)prop.GetValue(info, null);
if (tester == Id)
return info.GetType().GetProperty("Name").ToString();
}
return null;
}