forgiven not forgotten

Posted in english with tags , , on Friday, July 10, 2009 by bauermann

All alone, staring on
Watching her life go by
When her days are grey
And her nights are black
Different shades of mundane
And the one eyed furry toy
That lies upon the bed
Has often heard her cry
And heard her whisper out a name
Long forgiven, but not forgotten

You’re forgiven not forgotten
You’re forgiven not forgotten
You’re forgiven not forgotten
You’re not forgotten

A bleeding heart torn apart
Left on an icy grave
In the room where they once lay
Face to face
Nothing could get in their way
But now the memories of the man are haunting her days
And the craving never fades
She’s still dreaming of a man
Long forgiven, but not forgotten

You’re forgiven not forgotten
You’re forgiven not forgotten
You’re forgiven not forgotten
You’re not forgotten

Still alone, staring on
Wishing her life goodbye
As she goes searching for the man
Long forgiven, but not forgotten

You’re forgiven not forgotten
You’re forgiven not forgotten
You’re forgiven not forgotten
You’re forgiven not forgotten
You’re forgiven not forgotten
You’re forgiven not forgotten
You’re forgiven not forgotten
You’re forgiven not forgotten
You’re not forgotten
You’re not forgotten
No, You’re not forgotten

The Corrs

time to live

Posted in english with tags , , , on Thursday, July 9, 2009 by bauermann

― Quite an experience to live in fear, isn’t it? That’s what it is to be a slave.
― I’ve seen things you people wouldn’t believe. Attack ships on fire off the shoulder of Orion. I watched C-beams glitter in the dark near Tannhauser Gate. All those moments will be lost in time… like tears in rain.

everybody hurts

Posted in english with tags , , on Friday, July 3, 2009 by bauermann

When the day is long and the night, the night is yours alone,
When you’re sure you’ve had enough of this life, well hang on
Don’t let yourself go, ’cause everybody cries and everybody hurts sometimes

Sometimes everything is wrong. Now it’s time to sing along
When your day is night alone, (hold on, hold on)
If you feel like letting go, (hold on)
When you think you’ve had too much of this life, well hang on

‘Cause everybody hurts. Take comfort in your friends
Everybody hurts. Don’t throw your hand. Oh, no. Don’t throw your hand
If you feel like you’re alone, no, no, no, you are not alone

If you’re on your own in this life, the days and nights are long,
When you think you’ve had too much of this life to hang on

Well, everybody hurts sometimes,
Everybody cries. And everybody hurts sometimes
And everybody hurts sometimes. So, hold on, hold on
Hold on, hold on, hold on, hold on, hold on, hold on
Everybody hurts. You are not alone

R.E.M.

I’ve done questionable things

Posted in english with tags , , on Wednesday, July 1, 2009 by bauermann
Tyrell: I’m surprised you didn’t come here sooner.
Roy: It’s not an easy thing to meet your maker.
Tyrell: What can he do for you?
Roy: Can the maker repair what he makes?
Tyrell: Would you like to be modified?
Roy: I had in mind something a little more radical.
Tyrell: What seems to be the problem?
Roy: Death.
Tyrell: Death. Well, I’m afraid that’s a little out of my jurisdiction, you…
Roy: I want more life, fucker (father).
Tyrell: The facts of life: To make an alteration in the evolvement of an organic life system is fatal. A coding sequence cannot be revised once its been established.
Roy: Why not?
Tyrell: Because by the second day of incubation, any cells that have undergone reversion mutations give rise to revertant colonies like rats leaving a sinking ship; then the ship sinks.
Roy: What about EMS recombination?
Tyrell: We’ve already tried it. Ethyl methane sulfonate is an alkylating agent and a potent mutagen. It created a virus so lethal the subject was dead before he left the table.
Roy: Then a repressor protein that blocks the operating cells.
Tyrell: Wouldn’t obstruct replication, but it does give rise to an error in replication so that the newly formed DNA strand carries a mutation and you’ve got a virus again. But this – all of this is academic. You were made as well as we could make you.
Roy: But not to last.
Tyrell: The light that burns twice as bright burns half as long, and you have burned so very very brightly, Roy. Look at you. You’re the prodigal son. You’re quite a prize!
Roy: I’ve done questionable things.
Tyrell: Also extraordinary things. Revel in your time!
Roy: Nothing the god of biomechanics wouldn’t let you into heaven for.

Blade Runner

king of pain

Posted in english with tags , , on Monday, June 29, 2009 by bauermann

There’s a little black spot on the sun today
It’s the same old thing as yesterday
There’s a black hat caught in a high tree top
There’s a flag pole rag and the wind won’t stop

I have stood here before inside the pouring rain
With the world turning circles running round my brain
I guess I’m always hoping that you’ll end this reign
But it’s my destiny to be the king of pain

There’s a little black spot on the sun today
That’s my soul up there
It’s the same old thing as yesterday
That’s my soul up there
There’s a black hat caught in a high tree top
That’s my soul up there
There’s a flag pole rag and the wind wont stop
That’s my soul up there

I have stood here before inside the pouring rain
With the world turning circles running round my brain
I guess I’m always hoping that you’ll end this reign
But it’s my destiny to be the king of pain

There’s a fossil that’s trapped in a high cliff wall
That’s my soul up there
There’s a dead salmon frozen in a waterfall
That’s my soul up there
There’s a blue whale beached by a springtides ebb
That’s my soul up there
There’s a butterfly trapped in a spider’s web
That’s my soul up there

I have stood here before inside the pouring rain
With the world turning circles running round my brain
I guess I’m always hoping that you’ll end this reign
But it’s my destiny to be the king of pain

There’s a king on a throne with his eyes torn out
There’s a blind man looking for a shadow of doubt
There’s a rich man sleeping on a golden bed
There’s a skeleton choking on a crust of bread

King of pain

There’s a red fox thorn by a huntsman’s pack
That’s my soul up there
There’s a black winged gull with a broken back
That’s my soul up there
There’s a little black spot on the sun today
It’s the same old thing as yesterday

I have stood here before inside the pouring rain
With the world turning circles running round my brain
I guess I’m always hoping that you’ll end this reign
But it’s my destiny to be the king of pain

King of pain
King of pain
King of pain
I’ll always be king of pain
I’ll always be king of pain
I’ll always be king of pain…

Police

heroin

Posted in english with tags , , on Saturday, June 27, 2009 by bauermann

I don’t know just where I’m going
But I’m gonna try for the kingdom, if I can
‘Cause it makes me feel like I’m a man
When I put a spike into my vein
And I’ll tell ya, things aren’t quite the same
When I’m rushing on my run
And I feel just like Jesus’ son
And I guess that I just don’t know
And I guess that I just don’t know

I have made the big decision
I’m gonna try to nullify my life
‘Cause when the blood begins to flow
When it shoots up the dropper’s neck
When I’m closing in on death
And you can’t help me now, you guys
And all you sweet girls with all your sweet talk
You can all go take a walk
And I guess that I just don’t know
And I guess that I just don’t know

I wish that I was born a thousand years ago
I wish that I’d sail the darkened seas
On a great big clipper ship
Going from this land here to that
In a sailor’s suit and cap
Away from the big city
Where a man can not be free
Of all of the evils of this town
And of himself, and those around
Oh, and I guess that I just don’t know
Oh, and I guess that I just don’t know

Heroin, be the death of me
Heroin, it’s my wife and it’s my life
Because a mainer to my vein
Leads to a center in my head
And then I’m better off and dead
Because when the smack begins to flow
I really don’t care anymore
About all the Jim-Jim’s in this town
And all the politicians makin’ crazy sounds
And everybody puttin’ everybody else down
And all the dead bodies piled up in mounds

‘Cause when the smack begins to flow
Then I really don’t care anymore
Ah, when the heroin is in my blood
And that blood is in my head
Then thank God that I’m as good as dead
Then thank your God that I’m not aware
And thank God that I just don’t care
And I guess I just don’t know
And I guess I just don’t know

The Velvet Underground

crime e castigo

Posted in português with tags , , , , , on Tuesday, June 2, 2009 by bauermann

Até que enfim vejo uma medida punindo os criminosos (sim, transformar em pó o dinheiro de aposentadoria e o emprego de pessoas inocentes é crime na minha concepção) pela crise do mercado (ou circo) financeiro:

A lógica dessa operação é objetiva. Uma empresa é um ativo nacional e vale mais em operação do que fechada. Funcionando, além dos ativos a GM tem marca, tecnologia, operação de vendas, de marketing, pessoal estruturado, sistemas de financiamento de vendas, relação com subsidiárias em outros países. Fechada, será apenas um amontoado de imóveis e equipamentos.

Por isso preserva-se a empresa, parte dos empregos, dos fornecedores, o know how acumulado, e penalizam-se apenas os acionistas e os gestores.

Se bem que tem certas coisas que não mudam nunca:

Além disso, os governos dos EUA e do Canadá puderam condicionar sua ajuda à redução de uma série de custos, incluindo os trabalhistas. Houve negociação que transferiu parte das ações aos sindicatos em troca de abrir mão de alguns direitos.

status update on GDB work

Posted in english with tags , , , , , , , , on Sunday, May 24, 2009 by bauermann

Ok, so this time I won’t talk about Python scripting support in GDB. I’m getting tired of it myself. :-) I’ll just comment that it’s amazing the number of problems people in IRC report with GDB that can be solved with the Python support that we’re adding to it. Sometimes they need stuff which is only on the branch, but sometimes even the few bits already in CVS HEAD are enough!

Er, I actually do have one more thing to say about the subject: GDB had one project accepted in the Google Summer of Code 2009. Oguz Kayral is the student working on it, and I am his mentor. He will add support for subscribing to inferior events (e.g., signals, process and thread stops, thread creation) from Python. One use case for which this is useful was given by an IRC user at the #gdb channel:

<LimCore> how to run gdb from command line, so that it will run ./foo.bin with arguments: foo bar baz and it will run it instantly without waiting for ‘r’; And if program segfaults then it will do ‘bt’ without waiting for the command. (and if program terminates normally then it will also just quit)

LimCore will be able to write a simple and short Python script using the events API to solve his problem.

Now, moving on to other items: my team has been asked to improve GDB support for the hardware debug facilities in embedded PowerPC processors (for more info about these facilities, see Chapter 10 of Book III-E of the Power ISA v2.06). I announced this work to the GDB mailing list back in early March, and got useful insight from Joel Brobecker.

Today I posted an update on where we are with this work. We have the following ready for both native GDB and gdbserver on Linux:

  • one additional hardware watchpoint (two in total),
  • four hardware breakpoints,
  • one ranged hardware watchpoint.

And we still have the following features ahead of us:

  • support for the two DVC (Data Value Compare) registers, which enable hardware-accelerated conditions for hardware watchpoints,
  • two ranged hardware breakpoints.

Last and least, I was thinking of posting monthly GDB updates on what happened in GDB in the previous month as I did back in February, but I got busy and didn’t get around to it. I still entertain the idea though, so if you think it’s worth it, I’d be glad to know.

status update on python scripting support

Posted in english with tags , , , , , , , on Tuesday, March 31, 2009 by bauermann

It’s been a while since I last talked about Python scripting support in GDB. Mostly because I’ve been focusing on getting stuff from the branch merged into CVS HEAD, so that GDB 7.0 can have some useful Python bindings.

The latest two patches committed upstream are for creating convenience functions in Python, and fo manipulating a program’s stack frames as Python objects. So, what can you do with those? I’ll borrow an example from Tom Tromey here: suppose you want to set a breakpoint which triggers only when the code is called by one specific function. You can create a convenience function like this:

import gdb
import re

class CallerIs (gdb.Function):
    """Return True if the calling function's name is equal to a string.
This function takes one or two arguments.
The first argument is the name of a function; if the calling function's
name is equal to this argument, this function returns True.
The optional second argument tells this function how many stack frames
to traverse to find the calling function.  The default is 1."""

    def __init__ (self):
        super (CallerIs, self).__init__ ("caller_is")

    def invoke (self, name, nframes = 1):
        frame = gdb.selected_frame ()
        while nframes > 0:
            frame = frame.older ()
            nframes = nframes - 1
        return frame.name () == name.string ()

CallerIs ()

And then create a conditional breakpoint using it, as in:

(gdb) break foo.c:42 if $caller_is ("some_function")

Or, to check the name of the grand-grand-caller of the code:

(gdb) break foo.c:42 if $caller_is ("some_function", 3)

Cool, huh? Now, why bother writing that big doc comment? GDB will use it as online help for the function you wrote:

(gdb) help function caller_is
Return True if the calling function's name is equal to a string.
This function takes one or two arguments.
The first argument is the name of a function; if the calling function's
name is equal to this argument, this function returns True.
The optional second argument tells this function how many stack frames
to traverse to find the calling function.  The default is 1.

One other patch which was merged in HEAD enables creating new GDB commands in Python, so you can write new commands to do some frame tricks too!

If you’d like to know more about the Python scripting work in GDB, I suggest you read the series of blog posts from Tom Tromey on this subject. It’ll give you a pretty good idea of what we have in the Python branch, and the direction we’re heading. Just keep in mind that some method names and syntax changed since he wrote that. Refer to the GDB manual in the Python branch (“make gdb.pdf” in gdb/doc/) or the example scripts (also in the Python branch, in gdb/python/lib/gdb/) for up-to-date details.

a falida imprensa brasileira

Posted in português with tags , , , , on Thursday, March 26, 2009 by bauermann

Hoje no twitter um tal de Instituto Millenium começou a me seguir. Ainda não manjo muito de twitter, mas já deu pra perceber que certas pessoas e instituições ficam seguindo pessoas ao léu como forma de se promover ou propagandear de forma não solicitada (i.e., spam). Mas não é esse ponto que quero destrinchar agora.

Enfim, eu fiquei curioso pra saber o que é esse tal instituto (pois é, infelizmente spam funciona). Fui no website, li algumas seções da parte institucional. Dizem na seção “Quem somos”:

O Instituto Millenium é uma organização sem fins lucrativos, sem vinculação político-partidária, que promove valores fundamentais para a prosperidade e o desenvolvimento humano da sociedade brasileira.

E na seção “Carta de Princípios”:

O Instituto Millenium é uma associação de fins não econômicos, sem fins lucrativos, que será enquadrada sob a lei das Organizações da Sociedade Civil de Interesse Público (OSCIP), independente de qualquer grupo político, religioso, empresarial ou governamental, mantida por doações de indivíduos, fundações ou empresas.

[...]

O Instituto Millenium não aceita contribuições que impliquem posicionamento predeterminado diante de qualquer tema ou outro procedimento que de alguma forma comprometa a integridade intelectual de seus trabalhos.

Os destaques em negrito são meus, não do texto original. Parece muito bom e muito bonito, um grupo de pessoas imparciais tentando promover mudanças na sociedade. Só que tem dois problemas aí. Um deles você percebe quando começa a ver a lista de membros e diretores do instituto. Tem dois ex-presidentes do Banco Central, dois altos executivos da Globo, três ou quatro presidentes ou sócios de grandes bancos privados, três ou quatro jornalistas  ou ex-jornalistas da Rede Globo, o presidente do Grupo Gerdau, o presidente do Grupo Abril, e por aí vai.

Ou seja, eles estão nos chamando de idiotas ao se apresentarem como um grupo sem vinculação política. É óbvio que representam um segmento bastante específico da sociedade, com muito poder e articulação política.

O outro problema é sistêmico no jornalismo brasileiro: apresentar-se como neutro e isento, quando na realidade isso não existe em grupo nenhum, em lugar nenhum. Qual o problema de dizer claramente que sua linha editorial defende uma orientação política X? Isso é comum nos EUA e em outros países. Ao invés disso, aqui existe essa palhaçada.

Isso é só mais uma instância que confirma o que venho reparando a muito tempo, e que estava planejando abordar neste blog: o jornalismo no Brasil não cumpre sua função social, que é de informar a sociedade sobre questões importantes da atualidade de tal forma que dê embasamento às pessoas a formarem sua própria opinião a respeito dessas questões. Não é necessário ser imparcial para isso (até por que é impossível sê-lo nas questões mais importantes), basta deixar claro qual a linha editorial do veículo de comunicação para que as pessoas possam ponderar o que está sendo veiculado.

Ao invés disso, o jornalismo brasileiro deturpa e filtra propositadamente o que divulga, com objetivos claros e bem definidos que beneficiam o setor da sociedade que representam, ao mesmo tempo em que se pintam de cordeiros e bastiões da justiça e imparcialidade.

Sinceramente, se você está lendo este texto e estuda ou trabalha na área de jornalismo, deveria em primeiro lugar sentir vergonha de seus colegas, que criaram e mantêm essa lama. Em segundo lugar, deveria orientar sua carreira de forma a combater essa situação.