Shared posts

20 Jul 14:13

DIY ATtiny45/85 ISP Header

by jokkebk

ATtiny ISP header in practice

A quick weekend tip for a change, I thought to share a nice small soldering project will make programming ATtiny45 and ATtiny85-based projects a flash:

Basically I took a piece of veroboard, soldered some extra long pin headers on the bottom so it will form a tent of sorts above a ATtiny45/85 attached to a breadboard project. Then I soldered a 6-pin header to attach the ISP programming cable to, and used short pieces of jumper wire to route the header pins to correct ATtiny85 pins.

Now whenever I need to flash a ATtiny45/85 project sitting on a breadboard, I can just put this on top of that and never need to look up the pin layout again!

DIY ISP header closeup

You can click the images for larger versions. I’ve also been quite busy with my PS/2 projects, so I have some nice material to share regarding that when I have some free time again in my hands!

20 Jul 03:44

Racismo e imigração: de que cor devem ser nossos imigrantes?

by Alex Castro

O Brasil gosta de se imaginar uma nação aberta, hospitaleira, sem preconceitos. Nossa ficha corrida, entretanto, conta outra história.

Hoje, mais ricos e mais importantes, assumindo um lugar de mais peso no mundo, ainda há tempo de mudar nossas atitudes.

Imigrantes de ontem e de hoje.

Imigrantes de ontem e de hoje.

Nem todos os imigrantes são iguais

No começo do século XX, em uma tentativa de embranquecer a população, de dinamizar a economia e de ocupar regiões até então quase desabitadas, o governo brasileiro estimulou fortemente a imigração estrangeira. Com limites, claro.

Já de cara, em 1891, se proibiu a imigração de nativos da África e da Ásia. Depois de ferozes debates, a lei foi revogada em 1907, abrindo passagem para a imigração japonesa, mas outros grupos “indesejáveis”, como árabes do norte da África ou chineses, encontraram forte resistência. (Jeffrey Lesser tem um livro excelente sobre isso, Negociação da Identidade Nacional.)

Em 1921, em resposta a um anúncio veiculado em diversos jornais, prometendo passagens, acomodacões e crédito de longo prazo para agricultores norte-americanos fisicamente aptos que desejassem se estabelecer no Brasil, formou-se uma companhia de colonização chamada “Brazilian American Colonization Sindicate” (BACS). O governo do Mato Grosso já tinha até lhes concedido enormes concessões de terras, que foram prontamente canceladas quando se descobriu um detalhe desagradável:

Os norte-americanos, pasmem, eram negros!

Esses homens, coitados, sufocados pela atmosfera racista segregacionista dos EUA, estavam convencidos de que o Brasil era uma verdadeira democracia racial, onde não havia linha de cor e onde brancos e negros eram iguais perante a lei.

Obviamente, nunca tinham estado no Brasil – e jamais estariam: o Itamaraty negou vistos a todos os membros da companhia e, inclusive, enviou mensagens confidenciais a todos os consulados brasileiros nos EUA deixando bem claro que tipo de imigrante norte-americano era desejável e qual não era. (Chega a ser anti-brasileiro que o governo tenha que ser assim tão claro!)

Como Brasil e EUA tinham um tratado de imigração que dava aos norte-americanos, independente de raça, etnia ou religião, o direito de entrar e se estabelecer no Brasil, os membros da BACS exigiram que o nosso governo justificasse a proibição. Em público, o Itamaraty não foi tão claro quanto nos seus memorandos confidenciais e se refugiou na afirmação de a política imigratória brasileira era soberana e não podia ser questionada por governos ou cidadãos estrangeiros. Então tá, né?

Charge do sempre brilhante Carlos Latuff. O Brasil lidera a missão da ONU no Haiti.

Charge do sempre brilhante Carlos Latuff. O Brasil lidera a missão da ONU no Haiti.

Aquele raro momento quando os políticos falam o que realmente pensam

Nossos deputados, entretanto, não foram tão diplomáticos.

Fidélis Reis, deputado por Minas Gerais, propôs um projeto de lei vetando a imigração de negros, limitando a de asiáticos e estimulando a de brancos. Eis o que ele disse, na Plenária, em 1923:

“Quando então pensamos … na possibilidade próxima ou remota da imigração do preto americano para o Brasil é que chegamos a admitir a eventualidade da perturbação da paz no continente. … O nosso preto africano, para aqui veio em condições muito diferentes, conosco pelejou os combates mais ásperos da formação da nacionalidade, trabalhou, sofreu e com sua dedicação ajudou-nos a criar o Brasil. … O caso agora é iminentemente outro. E deve constituir para nós motivo de sérias apreensões, como um perigo iminente a pesar sobre nossos destinos.”

Pela fala do deputado, dá até a impressão de que o “nosso preto africano” veio por vontade própria ao Brasil, voluntariamente trabalhar e sofrer por nossa pátria; e que o tal “perigo iminente” que causava “apreensão” era justamente o fato de os negros americanos, esses canalhas, estarem vindo em busca de democracia racial, onde já se viu?!

Sobre o projeto do Deputado Fidélis, opinou também o ilustre romancista e presidente da ABL Afrânio Peixoto, no mesmo ano:

“É neste momento que a América pretende desembaraçar-se do seu núcleo de 15 milhões de negros no Brasil? Quantos séculos serão precisos para depurar-se todo esse mascavo humano? Teremos albumina suficiente para refinar toda essa escória? Não bastou a Libéria, descobriram o Brasil?”

Para o grande acadêmico, basta ser negro para ser escória, mas, tudo bem, nada que albumina não resolva. Afirma um agricultor, Antonio Americano do Brasil:

“Já não teríamos para a lavoura as gentes simples, que foram os primitivos africanos da escravatura, facilmente identificando-se com a terra. Os negros de hoje viriam dos Estados Unidos, … elementos cheios de defeitos, carregando o ódio ao branco que os tem perseguido, possuindo apurados vícios que não tiveram os antigos escravos.”

Deixando de lado a patente nostalgia da escravidão, quais serão esses defeitos e vícios que traz essa escória mascava americana? Quem responde é o grande historiador Oliveira Lima, também promotor da imigração européia como forma de branquear o Brasil:

“… estes, que nos ameaçam vir da América, se acham modelados por uma civilização superior, falando uma língua própria e tendo um sentimento de altivez e agressividade, natural no meio em que vivem e que não possuíam os africanos que para cá vieram, em outros tempos da costa da África. Esses, pela inferioridade de sua civilização, fundiram-se com os brancos superiores; quem nos dirá que farão o mesmo os negros americanos? Mas se se conservarem “infusíveis”, nesse caso teremos mais um perigo político a nos ensombrar os destinos. Se se fundirem, nesse caso teremos aumentado a massa informe de mestiçagem inferior que tanto retarda nosso progresso.”

Ou seja, os defeitos e vícios que trazem os negros americanos é justamente serem cidadãos, homens orgulhosos e altivos, conscientes de seus direitos.

Cruzes, o Brasil quer distância dessa gente!

(A fonte da história acima é o artigo “Dos Males que Vêm com o Sangue: as Representações Raciais e a Categoria do Imigrante Indesejável nas Concepções sobre Imigração da Década de 20”, de Jair Souza Ramos, no livro
Raça, Ciência e Sociedade. (Rio de Janeiro: Fiocruz, 1996), organizado por  Marco Chor Maio.)

Alojamento de imigrantes haitianos na fronteira do Brasil.

Alojamento de imigrantes haitianos na fronteira do Brasil.

Nunca tivemos leis racistas. E daí?

O Brasil sempre precisou de braços estrangeiros, mas existem braços e braços. Quem até ontem era importado e comprado por muito dinheiro hoje não é desejado nem de graça.

Já em 1890, meros dois anos após a Abolição e no primeiro ano da nova e democrática e cidadã república, o Brasil proibia explicitamente a imigração de africanos. A lei seria complementada e reforçada em 1920 e 1930, para proibir não apenas os africanos, mas também quem se parecesse com eles.

No Brasil, como diz o ditado racista, nunca precisamos de leis de segregação racial porque “os negros sabem o seu lugar”. De fato, o país sempre foi tão racista que as leis nunca precisaram ser: basta colocar as coisas de forma vaga e confiar no racismo histórico do brasileiro.

Texto de um decreto-lei de 1945, só revogado na década de 1980:

Art. 1o – Todo estrangeiro poderá, entrar no Brasil desde que satisfaça as condições estabelecidas por essa lei.

Art. 2o – Atender-se-á, na admissão de imigrantes, à necessidade de preservar e desenvolver, na composição étnica da população, as características mais convenientes da sua ascendência européia, assim como a defesa do trabalhador nacional.

(As informações do trecho acima vieram do artigo “A Caixa Econômica Federal, a política do branqueamento e a poupança dos escravos”, de Ana Maria Gonçalves, autora do magistral romance Um defeito de Cor. Recomendo a leitura do romance, do artigo, de tudo mais que a Ana escrever.)

O Haiti pede socorro. Charge de Latuff.

O Haiti pede socorro. Charge de Latuff.

O pobre boliviano em uma confecção de São Paulo mal sabe que é um privilegiado

Se você está respirando aliviado, pensando, “ufa, ainda bem que o Brasil não é mais assim”, pense duas vezes, amigo leitor.

Em 2010, o Haiti foi destruído por um terremoto e, posteriormente, ocupado por tropas da ONU lideradas pelo Brasil. As dificuldades do pós-terremoto, um contato mais próximo com os soldados brasileiros e a boa fase da nossa economia causaram a maior onda migratória ao país em mais de um século.

O Haiti, vale lembrar, foi a segunda nação independente das Américas, quando os escravos negros conduziram a primeira rebelião escrava bem-sucedida da História, queimaram os engenhos de açúcar, mataram todos os brancos e derrotaram os exércitos da Grã-Bretanha, França e Espanha. (Textinho sobre isso aqui.)

Nos últimos anos, o número de imigrantes no Brasil só faz crescer: as principais nacionalidades incluem bolivianos, chineses, peruanos, paraguaios e coreanos, a maioria trabalhadores não-qualificados.

Enquanto isso, milhares de haitianos, muitos deles qualificados, são barrados em nossas fronteiras, gerando manchetes claramente sensacionalistas, repletas de palavras negativas como “ilegais”, “crise”, sofre”, “invasão”, etc: “Ilegais provocam crise humanitária no Acre” e “Acre sofre com invasão de imigrantes do Haiti“.

(Para saber mais, recomendo a monografia de graduação de Jenny Télémaque para o curso de comunicação da UFRJ, “Imigração haitiana na mídia brasileira: entre fatos e representações”. A autora, que já foi tema de matéria do jornal Extra, é haitiana e estudou no Brasil graças a um convênio da UFRJ com a embaixada brasileira no Haiti.)

Nosso entranhadíssimo e constitutivo racismo anti-negro consegue ganhar até mesmo da nossa ojeriza aos vizinhos hispânicos.

Tropa de Elite e Haiti, por Latuff.

Deus é brasileiro, e todos também deveriam poder ser

Somos ou não somos o país do futuro, hospitaleiro e desejável, onde as aves não gorjeiam como lá, uma democracia racial onde se plantando tudo dá? Temos ou não temos uma densidade populacional baixa e gigantescas áreas vazias e inexploradas?

Temos a mesma área que os Estados Unidos continental, e cem milhões de cidadãos a menos.

Mais pessoas no Brasil não quer dizer “mais gente mamando no Bolsa Família”, como dizem alguns, e sim mais gente gerando riqueza para todos.

Somos um país de imigrantes. Brasileiro é quem quiser ser brasileiro.

Hora de abrir as porteiras.

Imigrantes haitianos com suas recém-obtidas carteiras de trabalho brasileiras.

Imigrantes haitianos com suas recém-obtidas carteiras de trabalho brasileiras.



20 Jul 03:37

Counterterrorism Mission Creep

by schneier

One of the assurances I keep hearing about the U.S. government's spying on American citizens is that it's only used in cases of terrorism. Terrorism is, of course, an extraordinary crime, and its horrific nature is supposed to justify permitting all sorts of excesses to prevent it. But there's a problem with this line of reasoning: mission creep. The definitions of "terrorism" and "weapon of mass destruction" are broadening, and these extraordinary powers are being used, and will continue to be used, for crimes other than terrorism.

Back in 2002, the Patriot Act greatly broadened the definition of terrorism to include all sorts of "normal" violent acts as well as non-violent protests. The term "terrorist" is surprisingly broad; since the terrorist attacks of 9/11, it has been applied to people you wouldn't normally consider terrorists.

The most egregious example of this are the three anti-nuclear pacifists, including an 82-year-old nun, who cut through a chain-link fence at the Oak Ridge nuclear-weapons-production facility in 2012. While they were originally arrested on a misdemeanor trespassing charge, the government kept increasing their charges as the facility's security lapses became more embarrassing. Now the protestors have been convicted of violent crimes of terrorism -- and remain in jail.

Meanwhile, a Tennessee government official claimed that complaining about water quality could be considered an act of terrorism. To the government's credit, he was subsequently demoted for those remarks.

The notion of making a terrorist threat is older than the current spate of anti-terrorism craziness. It basically means threatening people in order to terrorize them, and can include things like pointing a fake gun at someone, threatening to set off a bomb, and so on. A Texas high-school student recently spent five months in jail for writing the following on Facebook: "I think I'ma shoot up a kindergarten. And watch the blood of the innocent rain down. And eat the beating heart of one of them." Last year, two Irish tourists were denied entry at the Los Angeles Airport because of some misunderstood tweets.

Another term that's expanded in meaning is "weapon of mass destruction." The law is surprisingly broad, and includes anything that explodes, leading political scientist and terrorism-fear skeptic John Mueller to comment:

As I understand it, not only is a grenade a weapon of mass destruction, but so is a maliciously-designed child's rocket even if it doesn't have a warhead. On the other hand, although a missile-propelled firecracker would be considered a weapon of mass destruction if its designers had wanted to think of it as a weapon, it would not be so considered if it had previously been designed for use as a weapon and then redesigned for pyrotechnic use or if it was surplus and had been sold, loaned, or given to you (under certain circumstances) by the secretary of the army ....

All artillery, and virtually every muzzle-loading military long arm for that matter, legally qualifies as a WMD. It does make the bombardment of Ft. Sumter all the more sinister. To say nothing of the revelation that The Star Spangled Banner is in fact an account of a WMD attack on American shores.

After the Boston Marathon bombings, one commentator described our use of the term this way: "What the United States means by terrorist violence is, in large part, 'public violence some weirdo had the gall to carry out using a weapon other than a gun.' ... Mass murderers who strike with guns (and who don't happen to be Muslim) are typically read as psychopaths disconnected from the larger political sphere." Sadly, there's a lot of truth to that.

Even as the definition of terrorism broadens, we have to ask how far we will extend that arbitrary line. Already, we're using these surveillance systems in other areas. A raft of secret court rulings has recently expanded the NSA's eavesdropping powers to include "people possibly involved in nuclear proliferation, espionage and cyberattacks." A "little-noticed provision" in a 2008 law expanded the definition of "foreign intelligence" to include "weapons of mass destruction," which, as we've just seen, is surprisingly broad.

A recent Atlantic essay asks, somewhat facetiously, "If PRISM is so good, why stop with terrorism?" The author's point was to discuss the value of the Fourth Amendment, even if it makes the police less efficient. But it's actually a very good question. Once the NSA's ubiquitous surveillance of all Americans is complete -- once it has the ability to collect and process all of our emails, phone calls, text messages, Facebook posts, location data, physical mail, financial transactions, and who knows what else -- why limit its use to cases of terrorism? I can easily imagine a public groundswell of support to use to help solve some other heinous crime, like a kidnapping. Or maybe a child-pornography case. From there, it's an easy step to enlist NSA surveillance in the continuing war on drugs; that's certainly important enough to warrant regular access to the NSA's databases. Or maybe to identify illegal immigrants. After all, we've already invested in this system, we might as well get as much out of it as we possibly can. Then it's a short jump to the trivial examples suggested in the Atlantic essay: speeding and illegal downloading. This "slippery slope" argument is largely speculative, but we've already started down that incline.

Criminal defendants are starting to demand access to the NSA data that they believe will exonerate themselves. How can a moral government refuse this request?

More humorously, the NSA might have created the best backup system ever.

Technology changes slowly, but political intentions can change very quickly. In 2000, I wrote in my book Secrets and Lies about police surveillance technologies: "Once the technology is in place, there will always be the temptation to use it. And it is poor civic hygiene to install technologies that could someday facilitate a police state." Today we're installing technologies of ubiquitous surveillance, and the temptation to use them will be overwhelming.

This essay originally appeared in TheAtlantic.com.

17 Jul 16:37

The Value of Breaking the Law

by schneier

Interesting essay on the impossibility of being entirely lawful all the time, the balance that results from the difficulty of law enforcement, and the societal value of being able to break the law.

What's often overlooked, however, is that these legal victories would probably not have been possible without the ability to break the law.

The state of Minnesota, for instance, legalized same-sex marriage this year, but sodomy laws had effectively made homosexuality itself completely illegal in that state until 2001. Likewise, before the recent changes making marijuana legal for personal use in WA and CO, it was obviously not legal for personal use.

Imagine if there were an alternate dystopian reality where law enforcement was 100% effective, such that any potential law offenders knew they would be immediately identified, apprehended, and jailed. If perfect law enforcement had been a reality in MN, CO, and WA since their founding in the 1850s, it seems quite unlikely that these recent changes would have ever come to pass. How could people have decided that marijuana should be legal, if nobody had ever used it? How could states decide that same sex marriage should be permitted, if nobody had ever seen or participated in a same sex relationship?

This is very much like my notion of "outliers" in my book Liars and Outliers.

16 Jul 15:44

Bater em criança educa?

by Pedro Turambar

Você apanhava dos seus pais quando era pequeno? Se sim, quando isso acontecia, você aprendia a não cometer o mesmo erro que levou seus pais a lhe darem um “corretivo”?

Não, né?

Então por que diabos, até hoje, a gente acha que bater em criança resolve? “Pra ela aprender?” sendo que, com a gente, isso nunca funcionou. E nem com nossos pais, veja bem, que apanharam muito, mas muito mais que qualquer um de nós.


Link YouTube | Um pai dos anos 50 ensinando seus filhos (filme: A Árvore da Vida)

Outro dia eu vi um post da Natacha — que é recém mamãe do lindo Theo — falando sobre isso. Discutimos um pouco por lá e me passaram um ótimo conteúdo para falar sobre o assunto que é muito pouco discutido por aí.

Eu tive a sorte de crescer numa família bem aberta. Meus irmãos e eu sempre tivemos liberdade para falarmos sobre qualquer coisa, para fazermos qualquer coisa. Meus pais sempre foram muito abertos em relação a tudo. Lembro de apanhar pouco, mas muito pouco mesmo. E a gente só tomava uns tapas da minha mãe (meu pai raramente intervia). A punição do meu pai era uma colher de pimenta, ou um puxão de orelha.

O único efeito colateral disso tudo acho que foi meu irmão mais velho ter aversão a pimentas de qualquer tipo. Aprendemos também a jamais fazer raiva na minha mãe enquanto ela carregasse algum objeto de qualquer natureza nas mãos.

Importantíssimo dizer que nenhuma dessas punições, nenhuma das vezes, surtia o menor efeito no sentido de educar. No sentido de “não posso fazer mais isso”. Mas essa foi a minha experiência. Uma criança jamais poderia fazer algo tão sério a ponto de ser agredida severamente — ou brandamente — de quem quer que seja, física, verbal ou psicologicamente.

Estudos comprovam por A mais B que bater em criança é, de longe, a pior solução quando o objetivo é educar ou ensinar algo. Pelo contrário, violência física contra crianças ou adolescentes podem trazer resultados péssimos para um ser que poucas vezes é entendido como deveria. E muito disso vem da cultura idiota de que não podemos errar.

Além de ensinar para uma criança que ela tem de ser perfeita, você ensina que violência é uma resposta imediata para algo que você acredita que esteja errado. Encontrei uma citação de duas autoras — Maria Amélia Azevedo e Viviane Nogueira Guerra — que exemplifica bem isso:

“Toda a ação que causa dor física numa criança ou adolescente, desde um simples tapa até o espancamento fatal, representam um só continuum de violência”

– do livro Mania de bater: a punição corporal doméstica de crianças e adolescentes no Brasil

A mesma cultura machista e preconceituosa que impera geração após geração da nossa sociedade, aquela que ensina que a piada da loira burra, de que mulher tem que pilotar fogão e de que preto correndo é ladrão é “só uma piada”. É a mesma que diz que criança que faz pirraça, ou criança mal educada é que não apanhou o bastante. E isso é simplesmente aceito como normal por boa parte de todo mundo. O que pra mim é uma loucura.


Link YouTube | “O Riso dos Outros”, magistral documentário sobre humor e politicamente correto, por Pedro Arantes

Isso sem contar o enorme número de crianças e adolescentes que, além de serem agredidas física, sexual e psicologicamente, crescem com o sentimento de que elas merecem isso e que a culpa disso tudo é tão somente delas. Você tem noção no adulto que essa criança irá se tornar?

De acordo com a organização End of All Corporal Punishment os principais efeitos são:

  • Impactos negativos na saúde física e mental;
  • Crescimento de agressividade;
  • Crescimento da perpetuação da violência;
  • Comportamento antissocial;
  • Péssimo desenvolvimento cognitivo;
  • Relações entre familiares prejudicadas.

Isso só para citar alguns, que são decorrência de violência contínua. Sem falar, é claro, de danos físicos diretos como ossos e dentes quebrados, desmaios, e até morte. Além dos óbvios efeitos, um me chama atenção no sentido de que ao “educar” com violência, você só estará afastando seus filhos de você mesmo. Imagine o pavor que a criança tem de contar a verdade?

Você sabia que, no ano de 2012, foram registrados mais de 120.000 casos de agressão contra crianças só aqui no Brasil? Se essas foram as registradas segundo os dados da Secretaria de Direitos Humanos da Presidência da República, calcule por alto quantidade de crianças agredidas no total. Ou você acredita mesmo que esse número assustador é real? Ele dá — infelizmente — apenas uma ideia de como o problema é sério.

Essa educação medieval de bater em criança “pra ela aprender” (de uma vez por todas), deveria ser muito mais discutida aqui. Só para citar alguns países — e não, não vou citar nenhum primeiro mundo — onde existem leis que proíbem diretamente qualquer tipo de violência física contra crianças e adolescentes; Israel, República do Congo, Togo, Tunísia, Uruguai e Venezuela. Confira a lista completa aqui.

Esse texto é só um olhar superficial em algo que está totalmente ligada à educação nosso país. E em como a nossa sociedade perpetua ensinamentos, dogmas e costumes de um tempo que seres humanos eram considerados animais por terem a pele negra. É apenas um ponto de partida e uma lembrança a todos os meus amigos que estão pipocando como papais e mamães por aí.

Wherethewildthingsare4

Notas

Algumas fontes e dados vieram da ótima fan page Bater em Criança é Covardia, no Facebook, dica da Natacha Orestes e da Andreia Mortensen que me incentivaram a escrever sobre isso e passaram muita informação. Acessem o site da End of All Corporal Punishment para uma visão mais detalhada sobre essa luta no mundo inteiro. Segue um link também de um estudo feito durante 20 anos sobre punição física em crianças.

Já publicamos, também, aqui no PapodeHomem, o belíssimo texto da Isabella Ianelli sobre o assunto, chamado “Palmadas, chineladas e porradas da educação ausente“.



15 Jul 04:30

12 Pontos para você entender o sistema de voto distrital

by Victor Lisboa

Primeiro Ponto – Do jeito que tá, não dá

"Quem aqui foi eleito, mas quase não foi votado e entrou no vácuo de outro deputado, favor levantar a mão"

“Quem aqui foi eleito, mas quase não foi votado e entrou no vácuo de outro deputado, favor levantar a mão”

Nas últimas semanas, manifestações que nasceram da articulação à esquerda acabaram ganhando a adesão de multidões compostas por representantes de todo o espectro político brasileiro, inclusive do pessoal da extrema direita e daquela turma que grita “Anauê” com o braço esticado.

Foi desse jeito meio confuso que aportou, no Brasil, o Cisne Negro de Taleb, surpresa que deixou partidários de esquerda e de direita um bocado perdidos em suas tentativas de, pela retórica ou pela manipulação midiática, apropriarem-se de tal fenômeno.

Nessa diversidade de orientações políticas, poucos pontos em comum podem ser encontrados nas multidões que ocupam ruas e avenidas. Apenas uma coisa parece ser consensual: algo precisa ser mudado.

Do jeito que está, não dá mais.

Mas mudar o que, exatamente? Destruir tudo parece coisa de criança. Na verdade, o que a História nos ensinou é que, muitas vezes, pequenas e discretas mudanças podem ser muito mais efetivas do que radicais e repentinas transformações. Que nos diga a maquinazinha de Gutenberg. É preciso pensar muito bem antes de dar os primeiros passos, pois a direção a ser tomada é, às vezes, muito mais importante que a velocidade da mudança.

No começo de qualquer caminhada, uma pequena alteração na trajetória inicial pode, anos mais tarde, representar uma gigantesca diferença no destino final.

Segundo ponto – Estamos sozinhos nessa história

Estamos sozinhos, mas não solitários (Foto: Guilherme Burgos)

Estamos sozinhos, mas não solitários (Foto: Guilherme Burgos)

Foi aí que o pessoal que está no poder há mais tempo do que seria desejável para o fortalecimento de uma democracia jovem (independentemente dos méritos e deméritos de tais governantes) colocou em pauta a possibilidade de uma reforma política no Brasil. Sejam boas ou más as intenções por trás dessa proposta, ocorra ou não um plebiscito ou um referendo, o fato é que os holofotes finalmente se voltam para um assunto fundamental: o sistema eleitoral que nós, cidadãos, desejamos.

Quanto a esse ponto, independentemente de nossas inclinações ideológicas, se de direita ou esquerda, um fato devemos ter sempre em mente: as últimas pessoas que devemos consultar sobre esse assunto são os próprios congressistas. E porque isso? Porque eles são maus? Porque são ladrões? A resposta é muito mais simples e inclui congressistas honestos e corruptos: porque eles foram eleitos pelo sistema que está aí (e muitos deles diversas vezes reeleitos).

Portanto, esperar que os atuais congressistas nos esclareçam a questão com honestidade, ou que decidam espontaneamente alterar o sistema político que os beneficiou, é o mesmo que esperar que o vencedor de uma partida altere as regras de um jogo no qual ele já se tornou craque. É o mesmo, enfim, que incumbir a raposa de projetar um novo sistema de defesa para a proteção do nosso galinheiro.

Então, sinto muito: nós, cidadãos, estamos totalmente sozinhos nessa história. Precisamos descobrir por nós próprios qual o sistema político que nos convêm e, feita essa descoberta, exigir dos atuais congressistas a mudança desejada. Força já percebemos que não nos falta.

Este texto pretende colaborar e abrir um pouco mais de espaço para a discussão sobre nosso sistema político. E começamos com uma pergunta. O que é, afinal, voto distrital?

A melhor forma de começar a responder é explicando como funciona o sistema atual.

Terceiro ponto – O que é o Sistema Proporcional

O deputado federal Tiririca (PR), nas eleições de 2010, teve a maior votação do Brasil e “puxou” mais três candidatos que, sozinhos, não seriam eleitos

O deputado federal Tiririca (PR), nas eleições de 2010, teve a maior votação do Brasil e “puxou” mais três candidatos que, sozinhos, não seriam eleitos

O sistema proporcional é, hoje em dia, o sistema pelo qual elegemos Deputados Federais, Deputados Estaduais e Vereadores. Por ser o de mais fácil compreensão, vamos usar, como exemplo, a eleição de Deputados Federais.

Hoje, o eleitor vota em qualquer candidato de qualquer partido que concorra em seu Estado. O morador de Cacimbaúna do Sul pode votar em Aldegundo Percegonha, garboso candidato do Partido Urbanista, cuja carreira política esteve sempre vinculada a outra cidade, situada no extremo oposto do mesmo Estado. As razões para alguém votar em um sujeito, assim, tão distante de sua própria comunidade, podem ser várias: Aldegundo Percegonha pode ser bonitão, ou um grande artista, ou ter um bom discurso, ou ser um craque no futebol, e por aí vai.

No sistema proporcional, além disso, votar em um candidato significa votar, indiretamente, no partido do candidato (o tal “voto na legenda”). E isso acaba beneficiando outros candidatos desse partido, ainda que o eleitor não conheça nenhum deles e apenas queira votar no Aldegundo Percegonha, um cara simpático. Vamos explicar mais adiante como isso funciona, mas já tenha isso em mente agora.

Quarto ponto – A herança do vovô Getúlio para seus netinhos

"Pô... de nada"

“Pô… de nada”

No Brasil, esse sistema proporcional começou a ser montado a partir 1932, momento da ascensão de Getúlio Vargas ao poder. E foi montado com um objetivo claro. Nas palavras de Fábio Comparato, a intenção era criar um sistema eleitoral “duplamente fraco”, tanto “pela ampla liberdade de criação de partidos” como “pela introdução de voto em candidatos individuais, e não em partidos” (em A Necessária Reformulação do Sistema Eleitoral  Brasileiro, ed. Del Rey, 1996). Todo mundo sabe o que aconteceu depois: Estado Novo, totalitarismo, repressão.

Trata-se de um sistema que, aparentemente, possibilita que pequenos partidos tenham acesso ao poder. Porém, a consequência prática é pulverizar a representação dos interesses da população em inúmeros partidos. Dividir para conquistar, uma técnica utilizada por Getúlio Vargas com muito sucesso, e que os militares empregaram décadas mais tarde, durante a Ditadura Militar, pouco antes de saírem do poder — para tentar conter o avanço dos opositores ao regime.

E o resultado é o que vemos hoje no Brasil: um excessivo número de partidos, exigindo que os governantes costurem sua base parlamentar com a agulha dos favorecimentos pessoais, distribuindo cargos entre várias legendas para, através de acordos e apadrinhamentos, alinhavar o apoio do Poder Legislativo.

Além disso, o sistema proporcional faz com que os holofotes da campanha eleitoral estejam voltados para a pessoa de cada candidato, e não para o programa do partido, já que o eleitor pode escolher entre dezenas de candidatos de diversos partidos atuantes em todo seu estado, e isso abre demais o leque de opções.

Como diferenciar vários candidatos de um mesmo partido, senão ressaltando suas diferenças individuais, em detrimento do programa partidário? Essa é uma das causas daquele problema diagnosticado com precisão pelo Ministro Joaquim Barbosa, gostemos ou não das outras posturas do Ministro:

“Nós temos partidos de mentirinha. Nós não nos identificamos com os partidos que nos representam no Congresso, a não ser em casos excepcionais. Eu diria que o grosso dos brasileiros não vê consistência ideológica e programática em nenhum dos partidos.

E nem pouco seus partidos e os seus líderes partidários têm interesse em ter consistência programática ou ideológica. Querem o poder pelo poder.”

Quinto ponto – Ganha um montão de votos e não se elege? Senta e chora

Em 2002, por exemplo, Enéas Carneiro conquistou 1,5 milhão de votos na eleição para deputado federal em São Paulo e levou para a Câmara outros quatro deputados do Prona. O último eleito do Prona naquela ocasião recebeu 382 votos

Em 2002, por exemplo, Enéas Carneiro conquistou 1,5 milhão de votos na eleição para deputado federal em São Paulo e levou para a Câmara outros quatro deputados do Prona. O último eleito do Prona naquela ocasião recebeu 382 votos

Algo muito curioso é que, no sistema proporcional, não basta um candidato obter determinado número de votos para que se consagre vencedor. É necessário mais. É preciso que seu partido, no somatório de todos os votos dados a seus candidatos, tenha recebido um determinado número mínimo de votos. Esse número mínimo de votos é conhecido como quociente eleitoral, e é obtido por meio de uma fórmula matemática aplicada a cada eleição, na qual se incluem o número de votos válidos e o número de vagas a serem preenchidas.

Mas deixemos os cálculos de lado. O que importa é que, se um partido não atingir esse “quociente eleitoral”, nem mesmo seu candidato mais bem votado poderá ser eleito, ainda que esse candidato tenha conseguido um grande número de votos, inclusive superior ao de um rival cujo partido tenha, em sua totalidade, conseguido atingir aquele número mínimo de votos.

Essa é razão de partidos costumarem colocar como candidatos de sua legenda até mesmo pessoas sem chances concretas de vitória: o objetivo é arrebanhar, com pequenos candidatos, aquele número mínimo de votos que garantirá a efetiva eleição dos “candidatos com reais chances de vencer”.

Afinal, se a dona da confeitaria da esquina de nossa for candidata, a gente acaba votando nele mesmo sabendo que não tem chances, porque ela é simpática e ainda faz um bolo de baba-de-moça que é uma delícia.

Sexto ponto – O “Efeito Barrichello” ou “Florentina de Jesus pra que tu me seduz”

Não, não esse efeito

Não, não esse efeito

Já dissemos que, quando o eleitor de Cacimbaúna do Sul vota em Aldegundo Percegonha, ele acaba, querendo ou não, também votando no Partido Urbanista, voto esse que beneficiará outros candidatos da legenda. É como se outros candidatos viessem atrás daquele com maior número de votos e aproveitassem o “vácuo” para vencer a resistência do ar.

Tipo “Fórmula 1”, tá ligado?

Em resumo, o que o TSE faz a cada eleição é calcular, com base no quociente eleitoral, o número de vagas a ser distribuída para cada partido que “venceu” a barreira representada por esse mesmo quociente eleitoral. Basicamente, divide-se o número total de votos dados a um partido por aquele número mínimo de votos necessários para eleger um deputado, e o resultado da divisão é o total de vagas destinado a esse partido.

Em outras palavras, cada vez que o número total de votos em um partido “bate” o “quociente eleitoral”, sua legenda tem direito a mais uma vaga. O número de vagas resultante é o “quociente partidário“, diferente para cada partido em uma eleição.

Com esse número de vagas nas mãos, cada partido deverá preencher as vagas a quem tem direito com seus candidatos, e isso na ordem decrescente de número de votos recebidos pelos candidatos de sua legenda.

É essa característica do sistema proporcional que explica, por exemplo, fenômenos curiosos como o caso do Delegado Protógenes e de outros dois candidatos que, em 2010, receberam um número pouco expressivo de votos mas, apesar disso, foram eleitos Deputados Federais por São Paulo.

Apesar de seu desempenho sofrível nas urnas, ingressaram na Câmara dos Deputados pela simples razão de que outro candidato de sua legenda, o Tiririca, ganhou tantos votos que, pelo cálculo do TSE, o partido tinha direito não só a uma vaga (a do Tiririca) mas a outras tantas vagas, que foram preenchidas por candidatos sem muito apoio dos eleitores.

Sétimo ponto – Ganhou só um voto, loser? Epa, parabéns Deputado!

Veja o caso do deputado federal Marco Feliciano (PSC-SP). Ele obteve em 2010 nada menos que 211 mil votos. Não atingiu o quociente eleitoral daquela eleição, que em São Paulo foi de 305 mil votos. Portanto, veio “puxado”, como se diz no jargão eleitoral *

Veja o caso do deputado federal Marco Feliciano (PSC-SP). Ele obteve em 2010 nada menos que 211 mil votos. Não atingiu o quociente eleitoral daquela eleição, que em São Paulo foi de 305 mil votos. Portanto, veio “puxado”, como se diz no jargão eleitoral *

*de acordo com a Revista Voto.

Outra curiosidade desse sistema é que, por sua lógica, é possível que um candidato seja eleito apesar de ter recebido apenas um voto: o seu — ou, se for esquizofrênico, o de sua mãe. Isso pode ocorrer se a legenda tiver poucos candidatos, como é típico de partidos “nanicos”, mas um deles for, por exemplo, alguma celebridade capaz de atrair milhões de votos.

Esses milhões de votos, digamos para simplificar, “sobram” e, no cálculo com base no quociente eleitoral, acabam garantido vagas para outros candidatos do partido, respeitada a ordem em que foram votados. É na verdade o tal quociente partidário. Se esse partido tiver poucos candidatos alistados na eleição, o último deles na ordem de votação, aquele que recebeu apenas um voto, acabará recebendo uma das vagas reservadas ao partido.

Oitavo ponto – Sistema Distrital puro não é coisa de nazista nem de virgem

"Votaê, molecada"

“Votaê, molecada”

O sistema distrital tem uma lógica diferente. Nele, o eleitor não pode votar em qualquer candidato que concorra a deputado em seu Estado, mas apenas nos candidatos inscritos pelos partidos em seu “distrito”. Distrito, por sua vez, é uma subdivisão do Estado, que pode ser maior, menor ou do tamanho de um município, a depender de como será feita a divisão.

Outra diferença em relação ao sistema proporcional é que, no sistema distrital, cada partido só pode apresentar um candidato por distrito. Os vencedores da eleição são, simplesmente, aqueles candidatos que mais receberam votos em cada um dos distritos nos quais é dividido o Estado.

Portanto, cada distrito elege um candidato, e esse candidato é foi único que representou, no distrito, o seu partido.

Isso significa que, durante o mandato legislativo, todos os eleitores de determinado distrito sabem exatamente qual o candidato foi eleito por sua região. Ele tem nome, endereço e cara facilmente identificáveis por esses eleitores (mesmo pelos que votaram em outro candidato), e todos eles podem acompanhar sua atuação política de perto.

Além disso, há estreita associação entre o partido e o candidato: o distrito elegeu não apenas um indivíduo, mas apoiou determinado partido por ele representado.

Em razão disso, pode ocorrer uma situação interessante. O João da Silva acorda, passa na padaria e fala para o padeiro: “viu o que o bosta do teu candidato fez naquela votação do Congresso? Na próxima eleição, a gente tem que escolher outro partido”.

Nono Ponto – Palhaços e representantes sectários têm poucas chances

"Mas aí cê me complica"

“Mas aí cê me complica”

É comum, no sistema proporcional, que determinadas classes profissionais elejam seu “representante” no Congresso. Afinal, o somatório dos votos desses profissionais espalhados pelo Estado pode garantir uma vaga para seu “colega”. O mesmo pode ser dito em relação a alguma celebridade da mídia, cujos fãs, distribuídos no estado, formam o caminhão de votos necessários para chegar-se ao poder.

Uma das vantagens do sistema distrital é que fica muito mais difícil a eleição de candidatos apoiados por “grupos de interesses sectários” ou por fãs daquela celebridade engraçadinha que aparece na televisão. A razão é que esses eleitores estão, de regra, distribuídos por todo o Estado, mas não teriam força em um distrito específico, composto pelos moradores de alguns bairros ou municípios. Outra vantagem é eliminar aquela situação estranha, em que um candidato com pouquíssimos votos acaba sendo eleito por causa de um outro candidato de maior expressão.

Décimo ponto – Pureza demais é para aquela nossa tia beata e solteirona

"Lá em cima", ou se vota em um (partido) ou no outro

“Lá em cima”, ou se vota em um (partido) ou no outro

Mas nem tudo são flores. Esse sistema, se aplicado de forma simples assim, pode resultar em alguns problemas. Um deles é a possibilidade de um partido obter mais da metade das vagas de deputado, embora tenha obtido menos da metade do total de votos no Estado inteiro — ou seja, suas posições predominarão no Congresso, apesar de não ter o apoio da maioria da população.

A causa disso é simples.

Tenha em mente que, em cidades maiores, mais populosas, um pequeno partido pode receber muitos votos se considerado o total de votos do Estado (nessa perspectiva, muitos eleitores do Estado votaram no partido), mas poucos votos se considerarmos os votos dados a outros candidatos naquela grande cidade (em tal perspectiva, poucos eleitores na cidade votaram no partido).

E, afinal de contas, apenas o candidato mais bem votado no distrito é que leva a vaga, não importando o quão expressivo foi o número de votantes no segundo ou terceiro candidato.

Outro problema é a dificuldade de partidos minoritários ascenderem ao poder, pois um partido que tenha uma quantidade significativa de votos em todo Estado pode não conseguir, em nenhum distrito, votos suficientes para eleger sequer um candidato. A lógica é a mesma do problema anterior: a soma dos votos geral no Estado foi grande, mas em cada distrito não foi o bastante para dar o primeiro lugar ao seu candidato.

Na verdade, essa é uma das razões pelas quais se acredita que sistemas distritais acabam eliminando os pequenos partidos, que morrem “secos”, e dando origem a sistemas bipartidários, como o que ocorre nos Estados Unidos, em que há apenas dois grandes partidos.

Décimo primeiro ponto – O que é o voto distrital “misto”


Link Vimeo

É para corrigir essas distorções que existe o sistema distrital que não é “puro”, ou seja, o sistema distrital em que os candidatos não são eleitos apenas pela maioria dos votos em cada distrito. É o sistema dito “misto”, pois mistura esse tipo de escolha do candidatos em distritos com outro tipo de escolha, feita não em candidatos, mas em partidos. Só que, diferente do sistema proporcional, o voto no partido é em separado, e não vinculado ao nome do candidato distrital.

Basicamente, ao votar para Deputado Federal, no sistema misto, o eleitor tem que votar duas vezes. O primeiro voto será em um candidato de seu distrito, o segundo será em um partido. No final das eleições, há duas espécies de vaga: aquelas destinadas aos vencedores em cada distrito, e outra destinada aos partidos que mais receberam voto em sua legenda. Mesmo se o partido não tiver obtido, em cada distrito, votos em número suficiente para eleger seus candidatos distritais, talvez consiga, no cômputo total dos votos feitos em sua legenda no Estado, algumas vagas no Congresso.

E como as vagas destinadas a esses votos dados aos partidos são preenchidas? Uma alternativa é deixar que o partido que ganhou a vaga decida livremente quem vai ocupá-la (“sistema da lista fechada”).

Outra alternativa é deixar que os eleitores estabeleçam, na eleição mesmo, quais dos candidatos merecem ocupar essa vaga reservada (“sistema da lista aberta”). Uma terceira alternativa é a mistura das duas primeiras: os eleitores, em seu voto, limitam as escolhas dos partidos a uma lista de candidatos (“sistema da lista flexível”).

O sistema distrital misto (e, principalmente, aquele da lista aberta), portanto, busca eliminar as desvantagens dos dois sistemas eleitorais, ao mesmo tempo em que apresenta as vantagens do sistema distrital.

Décimo segundo – Não gostou? Assiste na TV os outros mandarem por você

Lolz

“Muito complexo isso, cara! Democracia exige demais, pensei que era mais fácil. Achei que era só apertar uns botões e pronto (ou, no futuro, curtir um candidato no Facebook). Não tenho saco para pensar em partidos, eleições, essa coisa toda. No final das contas, são todos uns ladrões, né? Dizer que vou votar nulo porque são todos ladrões me livra de decidir algo e, ainda por cima, me faz parecer inteligente, um cara tão entendido de política que ficou cético.

Se, no vácuo da minha indiferença ou preguiça, surgir um líder autoritário levado ao poder pelos outros, não vou ter direito de reclamar – mas, pelo menos, vai dar para posar de entendido e dizer ‘eu avisei’.”

Pois é meu amigo. A democracia é complicada, tão complicada quanto mandar no seu próprio nariz, pagar suas contas, decidir a cada dia os rumos de seu futuro pessoal e profissional.

Mas se você acha que é melhor fazer como o cara de cinquenta anos que ainda mora com os pais, recebe mesada da aposentadoria do velho papai e deixa a mamãe de cabelos brancos arrumar a cama todas as  manhãs, por mim tudo bem: cada um tem sua concepção sobre o que é ser feliz.



13 Jul 17:14

F2P Monetization Tricks

by schneier

This is a really interesting article about something I never even thought about before: how games ("F2P" means "free to play") trick players into paying for stuff.

For example:

This is my favorite coercive monetization technique, because it is just so powerful. The technique involves giving the player some really huge reward, that makes them really happy, and then threatening to take it away if they do not spend. Research has shown that humans like getting rewards, but they hate losing what they already have much more than they value the same item as a reward. To be effective with this technique, you have to tell the player they have earned something, and then later tell them that they did not. The longer you allow the player to have the reward before you take it away, the more powerful is the effect.

This technique is used masterfully in Puzzle and Dragons. In that game the play primarily centers around completing "dungeons." To the consumer, a dungeon appears to be a skill challenge, and initially it is. Of course once the customer has had enough time to get comfortable with the idea that this is a skill game the difficulty goes way up and it becomes a money game. What is particularly effective here is that the player has to go through several waves of battles in a dungeon, with rewards given after each wave. The last wave is a "boss battle" where the difficulty becomes massive and if the player is in the recommended dungeon for them then they typically fail here. They are then told that all of the rewards from the previous waves are going to be lost, in addition to the stamina used to enter the dungeon (this can be 4 or more real hours of time worth of stamina).

At this point the user must choose to either spend about $1 or lose their rewards, lose their stamina (which they could get back for another $1), and lose their progress. To the brain this is not just a loss of time. If I spend an hour writing a paper and then something happens and my writing gets erased, this is much more painful to me than the loss of an hour. The same type of achievement loss is in effect here. Note that in this model the player could be defeated multiple times in the boss battle and in getting to the boss battle, thus spending several dollars per dungeon.

This technique alone is effective enough to make consumers of any developmental level spend. Just to be safe, PaD uses the same technique at the end of each dungeon again in the form of an inventory cap. The player is given a number of "eggs" as rewards, the contents of which have to be held in inventory. If your small inventory space is exceeded, again those eggs are taken from you unless you spend to increase your inventory space. Brilliant!

It really is a piece about security. These games use all sorts of mental tricks to coerce money from people who would not have spent it otherwise. Tricks include misdirection, sunk costs, withholding information, cognitive dissonance, and prospect theory.

I am reminded of the cognitive tricks scammers use. And, of course, much of the psychology of security.

11 Jul 16:12

Scaling Your Database via InnoDB Table Compression

by Taylor

Basecamp Classic’s database is actually split across two sets of servers. One set contains a single table which is approximately 430 Gbs or more than half the entire volume of data (across both sets) in total.

Two years ago we separated this table because of its growth and size compared to the other tables. By separating the table we could scale the database hardware more closely to data growth, and we kept InnoDB buffer pool evictions to a minimum which made performance more stable.

Recently our monitoring showed some less than desirable metrics regarding this database pair: the least of which was that free storage would be exhausted in about 90 days. There was also a number of slow queries due to insufficient buffer pool space and slow queries from data “on disk”. We had already exhausted the normal tuning approaches and we needed to find a solution for these problems that didn’t involve significant time or money expenditures.

There are two common methods used to keep growing MySQL databases peforming optimally: buying new hardware or reducing the volume of data such that approximately 80% fits in memory. Buying new hardware is expensive and usually incurs a high time and staffing penalty. In most situations reducing the amount of the data is impossible because the database is actually growing through active use.

What if there was another solution that didn’t involve extra spending or awkward contortions to reduce the volume of data?


Our investigation starts with table structure. In this case, we identified a single text column which appeared to contain most of the data. We decided it would be a good idea to test what type of space savings we might see (1):

mysql> select avg(length(body)) as uncompressed, avg(length(compress(body))) as compressed, avg(length(body))/avg(length(compress(body))) as ratio from recording_bodies where id > 156800158\G;
*************************** 1. row ***************************
uncompressed: 1409.9729
compressed: 600.2354
ratio: 2.34895825

So the uncompressed version of the data is an average of 2.34 times the size of the compressed version. In other words we would probably see somewhere around a 57.5% reduction in the size of our data! These numbers encouraged us to move forward with exploring table based compression.

(To test on your data set, you might pick some random id ranges of a couple thousand rows in size. We found a few samples of 10,000 randomly selected ids to be sufficiently close to reality.)

Since we had significantly limited disk space we were unable to use pt-online-schema-change(2) to compress the table in place. Instead we slaved a new server (with plenty of extra storage) to the master and ran the migration there. Once replication was caught up, we did the same to the existing slave database and then used our mysql_role_swap tool to accomplish a zero downtime master to slave failover. (After this role swap we rebuilt the old master accordingly.)

What were the actual results?


The outcome of using 8kb (default) compression was a table size of 172 Gigabytes or a 60% reduction in table size!

Since there was significantly less data to hold in memory, and on disk, slow queries were nearly eliminated. Finally, the need for additional storage was dramatically reduced. The existing size of data on disk had been reduced and new records would be an average of 40% smaller due to compression.

Before you run out and compress all your InnoDB tables, here’s what you need to know:


InnoDB table compression works best on tables with large text/blob columns that are filled with strings that compress well. It’s also going to be in workloads that are not heavily write (vs read) intensive. InnoDB table compression is not entirely free. The documentation says increased CPU utilization is a penalty paid for the compress/decompress operations. (Having shared this warning, we’ve actually seen reduced CPU utilization with compressed tables.)

If you are still interested in testing table compression:


You need to be using the InnoDB storage engine.

mysql> show variables like 'storage_engine'\G;
*************************** 1. row ***************************
Variable_name: storage_engine
        Value: InnoDB
1 row in set (0.00 sec)


Or…

mysql> show create table my_table_name;
(Look for this string on the last line  "ENGINE=InnoDB")


You need to be using innodb_file_per_table.

mysql> show variables like 'innodb_file_per_table'\G;
*************************** 1. row ***************************
Variable_name: innodb_file_per_table
        Value: ON
1 row in set (0.00 sec)

If you do not see this you should set “innodb_file_per_table = 1” in your my.cnf.


You need to identify tables that are good candidates for compression.

mysql> show create table bigfatcats\G;
*************************** 1. row ***************************
       Table: bigfatcats
Create Table: CREATE TABLE `bigfatcats` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `cat_name` varchar(255) DEFAULT NULL,
  `huge_serialized_furballs` text,
  PRIMARY KEY (`id`),
ENGINE=InnoDB AUTO_INCREMENT=373737813 DEFAULT CHARSET=utf8

Again, you want to find tables with heavy text or blob column types which contain strings that compress well. Then you want to test compression using the commands earlier in this article.

If you are able to identify a table that would benefit from compression you are a single alter table away from reclaiming some space:

mysql> alter table bigfatcats ROW_FORMAT=COMPRESSED;


But I still have a few questions…


How well does this work with IO constrained databases?


We’ve observed compression to work well in such environments. The hardware supporting the aforementioned database pair is two older Dell R710’s with 64G of ram, 2x Intel E5530 processors @ 2.40GHz and a 6x ssd disk raid (behind the integrated Perc 6i raid card). Running on (Percona’s 5.5 build) with a 50G innodb buffer pool.


How can you select the right block size with a high degree of accuracy?


You can’t. Try 8kb to start.


How can you measure the approximate fit/success of our block size selection?


The information_schema database has an innodb_cmp table which allows you to compare the number of compression operations that succeed out of the total number of compression operations. In the case we described above that’s about 98.82%:

mysql> select compress_ops_ok/compress_ops as compress_ratio from INFORMATION_SCHEMA.INNODB_CMP where page_size = 8192\G;
*************************** 1. row ***************************
compress_ratio: 0.9882
1 row in set (0.00 sec)


Remember that you want a number as close to 1 (or 100%) here, otherwise the 8kb size may be too small and your table may not be a good fit for compression.

Where can I share my experience using InnoDB compression?


Maybe this is a solution to a MySQL problem you are facing? I know we were excited with the ease of implementation and high value using InnoDB compression provided in our situation. Do you have additional questions or comments? Please take a moment and share below.

If you’d like some deeper level information:


http://dev.mysql.com/doc/refman/5.5/en/innodb-compression.html
http://dev.mysql.com/doc/innodb/1.1/en/innodb-information-schema-examples-compression-sect.html
http://dev.mysql.com/doc/refman/5.5/en/innodb-cmp-table.html
http://dev.mysql.com/doc/refman/5.5/en/innodb-cmpmem-table.html

Notes:


(1) Hat tip to Percona for this old article that explains this in more detail.
(2) What’s that? You’ve never used this tool? Oh man you’ve been missing out!

09 Jul 16:02

My observations about teaching and learning programming

by Dan Kim

Over the past 6 months, I’ve had the unique opportunity to observe a wide range of programmers – students, teachers, and world-class experts.

I was curious if there were any patterns and characteristics that made for successful programming teachers and students. My goal was simple: to make myself a better teacher and a better student, so I could help others too.

Here’s what I’ve found so far.

Great programming teachers…

…point students in the right direction, but don’t give out all the answers.

They coach students to be curious and independent – to search for their own answers. They let students stumble and rewrite code a few times. They let students discover valuable patterns, problem solving techniques, and the sheer joy of shipping something that works.

…are encouraging, but never critical.

They give praise when students write great code, and offer suggestions for refactoring clunky code. They give pointers and offer direction, but never criticize a line of thinking.

…promote writing as little code as possible.

They will direct students away from complexities and toward simple, elegant solutions. The fewer lines of code, the better.

…are patient and remember what it’s like to be a beginner.

They remember that everyone was a really bad programmer at some point and needed help (including themselves).

Great programming students…

…learn how to learn.

They don’t just look for answers, but look for patterns and techniques. They search for root causes by breaking down problems. They use Google and Stack Overflow constantly.

…talk less, listen more, and observe.

They realize they can learn a ton by just watching how their teacher solves problems, communicates, and teaches others. They literally watch and learn.

…tend to move more slowly, and are thoughtful in their analysis.

They take the time to think about a problem, craft smart questions and succinctly explain the issues they’re running into. They get better and better at embracing slow time.

…keep their code tidy.

Messy code is often the result of messy thinking. Having neat code makes it easier for others to help them, and as a result, they learn faster and understand more deeply.

…are persistent.

They are absolutely relentless in the belief that they can solve any problem (and usually do). Hours or days can go by with little or no progress, so it’s crucial to have this mindset.

…have a “ship it” attitude.

They set reasonable goals against relatively short time frames. They recognize that momentum is critically important because it provides the feeling of accomplishment and energy to keep pushing forward.

…start coding when all else fails.

There are so many places to get stuck – syntax, concepts, gems, libraries, tools, books, tutorials – the list is endless. They realize the sooner there’s real code, the sooner they’ll have something to react to, adjust, and make better.

And great programmers…

…never stop learning or teaching.

09 Jul 14:55

Big Data Surveillance Results in Bad Policy

by schneier

Evgeny Morozov makes a point about surveillance and big data: it just looks for useful correlations without worrying about causes, and leads people to implement "fixes" based simply on those correlations -- rather than understanding and correcting the underlying causes.

As the media academic Mark Andrejevic points out in Infoglut, his new book on the political implications of information overload, there is an immense -- but mostly invisible -- cost to the embrace of Big Data by the intelligence community (and by just about everyone else in both the public and private sectors). That cost is the devaluation of individual and institutional comprehension, epitomized by our reluctance to investigate the causes of actions and jump straight to dealing with their consequences. But, argues Andrejevic, while Google can afford to be ignorant, public institutions cannot.

"If the imperative of data mining is to continue to gather more data about everything," he writes, "its promise is to put this data to work, not necessarily to make sense of it. Indeed, the goal of both data mining and predictive analytics is to generate useful patterns that are far beyond the ability of the human mind to detect or even explain." In other words, we don't need to inquire why things are the way they are as long as we can affect them to be the way we want them to be. This is rather unfortunate. The abandonment of comprehension as a useful public policy goal would make serious political reforms impossible.

Forget terrorism for a moment. Take more mundane crime. Why does crime happen? Well, you might say that it's because youths don't have jobs. Or you might say that's because the doors of our buildings are not fortified enough. Given some limited funds to spend, you can either create yet another national employment program or you can equip houses with even better cameras, sensors, and locks. What should you do?

If you're a technocratic manager, the answer is easy: Embrace the cheapest option. But what if you are that rare breed, a responsible politician? Just because some crimes have now become harder doesn't mean that the previously unemployed youths have finally found employment. Surveillance cameras might reduce crime -- even though the evidence here is mixed -- but no studies show that they result in greater happiness of everyone involved. The unemployed youths are still as stuck as they were before -- only that now, perhaps, they displace anger onto one another. On this reading, fortifying our streets without inquiring into the root causes of crime is a self-defeating strategy, at least in the long run.

Big Data is very much like the surveillance camera in this analogy: Yes, it can help us avoid occasional jolts and disturbances and, perhaps, even stop the bad guys. But it can also blind us to the fact that the problem at hand requires a more radical approach. Big Data buys us time, but it also gives us a false illusion of mastery.

08 Jul 14:01

Agile Health Metrics for Predictability

by Andrew Fuqua

LeadingAgile uses Agile Health Metrics to demonstrate the results of our process improvement efforts and to identify areas that need further improvement. We have many internal documents describing our approach that we share with our clients, but to my surprise, it seems that we have never blogged about it. Here is a high-level view of the metrics we often start with.

When deciding what to measure, the place to start is with a goal. First, ask yourself what outcomes are you after, your goals. Then consider what is needed to meet those goals. And finally, what metrics indicate whether you have what you need. You may recognize this as the Goal-Question-Metric approach.

Our clients tend to care about predictability, early ROI, improved quality, or lower cost. Predictability seems to be paramount. They want teams to get good at making and keeping promises, consistently delivering working, tested, remediated code at the end of each sprint. A team that is not predictable isn’t “bad” – but they aren’t predictable.  Without stable predictable teams we can’t have stable predictable programs, particularly when there are multiple dependencies between teams.

This post focuses on metrics for predictability. The goal, then, is:

Teams can plan, coordinate, and deliver predictably enough to make a release level commitment.

Here’s how we break that down:

  • Does the team deliver the functionality it intended each sprint?
  • Has the team established a stable velocity?
  • Does the team frequently deliver working, tested, remediated code?
  • Does the team have everything expected each sprint to perform the work?
  • Does the team have confidence they will deliver the functionality expected for the release?

We answer these questions with the following metrics:

Story and Point Completion Ratio

  • Number of Committed Stories Delivered / Number of Committed Stories
  • Number of Committed Points Delivered / Number of Committed Points

This metric helps teams become predicable in their estimating and sprint planning. It encourages smaller stories and more effort getting work ready prior to the sprint. We like to see delivered points and stories to be within 10% of the commitment.

Velocity and Throughput Variation

  • Recent Velocity / Average Velocity
  • Recent Throughput / Average Throughput

This metric helps teams become stable in their performance. This will encourage managing risks and dependencies ahead of the sprints, and not over committing within the sprint. We like to see recent velocity be within 20% of average. We also want to see a reduction in the standard deviation of the velocity over time.

Lead Time

  • WIP to Throughput Ratio

Building a large inventory of untested code typically increases the costs and time associated with fixing defects. This in turn increases the costs and challenges associated with version control, dependency management, and the delivery of working, tested, remediated code. Our objective is to improve lead-time and to deliver frequently. There should not be more than 4 weeks worth of throughput active in a team from Ready to Delivered. Less is better. We like to see 2 weeks or less.

Team-member Availability Ratio

  • Headcount available / Headcount expected

We need an indication when planned team-members aren’t available. Stability is critical for teams to be able to make and keep release commitments. When people are pulled across multiple teams – or are not available as planned – it is unlikely that the team will be able to deliver predictably. We like to see this be within 10% of plan.

Release Confidence

Use the team’s insight and record of performance to evaluate the team’s confidence that the release objectives can be achieved. This metric is useful for planning and commitment purposes. Release Confidence is a consensus vote where 1 is no confidence and 5 is very confident. If a team has heavy dependencies, they should include a vote from the Agile Project Manager of the team handling the dependencies. If the team is missing a skill or if a role is unfilled, the team should take into account the likely impact to release success. Support this metric with a release burn-up.

Other Metrics

That’s just a taste of the metrics we use for predictability. We also use quality indicators like build frequency, broken builds, code coverage, defect rates or technical debt. Likewise, for Product Owners we are interested in things like major initiatives, features remaining, features released, size of release cycle, and more. And for value, we are interested in things like time to value.

Using metrics responsibly provides insight across the organization to understand the organization’s ability to meet expectations. These metrics help establish a shared understanding of the respective capabilities of the teams, and guidance for improvement efforts.

The post Agile Health Metrics for Predictability appeared first on LeadingAgile.

08 Jul 03:17

Paul McKenney: Multi-core Linux: Transaction Memory Everywhere: Forward-Progress Guarantees

Last year, I noted that hardware transactional memory (HTM) announcements lacked forward-progress guarantees. As noted in that posting:

Until HTM implementations provide some sort of forward-progress guarantee, HTM will be limited by its fallback code sequences. For example, if the fallback code uses locking, then HTM will be just as vulnerable to deadlock as is the fallback code.


And during the past year, the IBM Mainframe announced an HTM implementation that includes constrained transactions in addition to the usual best-effort HTM implementation. A constrained transaction starts with the tbeginc instruction instead of the tbegin instruction that is used for best-effort transactions. Constrained transactions are guaranteed to always complete (eventually), so if a transaction aborts, rather than branching to a fallback path (as is done for best-effort transactions), the hardware instead restarts the transaction at the tbeginc instruction.

The Mainframe architects needed to take extreme measures to deliver on this forward-progress guarantee. If a given constrained transaction repeatedly fails, the CPU might disable branch prediction, force in-order execution, and even completely disable pipelining. If the repeated failures are due to high contention, the CPU might disable speculative fetches, introduce random delays, and even serialize execution of the conflicting CPUs. “Interesting” forward-progress scenarios involve as few as two CPUs or as many as one hundred CPUs. Perhaps these extreme measures provide some insight as to why other CPUs have thus far refrained from offering constrained transactions.

As the name implies, constrained transactions are in fact severely constrained:


  1. The maximum data footprint is four blocks of memory, where each block can be no larger than 32 bytes.
  2. The maximum code footprint is 256 bytes.
  3. If a given 4K page contains a constrained transaction’s code, then that page may not contain that transaction’s data.
  4. The maximum number of assembly instructions that may be executed is 32.
  5. Backwards branches are forbidden.

Nevertheless, these constraints support a number of important data structures, including linked lists, stacks, queues, and arrays. Perhaps HTM with constrained transactions will eventually become an important tool in the parallel programmer's toolbox.

05 Oct 21:15

Casamento gay

by Jeferson Arenzon

"Segundo Bento XVI, o casamento homossexual é uma das piores ameaças contra a humanidade."
05 Oct 21:06

Justificativa eleitoral: ganhe tempo levando o requerimento já preenchido

by augusto
Tiago Daitx

Baita dica! Valeu otubo! =)

Avise pros amigos: quem estiver fora da sua cidade no dia da eleição e for justificar (“justificar o voto”, como dizem, mas na verdade é justificar a ausência…) pode ganhar tempo levando o requerimento de justificativa (abaixo, vale para todo o Brasil, clique para obter o PDF) já completamente preenchido.

Clique para baixar o PDF em tamanho real de um site da Justiça Eleitoral

Leve também um documento oficial de identidade QUE TENHA FOTO (obrigatório), e o título, se tiver.

Em geral pode-se justificar em qualquer local de votação, mas o site do TRE do estado em que você estiver deve ter uma lista dos locais específicos pra isso, que podem ter menos fila e andar mais rápido.

Vale a pena consultar o site do TRE do estado em que você estiver, mesmo se você souber onde justificar, porque ele pode ter instruções específicas para a sua jurisdição.