terça-feira, 29 de setembro de 2009

Boteco São Bento, o pior do sistema solar

Bom, to fazendo isso de picardia, quem sabe assim as pessoas passam a entender melhor pra que serve a internet (tirando a parte de pornografia). A propósito, ele fica no Rio de Janeiro, e não no bairro São Bento em BH.

Depois da Faixa de Gaza e do Acre, este é o
pior lugar do mundo para você ir com os amigos. Caro, petiscos sem
graça e, principalmente, garçons ultra-power-mega chatos: você toma
dois dedos do seu chopp, quente e azedo que nem xoxota nos tempos dos
vikings, eles já colocam outro na mesa. E se você recusa, eles ainda
ficam putos. Só tulipadas diárias no rabo para justificar tamanha
simpatia no atendimento.
  • Fui no da Vila Madalena. Dizem que o do Itaim é ainda pior.
  • Para dicas de botecos que valem a pena, leia outras resenhas aqui
  • Siga o Resenha pelo Twitter antes que eu bote outro link na mesa.


Tem 2 vídeos bem interessantes sobre a qualidade do antendimento desse bar:



segunda-feira, 28 de setembro de 2009

Bug in autolog - User name with more then 8 characters

Autolog is a tool that helps the management of user sessions, the idea is to control the time that users are allowed to use the computer, and check for idle users.

The code that i'm working on has a bug that users with more then 8 characters (like leonardol, for instance) cannot be logged out due to the use of ps command. The ps command shows the userid instead of the user name if that user name has more than 8 chars.

So, this patch can fix the autolog.c code, if you need the files used to build this patch, send me an email.

I could not find the original developers of this tool, and the debian package has been abandoned also.

--- autolog.c 2009-09-23 12:07:41.000000000 -0300
+++ /tmp/autolog.c.old 2009-09-23 11:23:35.000000000 -0300
@@ -548,7 +548,6 @@
{
char ddev[STRLEN],*gn = "";
char dev[STRLEN], name[STRLEN], prname[STRLEN];
- char name_to_kill[STRLEN];
int idle;
struct stat status;
time_t start, stime;
@@ -556,12 +555,8 @@
struct group *group_entry;
conf_el *ce;
int i;
- int larger_than_eight; /* for usernames greater than 8 characters */

strcpy(name,akt_usr->Name );
-
- larger_than_eight = (strlen(name)>8);
-
strcpy(dev, akt_usr->Device);
idle = akt_usr->IdleTime;
stime = pres_time - akt_usr->SessStrt;
@@ -581,7 +576,6 @@
if (listall)
printf("\nChecking: %-11s on %-12s I:%-4d\n",name,dev,idle);

-
/* now try to find the group of this person */
/* if usernames in utmp are limited to 8 chars, we will may fail on */
/* names that are longer than this, so we'll try to find it by uid */
@@ -682,18 +676,11 @@

/*.. action either warning or killing. */
// if (akt_usr->WarnEndsed && (pres_time > akt_usr->Ban_Ends) ) {
-
- strcpy(name_to_kill,name);
-/* name is larger than_eight characters, get UID */
- if (larger_than_eight){
- name_to_kill[0] = '\0';
- sprintf(name_to_kill,"%d",passwd_entry->pw_uid);
-}
if (0WarnEnds && (pres_time > akt_usr->WarnEnds) ) {
if (debug)
printf("Killing user, now.\n");

- if (kill_PIDs(name_to_kill)==1) /* try to kill users' processes */
+ if (kill_PIDs(name)==1) /* try to kill users' processes */
mesg(LOGOFF, name, ddev, stime/60, idle, ce); /* mail to user */
else mesg(NOLOGOFF,name, ddev, stime/60, idle, ce); /* couldn't kill */
if (ce->hard)
@@ -715,7 +702,7 @@
mesg(ANGRY, name, ddev, stime/60, idle, ce); /* angry about user. */
if (debug)
printf("I am angry, user returned...\n");
- if (kill_PIDs(name_to_kill)==1) /* try to kill user, at once */
+ if (kill_PIDs(name)==1) /* try to kill user, at once */
mesg(LOGOFF, name, ddev, stime/60, idle, ce); /* mail to user */
else mesg(NOLOGOFF,name, ddev, stime/60, idle, ce); /* couldn't kill */
}

quinta-feira, 6 de agosto de 2009

Festival de pergunta retórica

Essa tirinha é muito boa!

quinta-feira, 30 de julho de 2009

Uma lista interessante

Achei aqui: http://www.verbeat.org/blogs/bunker/2009/07/o-que-aprendi-ou-untitled.html

... e copiei ...

Achei essa lista que escrevi há uns meses. Era pra ser algo pro meu "filho não nascido". Besteira, na verdade era pra mim mesmo.

Escrevi isso pra dizer umas coisas que já fiz e outras que não fiz. Não são conselhos ou algo assim. São coisas que achei importante lembrar.

Segue. Eu conversando comigo mesmo:

  • Quando estiver olhando pra uma garota, faça com que ela se sinta como a única coisa viva na face da terra. Muitos ignoram esse pequeno detalhe com medo de perderam sua pose de macho. Mas você saberá que está conquistando algo ali. Isso é o que importa. Ela vai saber também.
  • E elas sempre sabem de tudo. Não se engane.
  • Você não vencerá sempre.
  • A assistir um filme [ou qualquer coisa] ruim, saia do cinema. Não volte. É uma grande sensação.
  • Não recuse um drinque.
  • Mas não ofereça um a qualquer pessoa.
  • Ao ver uma professora gostosa e fantasiar coisas incríveis durante a aula não fique assustado. Chegue nela e converse. Um dia você poderá dormir com ela - se não o fizer naquele mesmo dia.
  • Escute discos inteiros. Decore ao menos um nos mínimos detalhes. Esse disco ainda vai salvar sua vida em algum momento.
  • Na sua primeira vez, não esqueça de sorrir. Vai dar tudo errado. Mas vai ser incrível.
  • Pratique uma arte marcial. Esportes coletivos não são da nossa estirpe. Artes marciais sim. Você nunca esquecerá do dia que derrotar o seu sensei.
  • Chore em público.
  • Grite o mas alto que puder num show.
  • Quando uma garota o recusar, não entristeça. Escute hardcore. Você entristecerá com muitas coisas, garotas que te rejeitam não merecem tanta importância.
  • Escreva caso for preciso. Escreva.
  • Aprenda a se desfazer de coisas.
  • Ligue para a sua mãe de tempos em tempos. Não precisa dizer muita coisa. Apenas converse com ela.
  • Não tenha medo de andar na chuva.
  • Escute blues. Será estranho no começo. Encontre alguém pra te guiar. Esse alguém será um grande amigo.
  • Faça um mosh pit ou um stage dive. Não esqueça de fechar os olhos. Irá doer.
  • Numa briga, bata forte e rápido. Não agarre, não corra. Não se deixe cair. Levante mesmo que seja para apanhar.
  • Ame alguém com todas as suas forças.
  • Odeie alguém com todas as suas forças.
  • Nunca leia um livro que você não possa carregar na mochila.
  • Carregue um livro na mochila.
  • Ligue pra uma garota de madrugada. Fale que quer dormir com ela.
  • Corra. Sempre que for necessário corra. Você tem que ser capaz de correr quarteirões.
  • Se um amigo sofrer algum acidente, vá até o hospital. Leve um disco ou livro pra ele. Não precisa conversar. Ele também estará assustado.
  • Um dia você precisará jogar tudo fora. Jogue. São apenas coisas.
  • Num beijo no escuro sempre abrace a garota, faça ela sentir que você está ali e que seus braços estão ao seu redor.
  • Quando uma garota suspirar de tesão no seu ouvido não sinta-se confiante demais. Mas sorria.
  • Reconheça suas vitórias. São mais comuns do que parecem.
  • Trepar é uma questão de ritmo, força e fôlego. E você consegue entender isso tudo escutando música.
  • Sexo é fúria. Faça sexo como se você fosse morrer após o orgasmo.
  • Vista-se com coerência. Não chame atenção, não há necessidade.
  • Aprenda a cozinhar ao menos um prato.
  • Se jogue de um barranco na água. De olhos abertos.
  • Quando uma garota estiver se afastando grite "ei, eu te amo" para que todo mundo ouça.
  • Não, ela não achará idiota.
  • Acorde aos poucos. Aprenda a tomar café.
  • Mantenha o foco em conversas.
  • Ao reconhecer um idiota, deixe-o sozinho.
  • Ao ver uma briga, nunca se meta no meio. Todavia, se um amigo estiver nela, nem precisa pensar duas vezes.
  • Assista e leia o Poderoso Chefão. Várias vezes.
  • Faça listas.
  • Ignore listas.
E no final das contas:

"As the great warrior poet Ice Cube once said: 'if the day does not require an AK, it is good.'"

sexta-feira, 3 de julho de 2009

Software Livre

Então, fiquei com vontade de escrever sobre Software Livre hoje. Para colocar o contexto da minha postagem, ontem participei do Google Open Source Jam aqui em Belo Horizonte - Minas Gerais. Além disso trabalho num projeto que terá o código fonte publicado assim que o CD for distribuído (pois estou trabalhando no código do YAST que é GPL).

O open source jam foi bastante divertido , mas senti falta das pessoas colaborarem mais. Na verdade as maiores dicussões foram relacionadas a problemas nos projetos dos outros do que a soluções.

Fiquei pensando que falta uma união maior aos desenvolvedores de SW-livre. Aparentemente, as pessoas ficam mais preocupadas em mostrar o "tamanho do pau delas" ao invés de tentar ajudar as coisas a melhorarem.

Coitado dos caras do CEFET que criaram um sistema de distribuíção de imagens via torrent, fizeram uma solução FODA, mas quase foram apedrejados, pelo menos eu senti assim.

A reação das pessoas desdenhando das soluções propostas foi triste. As brigas entre GNOME X KDE, GLP X BSD, micro-kernel x kernel-monolitico, etc são ridiculas! O pessoal tem que ser mais prático e tentar resolver os problemas sem frescura. O mundo real prefere soluções, independentes se elas estiverem em Assembler ou python (considerando as duas pontas de linguagems - Vou levar pedradas, o povo vai soltar ML, haskel, falar de JAVA.. )


Enfim.
Precisava de desabafar isso, bom que tenho um blog que ninguém lê. :-)

VAMOS COLABORAR GALERA! e não ficar medindo quem sabe mais de determinado assunto de SW livre.

terça-feira, 16 de junho de 2009

Análise da proposta de renovação do arrendamento do Diamond

Realmente, a proposta atual é uma merda... vejam mais em: http://www.naorenovediamondgalo.hpg.com.br/index.htm

Basicamente, o galo deixará de ganhar R$185 milhões de reais se aceitar a proposta da Multiplan. Acho que deve-se apresentar uma contra-proposta com base na análise ou não aceitar e esperar o contrato terminar.

quinta-feira, 21 de maio de 2009

Configurando X no Asus EeePC900

O Asus EeePC 900 possui uma série de peculiaridades na sua configuração de vídeo, para utilizar a resolução de 1024x600, coloque o seguinte conteúdo no arquivo /etc/X11/xorg.conf:

# generic XFree86 4.x configuration file

Section "Files"
FontPath "/usr/share/fonts/truetype/"
FontPath "/usr/share/fonts/uni/"
FontPath "/usr/share/fonts/misc/"
InputDevices "/dev/input/mice"
EndSection

Section "ServerFlags"
Option "AllowMouseOpenFail"
Option "BlankTime" "0"
EndSection

Section "Module"
Load "dbe"
Load "glx"
Load "dri"
Load "extmod"
Load "synaptics"
EndSection

Section "InputDevice"
Driver "kbd"
Identifier "Keyboard[0]"
Option "Protocol" "Standard"
Option "XkbRules" "xfree86"
Option "XkbKeycodes" "xfree86"
Option "XkbModel" "pc104"
Option "XkbLayout" "us"
EndSection

Section "InputDevice"
Driver "mouse"
Identifier "Mouse[1]"
Option "Protocol" "explorerps/2"
Option "Device" "/dev/input/mice"
EndSection

Section "Monitor"
Identifier "Monitor[0]"
VendorName "ASUS"
ModelName "Eee PC P900"
Modeline "1024x600" 48.96 1024 1064 1168 1312 600 \
601 604 622 -HSync +Vsync
EndSection

Section "Device"
Driver "intel"
VendorName "Intel Corporation"
BoardName "Mobile 915GM/GMS/910GML Express Graphics \
Controller"
BusID "PCI:0:2:0"
Identifier "Device[0]"
EndSection

# Screen Section for module X support
# -------------------------------------
Section "Screen"
DefaultDepth 16
SubSection "Display"
Depth 16
Modes "1024x600" "800x600"
EndSubSection
SubSection "Display"
Depth 24
Modes "1024x600" "800x600"
EndSubSection
SubSection "Display"
Depth 32
Modes "1024x600" "800x600"
EndSubSection
SubSection "Display"
Depth 8
Modes "1024x600" "800x600"
EndSubSection
Device "Device[0]"
Identifier "Screen[0]"
Monitor "Monitor[0]"
EndSection
Section "DRI"
Mode 0666
EndSection



Section "ServerLayout"
Identifier "Layout[all]"
InputDevice "Keyboard[0]" "CoreKeyboard"
InputDevice "Mouse[1]" "CorePointer"
Option "Xinerama" "off"
Screen "Screen[0]"
EndSection

As linhas que contem um \ devem ser juntadas para dar certo. Coloquei o \ porque essa porcaria de blog nao quebra linha. :-)