Terça-feira, Outubro 31, 2006

Dinheiro é tudo?

Recentemente recebi uma proposta extremamente tentadora de meu irmão: morar em Costa do Sauípe - Bahia, ganhando R$ 14.000 trabalhando em um cargo administrativo qualquer de um projeto. Não, não é brincadeira!


De fato, meu irmão vai fazer parte da chefia de um projeto, vai ganhar rios de dinheiro e me chamou pra fazer parte da equipe, pois sou de confiança. Até minha namorada e minha cunhada vão, pra ganhar também uma grana alta! Legal, não? Parece que finalmente a sorte veio pro meu lado...

Agora os "poréns"...

Esse projeto tem data pra começar e pra acabar, tem a duração de cinco anos, e depois... cada um pro seu lado!

Logicamente, teria que me mudar de estado, trancar a faculdade de computação na universidade federal e ir pra lá. Estou na metade do curso. Adoro o meu curso, faço parte de projetos de pesquisa e sonho em fazer mestrado.

O projeto se comprometeu a pagar a universidade particular que eu quisesse, pra fazer o curso que eu quisesse.

Eu iria trabalhar na parte financeira do projeto, mas, sinceramente, nunca trabalhei com isso, nem sei se vou gostar.


Economizando R$10.000 por mês e vivendo com o restante, no fim dos 5 anos estaria com R$600.000


Não sei se vou ter tempo de trabalhar e estudar. Talvez, só possa pensar em me formar depois dos 5 anos. Tenho 20 anos.

A cidade é belíssima e dista 70km de Salvador.


Meu pai me apóia na idéia, minha mãe não.

Já me inscrevi no projeto, queria garantir a vaga, mas as coisas se adiantaram com muita velocidade e agora estou esperando eles me chamarem. Ainda posso desistir.

E aí, você iria???? Porque eu mesmo, não sei se vale a aventura!

Segunda-feira, Outubro 16, 2006

Bon echo

Ontem resolvi atualizar o meu Ubuntu do Dapper para a Edgy. Daí, uma das novas atualizações é a versão beta2 do Firefox 2.0, chamado de "bon echo". A primeira vista, a interface tá bem mais legal, deram uma melhorada nas abas, o browser também salva automaticamente as páginas abertas caso haja um "crash" na máquina...

Outra coisa legal foi o corretor ortográfico incluso no próprio browser. Mas como o Firefox veio todo em inglês não me adiantava muito, mas facilmente eu achei o dicionário em português. Bem legal, por sinal. Ao digitar esse post, ou escrever um scrap no orkut, por exemplo, ele corrige o que se escreve, igualzinho como no word, até o menu quando se clica com o botão direito na palavra errada.

O que não foi muito rápido de achar foi a tradução dos menus do Firefox, mas com um pouco de pesquisa nos fóruns da vida... Bem, primeiro deve-se ter a extensão Quick Locale Switcher. Se não tiver, instala! Depois lá em ferramentas, tem uma das opções que é só selecionar o pt-br. Feito isso, instala-se a extensão de idioma. Agora é só reiniciar e pronto! Tá tudo em português!

Quinta-feira, Agosto 31, 2006

Depois de mais de um mes...

Recebi um link hoje, resolvi postar em meio a turbulências...

"Hello World !": o velho programa com várias roupagens

Há tempos atrás, este divertido texto circulou em listas de discussão técnicas da Internet brasileira e, acredito, será apreciado por nossos alunos de Ciência da Computação. Tomei apenas a liberdade de traduzir os títulos dos estilos de programação, mas optei por manter intacto o restante do texto. Se você sabe um pouquinho de inglês técnico, garanto que você vai gostar !

A próposito... qual é o seu estilo ? :)

____________________________

Segundo Grau

10 PRINT "HELLO WORLD"
20 END


____________________________

Primeiro Ano de Faculdade

program Hello(input, output)
begin
writeln('Hello World');
end.

____________________________

Último Ano de Faculdade

(defun hello
(print
(cons 'Hello (list 'World))))

____________________________

Profissional em início de carreira

#include
void main(void)
{
char *message[] = {"Hello ", "World"};
int i;
for(i = 0; i < 2; ++i)
printf("%s", message[i]);
printf("\n");
}

____________________________

Profissional Esporádico

#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 <<>

return(0);
}

____________________________

Programador Master

[
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
CoInitiali, 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);
}

____________________________

Aprendiz de 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;

____________________________

Hacker Experiente

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

____________________________

Hacker Esporádico

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

____________________________

Guru Hacker

% cat
Hello, world.
^D

____________________________

Programador System AXE

LL0:
.seg "data"
.seg "text"
.proc 04
.global _main
_main:
!#PROLOGUE# 0
sethi %hi(LF26),%g1
add %g1,%lo(LF26),%g1
save %sp,%g1,%sp
!#PROLOGUE# 1
.seg "data1"
L30:
.ascii "Hello, World\012\0"
.seg "text"
.seg "data1"
L32:
.ascii "Hello, World\012\0"
.seg "text"
set L32,%o0
call _strlen,1
nop
mov %o0,%i5
set L30,%o0
call _printf,1
nop
cmp %o0,%i5
bne L2000000
nop
mov 0,%o0
b L2000001
nop
L2000000:
mov 0x1,%o0
L2000001:
call _exit,1
nop
LE26:
ret
restore
LF26 = -96
LP26 = 96
LST26 = 96
LT26 = 96
.seg "data"

0000000 0103 0107 0000 0060 0000 0020 0000 0000
0000020 0000 0030 0000 0000 0000 0054 0000 0000
0000040 033f ffff 8200 63a0 9de3 8001 1100 0000
0000060 9012 2000 4000 0000 0100 0000 ba10 0008
0000100 1100 0000 9012 2000 4000 0000 0100 00 ba10 0008
0000100 1100 0000 9012 2000 4000 0000 0100 0000
0000120 80a2 001d 1280 0005 0100 0000 9010 2000
0000140 1080 0003 0100 0000 9010 2001 4000 0000
0000160 0100 0000 81c7 e008 81e8 0000 0000 0000
0000200 4865 6c6c 6f2c 2057 6f72 6c64 0a00 4865
0000220 6c6c 6f2c 2057 6f72 6c64 0a00 0000 0000
0000240 0000 000c 0000 0608 0000 006e 0000 0010
0000260 0000 060b 0000 006e 0000 0014 0000 0286
0000300 ffff ffec 0000 0020 0000 0608 0000 0060
0000320 0000 0024 0000 060b 0000 0060 0000 0028
0000340 0000 0186 ffff ffd8 0000 004c 0000 0386
0000360 ffff ffb4 0000 0004 0500 0000 0000 0000
0000400 0000 000a 0100 0000 0000 0000 0000 0012
0000420 0100 0000 0000 0000 0000 001a 0100 0000
0000440 0000 0000 0000 0020 5f6d 6169 6e00 5f70
0000460 7269 6e74 6600 5f73 7472 6c65 6e00 5f65
0000500 7869 7400
0000504

% axe_generate -f system.uhdl
Application 'Exchange' generated
2324042350000000 source code lines
No Errors detected.
Hardware retrieval...done OK
Certification Test...done OK
Packing..............done OK
Delivery.............done OK
Application 'Exchange' delivered to customer
23456000 bytes/sec.
End processing, 2345 seconds.

____________________________

Programador de Altíssimo Nível

system.uhdl :

SYSTEM
CREATE ScreenWin
SIZE 20000000/Unit=One
DESTINATION Order.dest[One]
OUTPUT CHARACTER['Hello world']
END
END

____________________________

O Novo Gerente

10 PRINT "HELLO WORLD"
20 END

____________________________

O Gerente Médio

mail -s "Hello, world." bob@b12

Bob, could you please write me a program that prints
"Hello, world."? I need it by tomorrow.

^D

____________________________

O Gerente de Nível Mais Alto

% zmail all

I need a "Hello, world." program by this afternoon.

____________________________

Chefe Executivo

% message
message: Command not found
% pm
pm: Command not found
% letter
letter: Command not found.
% mail
To: ^X ^F ^C
help mail
help: Command not found.
>what
what: Command not found
>need help
need: Command not found
damn!
!: Event unrecognized
>exit
exit: Unknown
>quit
%
% logout

Bipppp ! Mrs. Thomsson ? Please page Tommy for me. NOW !

Quinta-feira, Julho 27, 2006

Jogo seboso!

Array access out of bounds é foda... Clique na imagem para ver maior!


Adoro jogos manager! Jogando o Championship Manager 03/04, salvei e quando fui carregar o jogo... Array access out of bounds!!! Po, jogar um erro desse assim na cara do usuário... É seboso! O pior que você pode clicar eternamente na mensagem que o processo não se encerra, nem nada.

Não sei o que é pior: jogar a tosquice do erro assim, na cara do usuário ou não explicar absolutamente nada e pedir pra enviar um relatório de erro...

Boas coisas vêm de onde menos você espera

Não, não é um comentário sobre Deus, sobre auto-ajuda, nem nada disso. Sou ateu e odeio auto-ajuda. Sim, ainda acredito em coisas boas.

Acontece que tava doente pra caralho, mal tava conseguindo ir pra faculdade de manhã, ainda sim fui. Só o lixo, fui fazer minha rotina.

Na hora do almoço fui ao restaurantezinho na universidade, que vou todo santo dia: cumprimento o dono do estabelecimento, que tá no caixa, pago e pego a ficha, faço o prato e como.

O dono olha pra mim, chega na minha mesa e diz:

- O que houve?? Pouca comida, nenhuma verdura, nada? O que ta havendo?

- Po, eu to meio doente, perco o apetite e tal

- Não, não pode não!! Você mora com quem?

- Moro só mesmo, mas não tem problema não, eu vou melho...

- Não, peraí! Vou te dar meu telefone e me ligue se precisar, ta certo?

Eu surpreso: - Ta certo...

Olho no papel, e descubro pela primeira vez o nome do cara que eu cumprimento todos os dias: Odilon. Mal sabia eu que tinha um amigo aqui na cidade, ou ao menos, um cara que se preocupa com um consumidor fiel...

Bem, seja o que for das duas hipóteses é uma boa coisa, não? Prefiro acreditar na primeira!

Segunda-feira, Julho 10, 2006

Zizou!

Não é porque saiu o prêmio de melhor jogador da Copa hoje, eu tava com aspirações de escrever esse post já ha algum tempo. Não sou nenhum comentarista esportivo, atualmente não sou praticante do esporte, apenas gosto de acompanhar jogos e discussões sobre futebol. É uma opinião de um cara que apenas gosta de ver futebol (e jogar winning eleven, championship manager...).

É que ao contrário de muitos, sempre fui fã do cara que comanda o meio-campo. Muitos preferem o Henry, Ronaldo, Ronaldinho Gaúcho, Vieri, Shevchenko, Robinho ou Crespo. Eu gosto mesmo é de ver jogar o Alex, Riquelme, Nedved, Rivaldo, Kaká, Gerrard, Ballack, Zidane, Pirlo... Esses caras decidem apenas com um passe bem feito, ditam o ritmo do jogo e geralmente são bons em quase todos os fundamentos do futebol. Talvez, se tivesse visto o Zico, Rivelino e o Platini jogarem seria muito fã deles também.

Por isso que adorei ver o Zidane como melhor jogador da Copa. O que ele jogou contra o Brasil foi antológico! Só por aquilo ele já mereceu. Na final, a maneira que ele bateu o penalti, a jogada daquela cabeçada com aquela defesaça do Buffon... putz! Ele pegou a bola, teve a visão de abrir na direita com o Sagnol e correu pra área pra cabecear.

O Parreira disse que desde 98, o Zidane nunca jogou tão bem como no jogo contra o Brasil. De cabeça, eu pego a final daquela Liga dos Campeões do Real Madrid e o Bayer de Munique, com aquele golaço que ele pegou de primeira e fez um gol dificílimo. Sem falar que quando o cara voltou à seleção francesa, a França só perdeu na final. Foda!

Ó o golaço, achei agora no YouTube:

Quarta-feira, Junho 21, 2006

Intercine + corujão!

Eu adoro dormir tarde, geralmente às 2 da manhã, mesmo na época de aulas. Isso seria mais ou menos depois do Programa do Jô. Agora que tô de "férias" (ainda pretendo saber o real significado disso), tenho a comodidade de trocar o dia pela noite, e assim, ao invés de assistir os usuais programas de variedades ou infantis que passam durante a manhã, seja em que canal for, assisto Intercine e o Corujão.

No Intercine passam aqueles filmes que já foram, no inicio da década de 90, do Domingo Maior ou do Tela Quente, já no Corujão são os filmes da década de 80 pra baixo esquecidos pela programação da Globo, apesar de serem legais.

Hoje mesmo passou um filme que eu esqueci que era legal, o Top Gun. Foi lançado no ano em que nasci (1986), mas foi lá pra 93-94 que eu assisti e me fez gostar de avião. Na época sonhava em ser piloto de caça, pois achava o filme legal (acho que todo mundo na época!). Assistindo o filme é que me fez entender o porquê que eu fiz vestibular pro ITA, colocando a opção pra militar, e o pior é que quase passei! Era um resquício inconsciente de um sonho de criança. Nunca daria certo, um cara preguiçoso como eu sendo militar. Sonho doido! Enfim, hoje revendo o filme no Intercine, vi com um ar de nostalgia, e de surpresa também por ver Val Kilmer, e principalmente, Meg Ryan em início de carreira com um personagem bem secundário (a mulher do parceiro do Tom Cruise, que morre no avião). Legal =D



Por isso que acho Intercine legal, acho que determinados filmes e músicas marcam certas fases da vida da pessoa, e ao vê-los da uma nostalgia, e começa-se a pensar como era na época... Sem falar nos especiais que as vezes são feitos, como o Intercine Brasil e o festival Charles Bronson (quando ele morreu passou uma semana de filmes dele!).

No Corujão agora tá passando um filme de Bruce Lee no qual tem a participação de nada mais na menos do que Chuck Norris! É um fime que ele leva um cacete de do Bruce Lee! É bem estranho ver o Chuck Norris em posições de karatê...

Nas férias, Intercine + Corujão, pra mim, é imperdível. De madrugada, nem parece que é Globo, dou muito valor!

Segunda-feira, Junho 19, 2006

Vendo a Copa!

Pra ver o jogo do Brasil é difícil aturar na Globo, o Galvão Bueno me dá um ódio extremo, tira até o prazer de assistir o jogo. Foda é que ele não decide se é comentarista, se é torcedor ou especialista em arbitragem, é chato ouvi-lo, quem não tem uma ESPN Brasil ou uma Band Sports da vida, com toda a sinceridade, tá lascado. O pior é que a Globo tem uma estrutura de transmissão muito boa, câmeras exclusivas, o tira-teima, analizador tático, entre outra geringonças legais, mas a narração do Galvão com as merdas e os bordões idiotas que ele fala... "O Prso (pronuncia-se pruxô, o jogador da Croácia) puxou a bola!" (puta que pariu! Ele ficou repetindo isso achando que é engraçado!), "Haaaaaaaja coração!". Sério, o Cleber Machado, o outro cara também, são bons, mas o narrador titular dos jogos da Seleção dá nos nervos. Achei até um vídeo o qual explicita a agoniante narração desse cidadão!


Bem, até aí, ele é intragável como narrador, mas como comentarista ele é uma anta! Porra, querer defender o Ronaldo Gordão porque a história dele impõe respeito e o Robinho é uma espécie de "arma secreta" pro segundo tempo? Po, quando a bola chega no Ronaldo, beira ao ridículo, ele não consegue nem dominar a bola, muito menos a capacidade de correr com ela! O que impõe medo mesmo em qualquer adversário é o Kaká jogando pra caralho. Nunca fui de defender o Robinho, mas quando ele entra é outro time, outro jogo! Enfim, dá raiva! Quem não tem tevê paga, tem que aturar coisas como: Galvão, Avaloni, Milton Neves, Kajuru...


Felizmente, meu sogro abriu mão de assistir o Galvão e mudou pro Luciano do Vale, no Band Sports, apesar de admitir que a transmissão global tem muitos recursos legais. Pra ver os comentários sobre o jogo, ESPN Brasil rulez \o/ . Juca Kfouri, Antero Greco e o PVC são foda!