20060223

Para que as meninas não fiquem chateadas

Como já tinha colocado aqui botões de punho para quem trabalha com computadores, que normalmente são usados por homens, agora também há algo para as meninas que trabalham com computadores...


<link>
Brincos USB
</link>

20060222

Um ano de Sócrates

Um ano de Sócrates, segundo o índice geral do Público:

1. Défice abaixo dos seis por cento: Conseguido pelo aumento de impostos (fundamentalmente, o IVA) e por uma maior eficácia na cobrança. A redução das despesas, ensaiada aqui e ali, com muito medo e uma grande tendência para fugir, continua a ser uma figura de propaganda.

2. Plano Tecnológico: Fora o amadorismo e o cheiro a "truque" da moda, é o que as corporações de interesses permitem que seja, por outras palavras, quase nada. Mas sempre deu a oportunidade para uma espécie de "Herman-SIC", com Bill Gates, convidado da noite, e o MIT, conjunto folclórico. Um orgasmo precoce.

3. Reestruturação da Administração Pública: Comissões, comissões, comissões. Quem se quer esconder e ficar quietinho, nomeia uma comissão. A farsa do costume.

4. Ota e TGV: Quando se deve muito dinheiro, só as dívidas nos salvam. Décimo quarto episódio do "Vigarista milionário", uma peça clássica portuguesa.

5. Fim dos regimes especiais de Segurança Social e de Saúde: Aqui, sim: contra a fraqueza a autoridade não cede. Bater nos criados foi sempre uma tradição indígena.

6. Lei das rendas: Com um tresloucado atrevimento, o governo lá se atreveu a um passinho oblíquo para evitar que os centros das cidades se tornem num montão de ruínas. Não resolveu nada, mas com certeza ficou muito bem com a sua inovadora consciência.

7. Colocações de professores por quatro anos: Consola saber que de quando em quando a FENPROF concorda com o ministro da Educação.

8. Lei da nacionalidade: Abrir a porta, com o pé firmemente na porta. Quem é xenófobo é o Portas.

9. Medicamentos fora das farmácias: Uma guerra contra o lobby das farmácias que excede as façanhas de Eurico, o Presbítero. Não toca no principal, isto é, no estatuto absurdamente privilegiado da "classe", uma excrescência do século XIX. Não se pode querer tudo.

10. Férias judiciais: Para o parolo ver. Um acto que passa com majestade ao lado dos problemas.

11. Combate a incêndios: Esperemos que da confusão estabelecida, saia luz. Não fogo.

12. Evasão fiscal: A esquerda sempre gostou de tosquiar a carneirada.

13. Fundos da "Europa": A sopa do convento ainda não acabou.

14. Acordo de Bolonha: Atrasado. Quanto mais tarde, melhor. Não se manda um coxo para os 100 metros de obstáculos.

15. Aborto: Por favor, não arranjem sarilhos ao sr. eng.

16. Taxa de carbono: Isso era na oposição.

Fora do índice geral do Público:

17. Nomeações: O Vara, o Gomes, o Oliveira Martins são beneméritos da Pátria e só por acaso criaturas do PS.

vpv

<link>
O Espectro: Um ano de Sócrates por Vasco Pulido Valente
</link>

O que se pode fazer quando está frio

Isto tanto se aplica a animais como a humanos ;-)


<link>
It's That Cold Out There
</link>

20060217

Semana em grande para a freguesia do Olival


Na passada terça-feira a freguesia teve a visita do Bispo D. Ximenes Belo e amanhã (18 de Fevereiro) terá lugar o Olival TT 2006.


O mote do Olival TT é 'Faz-te um homem e... aparece', será que eles também andam a ouvir o Russell Peters - Be a man...?

20060216

The Red Star, o filme

A Universal Pictures adquiriu os direitos sobre a novela gráfica 'The Red Star', de Christian Gossett.
'The Red Star' é uma saga épica que tem lugar numa União Soviética re-imaginada onde a bruxaria militarizada e a tecnologia monolítica convivem uma com a outra.
O realizador será Timur Bekmambetov, que também realizou 'Night Watch'.


Para quem conhece a saga 'The Red Star' e o filme 'Night Watch' já sabe que vai ser muito bom, para quem não conhece... é esperar para ver :-D

<link>
The Red Star: Site Oficial
The Red Star: Voices of the revolution
Project Antares: Christian Gossett's Online Journal
Yahoo News: Universal readies mission to 'Red Star'
</link>

Sem comentários...

Não bastando o saco azul, a cumplicidade em quebra do segredo de justiça, a fuga para fora do país e a eleição para câmara municipal de Felgueiras apesar de ter (pelo menos) um crime consumado - a fuga à justiça - ainda teve direito a vencimento:
Fátima Felgueiras terá vivido da sua reforma durante os dois anos e meio em que esteve no Brasil, fugida à Justiça portuguesa. Pelo menos em 2004, conforme se constata na declaração de rendimentos entregue no Tribunal Constitucional (TC) e confirma fonte próxima da autarca, Fátima recebeu 48,3 mil euros em “pensões”. Por mês, a actual presidente da Câmara de Felgueiras auferiu 3449 euros durante 14 meses.

<link>
Correio da Manhã: Pensão suportou estada no Brasil
</link>

A evolução de um programador

High School/Jr.High
10 PRINT "HELLO WORLD"
20 END


First year in College
program Hello(input, output)
begin
writeln('Hello World')
end.


Senior year in College
(defun hello
(print
(cons 'Hello (list 'World))))


New professional
#include
void main(void)
{
char *message[] = {"Hello ", "World"};
int i;

for(i = 0; i < 2; ++i)
printf("%s", message[i]);
printf("\n");
}


Seasoned professional
#include
#include

class string
{
private:
int size;
char *ptr;

public:
string() : size(0), ptr(new char('\0')) {}

string(const string &s) : size(s.size)
{
ptr = new char[size + 1];
strcpy(ptr, s.ptr);
}

~string()
{
delete [] ptr;
}

friend ostream &operator <<(ostream &, const string &);
string &operator=(const char *);
};

ostream &operator<<(ostream &stream, const string &s)
{
return(stream << s.ptr);
}

string &string::operator=(const char *chrs)
{
if (this != &chrs)
{
delete [] ptr;
size = strlen(chrs);
ptr = new char[size + 1];
strcpy(ptr, chrs);
}
return(*this);
}

int main()
{
string str;

str = "Hello World";
cout << str << endl;

return(0);
}


Master Programmer
[uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)]
library LHello
{
// bring in the master library
importlib("actimp.tlb");
importlib("actexp.tlb");

// bring in my interfaces
#include "pshlo.idl"

[uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)]
cotype THello
{
interface IHello;
interface IPersistFile;
};
};

[exe, uuid(2573F890-CFEE-101A-9A9F-00AA00342820)]
module CHelloLib
{
// some code related header files
importheader();
importheader();
importheader();
importheader("pshlo.h");
importheader("shlo.hxx");
importheader("mycls.hxx");

// needed typelibs
importlib("actimp.tlb");
importlib("actexp.tlb");
importlib("thlo.tlb");

[uuid(2573F891-CFEE-101A-9A9F-00AA00342820), aggregatable]
coclass CHello
{
cotype THello;
};
};

#include "ipfix.hxx"
extern HANDLE hEvent;

class CHello : public CHelloBase
{
public:
IPFIX(CLSID_CHello);

CHello(IUnknown *pUnk);
~CHello();

HRESULT __stdcall PrintSz(LPWSTR pwszString);

private:
static int cObjRef;
};

#include
#include
#include
#include
#include "thlo.h"
#include "pshlo.h"
#include "shlo.hxx"
#include "mycls.hxx"

int CHello::cObjRef = 0;

CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
{
cObjRef++;
return;
}

HRESULT __stdcall CHello::PrintSz(LPWSTR pwszString)
{
printf("%ws\n", pwszString);
return(ResultFromScode(S_OK));
}


CHello::~CHello(void)
{

// when the object count goes to zero, stop the server
cObjRef--;
if( cObjRef == 0 )
PulseEvent(hEvent);

return;
}

#include
#include
#include "pshlo.h"
#include "shlo.hxx"
#include "mycls.hxx"

HANDLE hEvent;

int _cdecl main(
int argc,
char * argv[]
) {
ULONG ulRef;
DWORD dwRegistration;
CHelloCF *pCF = new CHelloCF();

hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);

// Initialize the OLE libraries
CoInitializeEx(NULL, COINIT_MULTITHREADED);

CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER,
REGCLS_MULTIPLEUSE, &dwRegistration);

// wait on an event to stop
WaitForSingleObject(hEvent, INFINITE);

// revoke and release the class object
CoRevokeClassObject(dwRegistration);
ulRef = pCF->Release();

// Tell OLE we are going away.
CoUninitialize();

return(0); }

extern CLSID CLSID_CHello;
extern UUID LIBID_CHelloLib;

CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */
0x2573F891,
0xCFEE,
0x101A,
{ 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};

UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */
0x2573F890,
0xCFEE,
0x101A,
{ 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
};

#include
#include
#include
#include
#include
#include "pshlo.h"
#include "shlo.hxx"
#include "clsid.h"

int _cdecl main(
int argc,
char * argv[]
) {
HRESULT hRslt;
IHello *pHello;
ULONG ulCnt;
IMoniker * pmk;
WCHAR wcsT[_MAX_PATH];
WCHAR wcsPath[2 * _MAX_PATH];

// get object path
wcsPath[0] = '\0';
wcsT[0] = '\0';
if( argc > 1) {
mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
wcsupr(wcsPath);
}
else {
fprintf(stderr, "Object path must be specified\n");
return(1);
}

// get print string
if(argc > 2)
mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);
else
wcscpy(wcsT, L"Hello World");

printf("Linking to object %ws\n", wcsPath);
printf("Text String %ws\n", wcsT);

// Initialize the OLE libraries
hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);

if(SUCCEEDED(hRslt)) {


hRslt = CreateFileMoniker(wcsPath, &pmk);
if(SUCCEEDED(hRslt))
hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello);

if(SUCCEEDED(hRslt)) {

// print a string out
pHello->PrintSz(wcsT);

Sleep(2000);
ulCnt = pHello->Release();
}
else
printf("Failure to connect, status: %lx", hRslt);

// Tell OLE we are going away.
CoUninitialize();
}
return(0);
}


Apprentice Hacker
#!/usr/local/bin/perl
$msg="Hello, world.\n";
if ($#ARGV >= 0) {
while(defined($arg=shift(@ARGV))) {
$outfilename = $arg;
open(FILE, ">" . $outfilename) || die "Can't write $arg: $!\n";
print (FILE $msg);
close(FILE) || die "Can't close $arg: $!\n";
}
} else {
print ($msg);
}
1;


Experienced Hacker
#include
#define S "Hello, World\n"
main(){exit(printf(S) == strlen(S) ? 0 : 1);}


Seasoned Hacker
% cc -o a.out ~/src/misc/hw/hw.c
% a.out


Guru Hacker
% cat
Hello, world.
^D


New Manager
10 PRINT "HELLO WORLD"
20 END


Middle Manager
mail -s "Hello, world." bob@b12
Bob, could you please write me a program that prints "Hello,
world."?
I need it by tomorrow.
^D


Senior Manager
% zmail jim
I need a "Hello, world." program by this afternoon.


Chief Executive
% letter
letter: Command not found.
% mail
To: ^X ^F ^C
% help mail
help: Command not found.
% damn!
!: Event unrecognized
% logout


<link>
Evolution of a programmer
</link>

As melhores fotos de 2005

As melhores fotos de 2005, segundo a organização World Press Photo, foram anunciadas.

A foto do ano de 2005
2005 © Finbarr O'Reilly, Canada, Reuters

Uma outra foto...
2005 © Massimo Mastrorillo, Italy

<link>
Winners Gallery 2006 - World Press Photo
</link>

20060207

Não desenharás blasfémias...?!

Não se pode desenhar o Maomé (que ninguém sabe realmente qual o seu aspecto, tal qual o aspecto de Jesus Cristo), no entanto é perfeitamente normal fazer explodir estátuas milenares do Buda (Talibãs no Afeganistão), autocarros (Londres), comboios (Madrid), embaixadas (Kénia e Tanzânia), barcos (Yémen), para mencionar apenas algumas ocorrências justificadas (por eles) com a desculpa do Corão (que condena a violência).
Como alguém disse recentemente: resta saber se tudo isto é coincidência conveniência ou convicção.

Support Denmark.
Alguns cartoons...

Bartoon: Mahomé2006 © Luís @ Público

Islam the tolerant2006 © Filibuster Cartoons

The least of your problems2006 © Cox & Forkum

Uma bela antítese...

Liberdade de expressão contra a liberdade...2006 © Reuters

<link>
Jyllands-Posten Muhammad cartoons controversy @ Wikipedia
Blasfémia @ Blasfémias
De vergonha em vergonha @ O Espectro
Arquivo de imagens de Maomé
Petição de apoio ao jornal Jyllands Posten
Caricaturas Islâmicas @ O Amigo do Povo
Multiculturalismo @ Textos de "A Origem das Espécies"
Support Denmark
</link>

Depois de dormir, há que acordar

Depois de dormir no trabalho, há que acordar... para que isso possa acontecer é necessária a existência de um despertador: o telemóvel, um despertador de mesa-de-cabeceira, a mãe, ...
Há também este despertador... um misto de lâmpada, rádio e despertador.
Uma vez definida a hora a despertar o Sfera gradualmente baixa a intensidade da luz e o volume do rádio.
De manhã, ao despertar a única maneira de desligar o despertador é tocando no Sfera. Isto activa a função de snooze (mais 10 minutos), mas também "enrola" o cabo por onde pende o despertador, ficando este mais longe da cama.
Com isto, caso queiramos mais 10 minutos de "bónus" temos de nos esticar/sentar/sair da cama para conseguir tocar no Sfera.
Uma vez chegado ao tecto, a única opção é sair da cama e puxar o Sfera para baixo, o que desliga o alarme e nos obriga mesmo a sair da cama.

Sfera
<link>
Sfera
</link>