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>
O meu nome é José Rui Abreu Mira e este é o meu blog pessoal. Aqui, irão sendo colocadas as minhas opiniões, pontos de vista, sonhos e ilusões sobre os mais variados assuntos que eu ache de interesse.
20060223
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>
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>
'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:
<link>
Correio da Manhã: Pensão suportou estada no Brasil
</link>
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>
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
(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.
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>
<link>
Winners Gallery 2006 - World Press Photo
</link>
20060208
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.
Alguns cartoons...
2006 © Luís @ Público
2006 © Filibuster Cartoons
2006 © Cox & Forkum
Uma bela antítese...
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>
Como alguém disse recentemente: resta saber se tudo isto é
Alguns cartoons...
2006 © Luís @ Público
2006 © Filibuster Cartoons
2006 © Cox & Forkum
Uma bela antítese...
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.
<link>
Sfera
</link>
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.
<link>
Sfera
</link>
20060201
Convites para o Windows Live Messenger Beta
Acabei de receber convites para a versão beta do messenger (Windows Live Messenger Beta).
As primeiras 4 pessoas a enviar o pedido para o meu mail (jose[dot]rui[dot]mira[at]gmail[dot]com) receberão o respectivo convite.
As primeiras 4 pessoas a enviar o pedido para o meu mail (jose[dot]rui[dot]mira[at]gmail[dot]com) receberão o respectivo convite.
Subscrever:
Mensagens (Atom)