hisham hm

🔗 Descoberta do dia: o site do Banco do Brasil compartilha cada clique seu com o Facebook

Observação: como o texto abaixo claramente já explicava, um título mais tecnicamente correto seria: “o site do Banco do Brasil compartilha cada link que você acessa nele com o Facebook” (ou seja, cada clique que solicita uma nova página), não absolutamente cada clique do mouse.

Updates: recebi o contato do Banco do Brasil e o problema já foi resolvido, ver no final.


Porra, Banco do Brasil! Quando eu vi aquela “aba” com o logo do Facebook dentro do site seguro do banco, logo pensei que seria uma coisa muito idiota carregar material do site do Facebook de dentro da conexão segura com o banco. Fiquei com raiva do Banco sequer oferecer essa opção pras pessoas.

Aí fui verificar as conexões que o site já faz quando carrega… e lá estava (ver imagem). O site uma requisição ao domínio facebook.com de dentro do site do BB a cada página que eu acesso.

(Sim, e o facebook.com responde com “no-cache” pra garantir que o arquivo não seja armazenado temporariamente, pra se certificar que eles são notificados a cada link que eu clico no site.)

Que lindo. Mesmo se eu NÃO clicar na abinha Facebook, o Facebook é informado que eu (porque eles já sabem o meu IP afinal então cruzar com os hits via BB é trivial) acabei de pedir pra ver meu extrato. (O BB aparentemente não é tão burro a ponto de enviar os dados da página pro Facebook, mas é burro a ponto de enviar a URL (Referer ali na imagem), através da quel dá pra descobrir quais as operações realizadas — cada fundo de investimento tem uma URL diferente, por exemplo.)

Primeiro eu achava esse site novo do BB só feio. Aí eu tentei usar e vi que tem pior usabilidade. Agora eu descobri que é menos seguro. Sabe-se lá o que mais de tosco ele faz.

Clientes de internet banking do BB: a alternativa mais simples é clicar em “Versão Anterior” no topo da página (eu verifiquei e ela não faz hits para facebook.com). É um paliativo enquanto o BB não tira a versão antiga do ar, pelo menos! Ainda assim o Facebook fica sabendo a cada vez que você loga, porque precisa entrar no site novo uma vez pra clicar no “Versão Anterior”.

Uma opção melhor é instalar o Adblock Plus, apertar Ctrl+Shift+V na página do Banco do Brasil, achar o item do facebook.com na lista, clicar com o botão direito e marcar “Block this Item”.

Sério, pra onde eu tenho que gritar pra que o Banco do Brasil conserte isso?


Update: 07/mar/2014 16:08: Depois de trocar algumas mensagens via Twitter, um representante do Banco do Brasil me ligou. Foi bastante solícito. Disse que o departamento de TI deles estava conferindo a situação desde ontem e que hoje deve entrar no ar uma versão nova com a integração com o Facebook “temporariamente desligada”. Disse também que mais adiante eles vão ver como fazer isso da forma certa. Ao meu ver não deveria ter integração nenhuma, mas no mínimo que não haja integração pra quem não peça explicitamente por ela. Pelo visto o problema vai ser consertado mesmo. Valeu a todos que compartilharam!

Update 2: 07/mar/2014 18:00: E acabo de conferir no site e o problema já foi resolvido! Valeu!

🔗 Hoje tem novo protesto contra o aumento das passagens no Rio

Ano passado, os protestos começaram com o aumento de 20 centavos se amplificaram, fenômeno que todos lembramos. Conversei sobre política com pessoas com quem nunca tinha conversado. Ao meu ver o que aconteceu em 2013 deixou marcas fortes e positivas em muita gente.

Esse ano, porém, o aumento de 25 centavos passou virtualmente batido pela opinião pública. A única questão mais discutida foi a trágica morte do cinegrafista, que teve o efeito colateral de afastar as pessoas ainda mais das manifestações. Fui em três atos desde que a passagem subiu: aquele onde o cinegrafista morreu e dois seguintes. Estes últimos foram muito pacíficos e tiveram cobertura intensa da imprensa, brasileira e internacional. Curiosamente, a Etiene acabou dando entrevista pra repórteres estrangeiros em duas ocasiões diferentes.

Vejo lá muitos estudantes, alguns membros dos partidos de oposição à esquerda, e uma que outra pessoa que está lá para levantar uma causa específica. Me chama a atenção que não tenho visto nas manifestações os sindicatos. Ano passado eles eram muito presentes e tinham papel de organização. Também não vejo aquela “população em geral”, muitos dos quais, foram pra rua pela primeira vez nos eventos do ano passado.

Não tenho visto os protestos ganharem momentum. Falo com amigos e me dizem que estão com medo de participar. A pouca diversidade de representação nos protestos está tornando o discurso mais homogêneo, mas isso também afasta as pessoas. O protesto de hoje se diz contra o aumento da passagem mas também “pela estatização dos transportes”. Essa última é uma bandeira que muita gente não defende, e com a qual eu tenho pé atrás. Ao fim, vai deixando de ser um protesto plural e vai chegar uma hora que eu também não vou querer defender uma bandeira que não é a minha.

Meu pé atrás maior, porém, é com a tônica dos protestos. Os estudantes gostam das palavras de efeito, os velhos slogans românticos da esquerda. Mas ao mesmo tempo perdem totalmente a oportunidade de falar com a opinião pública, de gerar empatia. Como eu comentei no último protesto, só quem está aqui, ouvindo os gritos são os policiais e os jornalistas. O Cabral não está lá e nem quer saber. Então em vez de fazer as demandas, perde-se tempo antagonizando os presentes? Pelo menos eles estão aqui. Em vez de gritar pros policiais “au au au cachorrinho do Cabral”, não faz infinitamente mais sentido aquele outro grito “você aí fardado, também é explorado”? O primeiro meramente extravasa a agressividade de quem grita, parecendo uma criança que atiça um cachorro brabo preso na corrente no quintal. Só gera mais raiva. O segundo grito gera empatia; porque é uma verdade: o policial sabe que é explorado. O policial faz cara feia e não perde a pose, mas ao ouvir o segundo grito, a gente sabe que por dentro ele concorda.

Minha impressão é que aquele público ali, formado principalmente por estudantes, quer em sua maioria protestar porque é o happening, a coisa a se fazer. No fundo a gente sabe que não estão ali realmente pelo aumento da passagem, é mais pela vontade de que os protestos cresçam até o que foram ano passado. Mas falta algo de real nos protestos. Ficam gritando sem parar “não vai ter copa”, um grito que foi remendado para “não vai ter copa e nem aumento”. É claro que vai ter copa! E o aumento já teve! Dá vontade de chacoalhar as pessoas ali e dizer “parem de brincar, bora falar sério!”

Depois de tudo que aconteceu ano passado, eu considerei esse aumento um insulto. Uma retaliação prática que fiz foi basicamente parar de andar de ônibus. Se é pra pagar R$3,00 por esse serviço que está sendo provido, eu pago R$3,20 e vou e volto da PUC de metrô com ar condicionado. Fazendo as contas, o que eu deixo de pagar pro cartel dos ônibus é como se eu tivesse “cancelado a NET” e mudado de provedor. É pouco mas é algo. Claro que estou numa situação peculiar de morar num lugar que é servido pelo metrô (precisei andar de ônibus uma vez apenas nas duas últimas semanas). Na real estou até satisfeito com a troca: apesar de agora precisar fazer uma conexão, na média o tempo que eu gasto é o mesmo. Infelizmente, foi anunciado hoje que ao contrário do anunciado anteriormente a tarifa do metrô também vai aumentar. O único jornal que colocou isso na manchete hoje foi o tablóide “Povo”, que o jornaleiro do meu bairro fez questão de pendurar com destaque. (http://jornalpovo.com)

Protestos, manifestar o descontentamento, funcionam. Em função do repúdio ao Marco Feliciano, esse ano a bancada do PT não vai deixar a Comissão de Direitos Humanos na mão do PSC. Ano passado a passagem abaixou, a presidente entrou em cadeia nacional, ações foram realizadas. Os protestos desse mês, embora ainda não cheguem perto dos do ano passado, já geraram reação virulenta de Veja e cia. Isso significa que estão sim incomodando. E com a proximidade da copa, espera-se que o que aconteceu ano passado seja relembrado. O que eu desejo é que até lá essa resistência já esteja mais amadurecida. Depende de cada um de nós.

Hoje eu vou mais uma vez ao protesto. Sempre um pouco como observador, vendo pra que lado a coisa vai, mas sempre que concordar com o grito, juntarei a minha voz. Estarei na Candelária lá pelas 18h. Apareçam! Ajudem a dar um bom rumo à coisa. O protesto só será não-violento e sensato se os sensatos e não-violentos forem.

🔗 Uma postura radical de não-violência é o único caminho que progride

Estou cansado de ouvir da esquerda “ah, eu não faria mas eu não julgo quem faz quebra-quebra, é válido também” e estou cansado de ouvir da direita “o povo está cansado e uma hora tem que pegar em armas e fazer justiça com as próprias mãos”. Independentemente se vocês acham isso moralmente certo ou errado, isso NÃO FUNCIONA.

Olhem pro mundo à volta de vocês se querem mais exemplos de onde esse tipo de postura leva.

Li um livro muito interessante esses dias, “Não-violência”, de Mark Kurlansky, que embasou algumas coisas que eu pensava e trouxe alguns exemplos muito válidos.

Índia. Resistência armada aos ingleses foi sempre fútil. Eventualmente os ingleses se alinharam com os poderosos da Índia para controlar o povo: os reis locais continuaram governando, mas em deferência à Inglaterra. Somente a resistência não-violenta de Gandhi foi capaz de unir os povos da Índia pela causa comum de expelir os ingleses.

Num conflito, é preciso ganhar a mente da maioria. Táticas como black blocs alienam a massa. E a massa tem direito (e ao meu ver razão) de não apoiar.

África do Sul. Antes de ser preso, Mandela liderava uma guerrilha contra o governo que nunca deu em nada. A organização dele, ANC, figurava em listas internacionais de terrorismo até poucos anos. Somente ao renunciar a guerrilha e abrir a conversações que se deram passos à frente.

Outros exemplos que não estavam no livro, mas que eu lembro por ter acompanhado. Vou escrevendo à medida que vou lembrando.

Irlanda do Norte. Décadas de conflitos sangrentos em uma guerra com motivação religiosa. A única coisa que anvançou entre IRA e os unionistas foi o número de mortos, até que se aceitou conversar, e não foi então o IRA, mas o seu braço político, o Sinn Fein, quem travou o acordo de paz.

Palestina. Depois de tantas guerras perdidas nos anos 40, 50, 60 e 70, nos anos 80 a OLP decide baixar as armas. Paus e pedras contra rifles e tanques, pro mundo todo ver. Paus e pedras ainda não são não-violência, mas comparado ao que se tinha antes, foi um passo à frente. Resultado: a OLP é reconhecida mundialmente como representante do povo palestino e nos anos 90 foi criada a Autoridade Palestina e se progredia por um caminho de paz, até que os dois lados retomaram o conflito armado que acabou resultando na divisão política de Gaza e Cisjordânia, enfraquecendo ainda mais os palestinos.

A cartada de mestre do desgraçado Sharon: bastaria incitar a violência (com o gesto simbólico da visita que ele fez à mesquita ocupada), que com a violência tudo que os palestinos construíram iria por água abaixo.

Primavera árabe. Egito. Protestos pacíficos seguidos de repressão policial. O povo explicitamente decidiu não revidar e se manter pacífico na praça. A cidade estava sem lei. A população se organizou para manter a ordem e impedir saques, quebra-quebra, até organizar o trânsito. O governo caiu.

Síria. Protestos pacíficos seguidos de repressão policial. O povo pegou em armas seguindo o exemplo da Líbia (onde o governo não foi derrubado pela força de guerrilha do povo, mas pelo suporte da OTAN). O suporte da OTAN não veio. Três anos de guerra civil, incontáveis mortos e milhões de refugiados.

Os sucessos e fracassos da Primavera Árabe se correlacionam muito com a atitude da população nos levantes de cada país.

Colômbia. Governo é um estado cliente dos Estados Unidos. Grupos de esquerda se organizam para tomar o país de volta por meio de táticas violentas. A violência segue, segue, mas sem progresso. As “forças revolucionárias” acabam se tornando um fim em si mesmas, com o objetivo de manter o próprio poder, baseados na força econômica do narcotráfico. De uns anos pra cá, pela primeira vez a ideia de conversações de paz tem entrado em pauta, muito em função do desgaste público das FARC. Vamos torcer.

México. Na guerra contra o narcotráfico formaram-se recentemente grupos vigilantes civis que se intitulam “forças de autodefesa” em que a população pegou em armas para retomar cidades controladas pelo cartel. O movimento já tem mais de 20 mil pessoas envolvidas. O governo tem apoiado e legalizou o funcionamento dos grupos em determinadas regiões. Parece um cenário de sonho para aquelas pessoas que acham que “o povo tem que fazer justiça com as próprias mãos”, mas é só comparar com o que já aconteceu em outros lugares pra ver que é questão de tempo até que esses grupos se tornem um fim em si mesmos.

O que sustenta o poder são as pessoas, seja numa democracia, seja numa ditadura. Táticas de resistência que alienam a população servem unicamente ao poder estabelecido. Há de se saber as maneiras de resistir. E seguir resistindo.

“Every generation has to fight the same battles. And there is no final victory. And there is no final defeat.” — Tony Benn

🔗 Migrating my projects from SourceForge+Subversion to Github+Git

It’s been a while that I’ve been using Git comfortably — even though I still get stumped now and then, the workflow is much better than Subversion. I do finer grained commits with ease and I’m no longer afraid of making branches. Still, some projects of mine are still hosted in svn servers, mostly due to inertia and because they’re mostly single-person projects with the occasional patch and bug report but not much collaboration. For a more “social” project such as LuaRocks, git and Github have proven to be very useful tools.

Farewell to SourceForge

This, however, was the push I needed to move my projects away from SourceForge. From gimp.org:

In the past few months, we have received some complaints about the site where the GIMP installers for the Microsoft Windows platforms are hosted.

SourceForge, once a useful and trustworthy place to develop and host FLOSS applications, has faced a problem with the ads they allow on their sites - the green “Download here” buttons that appear on many, many adds leading to all kinds of unwanted utilities have been spotted there as well.

The tipping point was the introduction of their own SourceForge Installer software, which bundles third-party offers with Free Software packages. We do not want to support this kind of behavior, and have thus decided to abandon SourceForge.

From now on, Jernej Simončič, who provides the installer packages, uploads them to our FTP directly, and from there they will be distributed automatically to our mirrors. Please check Downloads page for updated information. http://gimp-win.sourceforge.net will remain active for the time being and direct users to the new download locations.

This saddens me a lot. I’ve been a SourceForge user for over 13 years. Having my first project there with a “.sourceforge.net” URL was a moment of pride; I felt I was becoming a free software developer “for real”, seeing my code there along with all those other projects I relied on daily, such as GIMP.

htop, in particular, has lived a beautiful life in SourceForge:

It blows my mind to think that these are direct downloads of the source code only. I assume the vast majority of users install htop running the distro package manager (apt-get, yum, etc.) but I have absolutely no way to estimate how many times this program has been installed. And that’s not only okay, it’s beautiful: it’s the nature of free software, the actual freedom, at work. There is no tight grip on users from a central authority, the code is roaming free in what is essentially a network of solidarity. I’ve certainly benefited from this network much more than I’ve contributed to it, but I’m happy to give a small part.

Another achievement I’m very proud of: a perfect 5-star rating score for htop. Surely not that many reviews when compared to really big projects, but it’s noteworthy to me at least, and I’m thankful to everyone who rated.

So, thanks for everything SourceForge, but it looks like it’s time to move on.

Say hello to Github, htop

I’ve already got a bunch of projects in Github so this change should not be traumatic.

I’m converting the repositories to Github and moving the website to my own domain. I’ve started with dit, which is a low-profile project, and everything went smoothly. So it’s time to do the same with htop.

The process is straightforward:

  1. Here are the Instructions for importing from Subversion from Github
  2. They recommend using svn2git. It took me a few tries to get the conversion perfect. I recommend taking a look at the generated repository with gitk and creating a file called ~/.svn2git/authors containing aliases matching your svn usernames with Github equivalents.

    My authors file looks like this:

    loderunner = Hisham Muhammad <hisham@gobolinux.org>
    hisham = Hisham Muhammad <hisham@gobolinux.org>
    

    And the command-line for svn2git:

    svn2git svn://svn.code.sf.net/p/htop/code/
    
  3. The next step was to create a new Github repository. I did that through their web interface.
  4. And then, to push the code from the locally generated git repo to Github:
    git remote add origin https://github.com/hishamhm/htop.git
    git push -u origin master
    
  5. Next, I wanted to download the htop website from SourceForge. I usually edited things straight through their shell account, but this got me to an SFTP session in which I could fetch the files:
    sftp loderunner,htop@frs.sf.net

    (By the way, I actually use yafc, which I highly recommend, instead of sftp. Also, as I looked for its URL to post on this paragraph, I just learned that the original yafc 1.1.1 from 2001, which I still use and was hosted in SourceForge and sat there for years without updates, has been taken by a new group of developers who resurrected the project and develop it in Github.)

    The site for htop is really simple so moving it to a new location was a relatively quick process; just needed to grep all references to sf.net and svn, and get my own direct Paypal donation button (to replicate the one I had in SourceForge I used this and this).

  6. Getting the archive of releases was a bit trickier. It’s also in frs.sf.net, but you need to know the correct directory. It doesn’t show up when you log in and ls. You have to cd to it:
    yafc ftp://loderunner@frs.sf.net
    # then, in the sftp session:
    cd /home/frs/project/htop
    get -p -r htop
    

    Now I have an archive of all releases, with their (mostly accurate) historical timestamps!

  7. The final steps are shutting down the sf.net services, such as the bug tracker and the code repository. This can be done easily through their admin interface. I’ve never had any plans to migrate the bug tracker history; this simplifies things (and I don’t even know if it’s possible). I’m not shutting everything down immediately, though: until I make a proper new release and distro maintainers catch up with the new URLs, I’ll keep the download links active there.

    The original website, however, is now gone and replaced with the following:

    <html>
    <head>
    <meta http-equiv="refresh" content="0; url=http://hisham.hm/htop">
    </head>
    </html>
    

    (I did try an .htaccess file, but the sf.net servers kept redirecting to a default page even when I tried to do it via html… thanks to Lynx I realized it was redirecting with a 403 Forbidden error, so I removed the .htaccess file and things worked as expected.)

  8. Still TODO: migrate the htop-general mailing list.

One criticism I’ve had of Github in the past was that it did not promote a culture of making proper releases like SourceForge always did, but that has improved in recent years. Github now has a “releases” feature which, while not perfect, does the job in many cases. I’m not sure if I’ll use it, since I prefer to make the tarballs for htop using the make dist feature from GNU Autotools. I hope to cause as little disruption as possible to the distro maintainers and I want to keep my packages looking the same.

The big test for the new setup will be the next release, which I hope to make in time for htop’s tenth anniversary(!), in the coming months. It is quite fitting that htop presents its new home in such a special occasion!

🔗 Merging a Git feature branch that was already published on Github

Today I had a Git dillema, which I posted about on Twitter:

git help! I’ve got two local branches (X and master) and their remote counterparts in github. What’s the right way to merge X into master?

Here’s the situation in more detail: I had a “feature branch” for the new luarocks doc command, and I published it on Github to get some feedback. So, at that point I had four branches: in my machine I had master and luarocks-doc. But I also had master and luarocks-doc in github as well. I’ve been pushing master into origin/master and luarocks-doc into origin/luarocks-doc… I thought about doing a straightforward local merge but history could get messy and people would complain I didn’t do it right.

Alexander Gladysh came to the rescue, with the following sequence, which he listed to me through IM and worked flawlessly:

git fetch
git checkout master
git merge --ff-only origin/master
git checkout luarocks-doc
git merge --ff-only origin/luarocks-doc
git rebase master
git checkout master
git merge --ff-only luarocks-doc
git push origin master

As he said, “then you want to either update or delete luarocks-doc in the origin”:

To update:

git push -f origin luarocks-doc

To delete:

git push origin :luarocks-doc

The –ff-only flag tells merge not to perform incomplete merges (as it happened to me so often!) so it only runs it if the command would perform its task completely.

Alexander also gave me some links to material on Git workflow models, which I’ll be sure to read:

Hope that helps you as Alexander helped me. Sharing it forward!


Follow

🐘 MastodonRSS (English), RSS (português), RSS (todos / all)


Last 10 entries


Search


Admin