O Caso Dunga

O maior “escândalo” da Copa do Mundo com a esquadra brasileira foram as declarações do técnico Dunga chamando um jornalista de “merda, cagão”. Dunga é conhecido por sua raiva com o jornalismo brasileiro, mas todos falaram que foi descabido os insultos falados. Eu realmente consigo entender a raiva que o Dunga tem com o jornalismo brasileiro mas, assim como muitos, me pareceu um pouco exagerado. Foram aí que alguns fatos passaram por mim:

Fato 1: “Vergonha Alheia”

No matinal da Rádio Gaúcha (cujo nome eu sou incapaz de lembrar e me recuso a chamar aquilo de “jornal”), Túlio Milman, que escreve a segunda página da Zero Hora, comentou o seguinte numa das entrevistas (aproximadamente, não consigo lembrar exatamente as palavras usadas):

Me sento envergonhado como jornalista quando vejo as entrevistas coletivas em que um jornalista, que deveria perguntar sobre a seleção, vem com um conjunto de opiniões próprias e termina com ‘O que você acha?’. Isso não é jornalismo.

Fato 2: “Memoria de Elefante”

Em uma das coletivas, o técnico respondeu para um jornalista que tinha “memória de elefante” sobre o mesmo jornalista ter perguntando se o Robinho deveria realmente ir para a copa e agora estar perguntando porque o Robinho não entrou no lugar do Kaká. Ao que tudo indica, o jornalista no caso
Dunga falou para jornalista sobre sua memoria de elefante (aparentemente, Robinho) era o mesmo jornalista que teve que ouvir de Dunga.

Fato 3: “Jornalista nao deve misturar pessoal com profissional”

Ontem (23 de junho), ao retornar para casa, fiquei ouvindo o programa “Pretinho Básico” no rádio. Como a Atlântida é parte do grupo RBS, assim como a rádio Gaúcha, houve uma brincadeira entre os apresentadores e o apresentador Sílvio Benfica (acredito eu, sou terrível com nomes) e foi perguntando, em tom de leve brincadeira: “E então Sílvio, o que os teus colegas da SporTV estão achando do comentário do Dunga?”. A resposta veio (de novo, não exatamente com estas palavras):

Olha… Eu realmente não quero comentar sobre isso, eu não quero atiçar essa fogueira mas, na minha opinião, jornalista não deveria misturar questões pessoais com profissionais.”

Perceba que, na opinião de alguém que está perto do evento real, quem não deveria misturar o pessoal é o jornalista.

Fato 4: “Dossie UOL”

Em vários lugares da internet, estão colando um link para uma notícia do UOL que afirma que a Globo tem sido vetada sem parar pelo técnico, mesmo com ordens da CBF. Há, ainda, alguns dizendo que o jornalista fez o comentário de propósito, justamente para provocar Dunga e, assim, fazer com que o mesmo baixasse a cabeça e cedesse.

Fato 5: “Nem tava olhando pra ti”

As informações da entrevista em questão contam que a conversa entre o técnico brasileiro e o jornalista foram algo do tipo:

Dunga: “Hein?”
Jornalista: “Nada. Eu nem tava falando contigo.”
Dunga: “Ah…”

Bom, eu não se mais alguém vai concordar comigo, mas se, por algum motivo, tu interropme alguém, é costumeiro pelo menos pedir desculpas. Como pode ser visto, não foi o ocorrido.

Não espere respeito de quem não te respeita.

Fato 6: A Camêra

Alguém me apontou que o Dunga deveria pelo menos lembrar que as caméras estariam viradas para ele e que alguém poderia “ler” o que ele falou. Neste caso, meu problema é que, justamente, não temos como ver o que o jornalista estava fazendo (rosto, postura corporal.) De novo, fica a pergunta se realmente o que foi feito não foi uma provocação pra cima do técnico.

“Efeito Coreia do Norte”

A grande questão que sobra é não temos como perceber exatamente o que aconteceu porque o “prejudicado” nesta história, segunda a imprensa, é quem tem todos os direitos de transmissão e pode, a seu bel prazer, simplesmente não transmitir coisas que poderiam explicar o evento inteiro.

Kick-Ass (2010)

IMDB Plot:

Dave Lizewski is an unnoticed high school student and comic book fan who one day decides to become a super-hero, even though he has no powers, training or meaningful reason to do so.

My standard warning: there may be spoilers.

My non-standard warning: Before watching the movie, I read the comics. So I may spoil the movie and the comics.

For one thing, when I thought about this, I thought about Frank Miller, author of the “deconstructing heroes” comic “Watchmen” but alas, not the same person (and their lastnames are not even written the same way!)

But, in a way, “Kick-Ass” is also a “deconstructing heroes” comic/movie, in the sense of “what is a hero?” (while “Watchmen” is a “What makes a hero?”) So it goes hand-to-hand with Watchmen.

The plot was substantially changed from the comic to the movie (although the main plot is still there.) Some things for good, some for bad. For example, in the book, the relationship between Dave and his father is explored further, to point where you notice that he actually cares about him; in the movie, this is barely touched which makes Dave’s decision to help others somewhat strange. On the other hand, the douchery that Hit Girl and Big Daddy are in the comic are completely removed to the point that you actually care about them.

Aaron Johnson as Kick-Ass/Dave works. And that’s all I can say about it: Not a surprising acting, but also not bad. Chloe Moretz is weird, but what could you expect from a 13 year old girl that says “cunts”? Nicolas Cage is so and so, with some good moments and some “meh” moments. Mark Strong, playing the bad guy, really shines. I mean, really. Think Alan Rickman in “Die Hard” shinning. And Christopher Mintz-Plasse, as the bad guy’s son is… well, Christopher Mintz-Plasse: The guy never gets a chance to play anything else, always the small, puny kid that nobody cares.

Editing is strange, when compared with the comic: The linearity that the comic offers is completely broken here. Or maybe I felt it was broken because I knew the comic.

One thing that I was playing attention this time and that usually doesn’t happen is the soundtrack: Really, I usually don’t pay too much attention to it (unless the soundtrack is part of the movie — which is not the case here) but it really shines. It have the perfect combination of upbeat, seriousness and comic when appropriate.

All in all, I’d say: Stay away from the comic till you see the movie; then read the comic.

When Chrome crashes…

[6666:6680:32113841705:ERROR:net/base/host_resolver_impl.cc(802)] Called HostResolverImpl::CancelRequest() after Shutdown().
	0x86559f1
	0x8936372
	0x8936d85
	0x8196aa1
	0x867c3f7
	0x866f1c1
	start_thread [0x27a96e]
	0x38b8a4e
[6666:6691:32113881274:ERROR:net/ocsp/nss_ocsp.cc(480)] No URLRequestContext for OCSP handler.
--2010-06-17 17:38:06--  https://clients2.google.com/cr/report
Resolving clients2.google.com... 72.14.204.113, 72.14.204.100, 72.14.204.101, ...
Connecting to clients2.google.com|72.14.204.113|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `/dev/fd/3'

    [< =>                                    ] 0           --.-K/s              
Crash dump id: 5b50180e394484f6
    [ < =>                                   ] 16          --.-K/s   in 0s      

2010-06-17 17:38:08 (165 KB/s) - `/dev/fd/3' saved [16]

Damn Google: When you are going to learn to not hide stuff from users? What about stop being lazy and write a proper crash report tool and a proper update tool, instead of doing those things hidden from the user?

And yes, I’m tired of ksurl showing out of nowhere and basically killing my slow connection at home, with Chrome not saying a damn word about it.

“What if” iterable.join()

…or “Let’s keep floging this dead horse”…

Over the weekend I got some reactions over the str.join() vs list.join(). Well, just for fun, this morning I played “what if” in my head.

So, let’s say every iterable got a join() method. So you could

>>> a = ['s', 'l', 'o', 'w']
>>> a.join('')
slow

Exactly as JavaScript does. Mkay. A could even be a tuple and would still work. Or, stupidly enough, a string and still work. But, then, what would be the first thing that would cross you mind when you saw this code for the first time:

>>> a = ['s', 'l', 'o', 'w']
>>> b = ['r', 'u', 'l', 'z']
>>> c = a.join(b)

You have a list in one side and a list in the other with a “join” method. List-join-list. Well, I’d expect another list with ['s', 'l', 'o', 'w', 'r', 'u', 'l', 'z'] which is what extend() does.

But let’s return to the original str.join(): What it does is, join the iterable in the parameters using “self”. Mkay, so what would be:

c = ['r', ['s', 'l', 'o', 'w'], 'u', ['s', 'l', 'o', 'w'], 'l', ['s', 'l', 'o', 'w'], 'z']

Which doesn’t make any sense.

Let’s go further. join() could, possible, call str() for the parameter and still react like JavaScript join(). Why? Well, as you may already know, Python have dynamic typing which means any variable can be used. Just to remember:

var l = ['s', 'l', 'o', 'w']
var j = l.join('')

would result in “slow” in JavaScript. Mkay, so

>>> l = ['s', 'l', 'o', 'w']
>>> r = ['r', 'u', 'l', 'z']
>>> j = l.join(r)

Would result in… guess what, "s['r', 'u', 'l', 'z']l['r', 'u', 'l', 'z']o['r', 'u', 'l', 'z']w" which, not surprisingly, still doesn’t make sense. Ok, if r was a simple string, it would react exactly like JavaScript. But it would be a mess with any other types. And what’s the point of dynamic typing if you force types?

So, str.join() not only makes code simpler and avoid some mess of monkey-patching, it also removes a greater problem: ambiguity.

And yes, I understand that JavaScript list.join(str) makes sense, but it still have the problem with “What about the other types? Are you a racist?”

Edit: Just for curiosity, I wrote a list.join(list) code in JavaScript to see the results. Here they are for you mind-bloggling pleasure:

js> var l = ['s', 'l', 'o', 'w'];
js> var r = ['r', 'u', 'l', 'z'];
js> var j = l.join(r);
js> j
sr,u,l,zlr,u,l,zor,u,l,zw

Python: why str.join() and not list.join()

or “Slowpoke finally understands Python

When I was in Australia, one guy kept asking why Python had the “horrible” (in his opinion) str.join() instead of obvious (in his opinion) list.join()?

After working with JavaScript for a while, I can understand his opinion: In JS, you have a list.join() of sorts and it makes a hell lot of sense.

But, then again, this morning it finally hit me: str.join() uses an iterable object as parameter, so any iterable object will work. For example:

>>> p = 'python'
>>> '-'.join(p)
'p-y-t-h-o-n'
>>>

Ok, this is understandable, but why not have a list.join() too? Well, this would mean that every iterable object would have to have a join() method (str.join(), tuple.join(), dict.join(), list.join() and all the new iterable objects that appeared in Python 3.0.) Since the C API for Python doesn’t allow object hierarchies (and all base types are implemented in C), the same method would have to be implemented over and over again. Not only that, but you would have several different ways to join() stuff instead of one, (now) obvious way.

Another way to fix this would monkey-patch every object to have a join() method, but that’s not the Python way. Monkey-patch is never the Python way.

And the same rule applies to len(): it takes any iterable due the same reason.