Deixando o Magic Mouse utilizável

8, abril, 2010 eliezer 11 comentários

Esse post pode até parecer um Review, mas acredito que está mais pra um tutorial e crítica do produto. Primeiro ponto a se questionar é porque o “Magic” Mouse, o Megaboga mouse multi touch da Apple não tem um movimento igual a todos os modelos existentes no mercado.

Um exemplo simples do que estou falando sobre o movimento: Se você pega um mouse de R$11,00 reais ótico do modelo simples, qualquer pessoa que já trabalha com um computador a mais de 6 meses não tem dificuldade em utilizar o mouse certo? Portando quem já usa mouse desde do Genius serial de bolinha até um um mouse da Microsoft Laser sem fio, não deveria estranhar o movimento do mouse mais “revolucionário” que a Apple já criou certo? ERRADO.

O “Magic” Mouse tem um comportamento por padrão diferente de todos os outros. Funciona assim: ele tem uma aceleração “Mágica”. hehehe desculpe o sarcasmo. Se você mover ele lentamente, ele vai muito lento. Se você mover ele muito bruscamente ele vai rapidamente pro outro lado da tela.

Se você perceber o seu movimento que é feito no mouse tradicional, não é assim que funciona, o movimento do mouse é constante. O cerebro humano pode até memorizar que assim que funciona o novo mouse, mas o automatismo já criado por mais décadas utilizando o mouse de uma forma constante, torna essa adaptação um pouco traumática.

O lance de deixar a intensidade do movimento fazer a velocidade funciona bem apenas para o scroll.

Bom vamos ao que interessa, pra quem comprou o mouse ou veio no iMac, vamos as opções de configuração para deixar o mouse “utilizável”.



  • 01 – Utilizando opção nativa da Apple: FAIL
  • Não tem como aumentar a velocidade e ficar utilizável como um mouse normal via interface gráfica do sistema operacional. A apple não tem nem vergonha na cara, porque se via terminal é possível aumentar a velocidade, porque não deixar isso de uma forma simples para o usuário?

    Veja o comando para alterar o limite de velocidade:

    defaults write -globalDomain com.apple.mouse.scaling -float 5.0

    Obs.: O valor 5.0 pode ser modificado pelo que ficar melhor para você. Uma vez alterado esse valor não se pode modificar a velocidade do mouse pelo sistema. Para entrar em vigor a alteração é necessário encerrar a sessão.

    Olha que vergonha a discussão no fórum da Apple: http://discussions.apple.com/thread.jspa?messageID=10519849

    Olha o comentário do cara no fórum: “Perfect description of my experience “Slow, inaccurate and jerky.”



  • 02 – Utilizando o MouseZoom
  • Seria aceitável pagar R$229,00 em um mouse e instalar um software de terceiro para deixar ele melhor? Depende, é grátis o programa? Sim. Resolve tudo no mouse? Não. Isso mantém a incompetência da Apple em gerenciar o seu próprio periférico.

    Vamos ao teste com o Mouse Zoom

    Faça o Download em http://benh57.com/mousezoom.html

    Instale o o painel e abra nas preferências do sistema “MZoom”

    Com o mouse zoom é possível chegar em uma configuração de aceleração aceitável, mas o movimento ainda não será continuo.



  • 03 – Utilizando o MagicPrefs
  • Chega a ser uma boa opção, com configuração de gestos, o que deixa o mouse como um TrackPad, mas ainda sim não modifica a forma de aceleração do mouse. Sendo possível utilizar ele para incluir gestos e configurar a aceleração do movimento.

    Download em http://magicprefs.com/

    Veja a tela principal:



  • 04 – Utilizando o MagicDriver
  • Esse sim pode ser chamado de Magic, porque ele simplesmente configura o movimento do mouse de verdade, dando a opção de configurar a aceleração e a sensibilidade.

    O MagicDriver é baseado no famoso SteerMouse que não suporta “Magic” Mouse mas indica no novo produto (ainda beta) chamado MagicDriver.

    Download em http://plentycom.jp/en/magicdriver/index.html

    Logo que entrei a primeira vez no site consegui ver a funcionalidade matadora: “Adjusting the cursor’s Tracking Speed and Sensitivity.”

    Veja como ficou minha configuração do MagicDriver

    Steve Jobs, veja como se faz.

    Esse programa é muito bom, mas aee eu pergunto novamente, é aceitável pagar R$229,00 reais em um mouse e ter que instalar um programa pago em que a versão trial que funciona é beta 13 lançada recentemente em 1 de Abril que expira automaticamente em junho de 2010 e que depois dessa data se tiver uma versão final será possível comprar o “configurador” do mouse por $20,00 doletas? Comprar o Magic mouse parece piada atualmente.



  • Conclusão
  • Apesar que sofrer muito pra testar e configurar e passar horas pesquisando soluções pra não chegar ao ponto de devolver o produto, ele tem muitas coisa boas e ruins também.

    Prós: Scroll 360, gestos (via software de terceiro é claro, exposé), qualidade do produto, acabamento
    Contras: Bateria ridícula (1 mês – 8h/dia), muito baixo (mas isso como muitas coisas Apple, vc acostuma), movimento lento explicado nesse post, Falhas ao reconectar quando desligado, Não funciona no vidro.

    Felizmente ainda estou no prazo, e vou devolver o meu. Espero que para quem não tem a opção de devolver esse post tenha ajudado a esclarecer muitas duvidas dobre o movimento do “Magic” Mouse e possa dar alternativas de utilizar o mouse e esperar a própria Apple criar uma correção de software que configure realmente o mouse.

    O que posso dizer que gostei muito de usar o quase mágico “Magic” Mouse.

    Com certeza a melhor opção hoje seria o MagicDriver para configurar o movimento.

    Categories: Apple Tags: , , , , ,

    Nova versão 0.5 do Inotes Contacts para Gmail

    29, março, 2010 eliezer Sem comentários

    Nova versão do Inotes Contacts disponível aqui. Essa versão corrige o bug da API gmail-greasemonkey. Detalhes sobre o problema em: http://code.google.com/p/gmail-greasemonkey/issues/detail?id=39

    A solução foi implementar um listener que monitora a pagina no gmail e inclui o botão do Inotes.

    Para que não conhece tem um post explicando o script.

    Categories: javascript Tags: ,

    FireScrum – the open source scrum tool

    16, fevereiro, 2010 eliezer 1 comentário

    Seguindo a linha dos softwares para gerenciamento de um projeto com scrum, temos hoje algumas boas alternativas de ferramentas, uma delas foi dita dita no post anterior o “Pronto”.

    Neste post temos o “FireScrum” que foi criado sobe licença GLP. O FireScrum é um produto que nasceu a partir das atividades desenvolvidas durante um Programa de Mestrado de Engenharia de Software da http://www.cesar.org.br/, mas agora o FireScrum é um produto do INES (Instituto Nacional de Ciência e Tecnologia para Engenharia de Software).

    Pode não servir para todos, mas um conceito legal de poder gerenciar um projeto com scrum sem necessáriamente estar presencialmente junto com o time.

    Site: http://www.firescrum.com/
    Download: http://sourceforge.net/projects/firescrum/

    Categories: Scrum Tags: ,

    Pronto – Gestão de Software com Scrum

    24, janeiro, 2010 eliezer 1 comentário

    Pronto

    Um sistema de código livre, feito em Java especialmente para desenvolvedores de software que utiliza metodologia Scrum. Para quem quer trabalhar de uma forma mais “digital”, é uma excelente opção. Tem uma Demonstração Online onde você pode conferir a aplicação sem necessidade de instalar em seu servidor web.

    O melhor de tudo é grátis.

    Confira também o site do produto.

    Categories: Scrum Tags: , ,

    Vídeo sensacional do Google Chrome

    20, dezembro, 2009 eliezer Sem comentários

    Apesar de fã incondicional do Firefox, não há como discutir a superioridade de performance do google Chrome, os números de diversos testes relizados apenas confirma o que se vê apenas utilizando o browser do google.

    Se tratando do google, os videos promocionais dos seus produtos sao muito bem feitos, mas esse do google Chome, superou as espectativas. O vídeo simplesmente mostra as funcionalidades do navegador. Vale a pena ver.

    Categories: Browser Tags: , , ,

    Integração de contatos IBM Inotes no gmail

    15, outubro, 2009 eliezer 1 comentário

    Não estou querendo que todos abandonem o Inotes da IBM, pois se trata de uma ferramenta de e-mail muito boa. Mas como todo software tem limitações, e a principal delas que me atrapalha muito é o espaço. Tem outro fator que ajuda, centralizar todos os seus e-mails em um único lugar.

    Então uma alternativa é colocar a sua conta do gmail para baixar os e-mails do inotes via pop3. Mas essa solução traz outro problema, os contatos do seu domínio do inotes não ficam mais acessíveis.

    Para corrigir isso trabalhei em um script Greasemonkey que resolve meu problema. :) Espero que seja útil para mais pessoas também.

    Como funciona:

    Uma combinação de tecnologia deu origem ao script.

    Firefox 3.5 + gmail + inotes + Greasymonkey + javascript + gmonkeyAPI + GM_xmlhttpRequest + xpath + dedicação = “IBM Inotes Contacts in Gmail”

    O Script está hospedado no userscripts.org o maior repositório de scripts existente.

    Instalação:

    Depois de intalado, defina as configurações da sua conta no script:

    1
    2
    3
    
    InotesContacts.config.domain = ""; //Define your domain here (ex.: inotes.yourdomain.com)
    InotesContacts.config.user = "";   // Set your username
    InotesContacts.config.password = ""; //Set your password

    Veja o screeanshot:

    inotes_contacts

    Qualquer problema, sugestão, melhoria, agradecimento acesse a pagina do script aqui

    Para que gosta do código, o fonte está aqui. :)

    Categories: javascript Tags: , , , , ,

    Parse de XML string com xpath em Javascript

    5, outubro, 2009 eliezer 1 comentário

    XML simples de clientes com tipo de pessoa. Nesse exemplo vou usar xpath para pegar apenas os clientes do tipo ‘F’

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    <xml>
    	<clientes>
    		<cliente id="1" tipoPessoa="F">
    			<nome>Eliezer Rodrigues</nome>
    		</cliente>
    		<cliente id="2" tipoPessoa="J">
    			<nome>Empresa Abz teste</nome>
    		</cliente>
    		<cliente id="3" tipoPessoa="F">
    			<nome>Maria da Silva</nome>
    		</cliente>
    	</clientes>
    </xml>

    Codigo completo, para fazer o teste, cole no firefug e rode:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    var xmlString = "<xml><clientes><cliente id='1' tipoPessoa='F'><nome>Eliezer Rodrigues</nome></cliente><cliente id='2' tipoPessoa='J'><nome>Empresa Abz teste</nome></cliente><cliente id='3' tipoPessoa='F'><nome>Maria da Silva</nome></cliente></clientes></xml>";
     
    var parser=new DOMParser();
    var doc = parser.parseFromString(xmlString,"text/xml");
    var xpath= "//clientes/cliente[@tipoPessoa = 'F']";
    var xmlObject = doc.evaluate( xpath, doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null );
     
    var i=0;
    while ( (entry = xmlObject.snapshotItem(i) ) !=null ){ 
        alert("Nome: "+entry.firstElementChild.textContent);
        i++;
    }

    legal neh?

    Categories: javascript Tags: , ,

    Lendo arquivo de propriedades com Shell Script – IFS

    21, setembro, 2009 eliezer 2 comentários

    Bom, pode parecer simples, mas quando a velocidade é o seu primeiro quesito, isso pode mudar um pouco. Mas espera aí, é apenas ler um arquivo e fazer um split pegar a chave e o valor. Simples assim mesmo, mas quando o assunto é shell script um simples split não é tão simples.

    A primera forma de se fazer seria fazer com um cut, veja:

    1
    
    echo "chave=valor" | cut -d = -f 1

    Legal, funciona, mas quando seu arquivo de properties é grande, ou que esse script rode toda hora, a velocidade do um simples cut que funciona passa a ser um problema.

    Uma outra forma de se fazer isso é usar o IFS – Internal Field Separator para fazer isso de uma forma decente.

    Então, vamos lá. Pimeiro meu arquivo de propriedades:

    sample.properties

    1
    2
    
    caminho=/tmp
    version=1.0

    Fiz um script simples para representar o problema. Função rox com IFS e função sux com CUT.

    sample.sh

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    #!/bin/bash
     
    rox(){
    	IFS_OLD=$IFS
    	IFS="="
    	while read key value
    	do
    		echo "key = $key"
    		echo "Value = $value" 
    	done < sample.properties 
    	IFS=$IFS_OLD
    }
     
    sux(){
    	while read line
    	do
    		key=`echo $line | cut -d = -f 1`
    		value=`echo $line | cut -d = -f 2`
    		echo "key = $key"
    		echo "Value = $value"
    	done < sample.properties 
    }
    clear
    echo "rox--------------------------------------"
    time rox
    echo "sux--------------------------------------"
    time sux

    Veja o resultado:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    rox--------------------------------------
    key = caminho
    Value = /tmp
    key = version
    Value = 1.0
     
    real	0m0.001s
    user	0m0.000s
    sys	0m0.000s
     
    sux--------------------------------------
    key = caminho
    Value = /tmp
    key = version
    Value = 1.0
     
    real	0m0.024s
    user	0m0.007s
    sys	0m0.019s

    Notem a velocidade do script. Não é ser xiita, mas sim fazer da forma correta. :)

    Template Engine em Python – Cheetah

    10, setembro, 2009 eliezer Sem comentários

    Um modulo simples para python, cheetah. Ele tem tudo que programadores python gosta, simples, bem documentado, comunidade ativa, rápido, possui um mecanismo de cache entre outras funcionalidades.

  • Onde baixar?
  • http://www.cheetahtemplate.org

  • Instalando
  • 1
    
    python setup.py install
  • Criando um objeto simples Cliente
  • 1
    2
    3
    4
    
    class Cliente():
    	def __init__(self, nome, email):
    		self.nome = nome
    		self.email = email
  • Criando um template
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    <html>
    <head><title>$title</title></head>
    <body>
    	<div>
    	#for $cliente in $clientes        
    		<div>
    		<b>$cliente.nome</b>
    		(<a href="mailto:$cliente.email">$cliente.email</a>)
    		</div>
    	#end for
    	</div>
    </body>
    </html>
  • Executando
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    from Cheetah.Template import Template
     
    if __name__ == "__main__":
     
    	clientes = [Cliente("Eliezer Rodrigues", "eliezer@teste.net"), 
                           Cliente("Maria", "maria@teste.net")]
     
    	template = Template(file="page.tpl")
    	template.title = "Todos os clientes"
    	template.clientes = clientes
     
    	print str(template)
  • Resultado:
  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    <html>
    <head><title>Todos os clientes</title></head>
    <body>
            <div>
                    <div>
                    <b>Eliezer Rodrigues</b>
                    (<a href="mailto:eliezer@teste.net">eliezer@teste.net</a>)
                    </div>
                    <div>
                    <b>Maria</b>
                    (<a href="mailto:maria@teste.net">maria@teste.net</a>)
                    </div>
            </div>
    </body>

    Curtiu?? para saber mais sobre o projeto entre no guia do usuário e confira tudo sobre o cheetah.

    Motivos para amar um NERD

    1, setembro, 2009 eliezer 5 comentários

    1. Você pode ter certeza daquilo que ele é, e de como será.

    Nerd não muda. Ele não tenta fingir que é outra pessoa só para te agradar, porque nem se ele quisesse ele saberia como parecer legal, bonito, etc. As qualidades de um NERD são imutáveis.

    Se ele gosta de C++, vai morrer gostando de C++. Pode até ser que passe a usar Java também, mas no fundo é tudo a mesma coisa.

    Se ele gosta de De Volta para o Futuro, vai morrer gostando disso.
    Se hoje ele é gordinho, amanhã será gordinho.
    Se hoje ele é magrelo, amanhã será magrelo.
    Diferente dos garotos que fazem musculação para você achar que eles são gostosos, e depois que você casar eles vão virar uns gordos barrigudos?

    2. Se ele diz que vai fazer uma festa em rede é verdade.
    Sabe aquele papo dos homens comuns de falar que vai jogar futebol e ir a outro lugar?
    Se Nerd fala que vai a casa de alguém para fazer uma Festa em Rede e jogar Doom, é porque ele vai fazer isso.

    Ele não vai mentir para você, falando que vai fazer uma coisa e ir fazer outra coisa.

    3. Nerd tem empregos estáveis.
    Muita gente diz que mulher gosta de dinheiro, tremenda mentira.
    O que mulher odeia são homens idiotas que não conseguem ter um emprego decente.
    Até porque senão você ( mulher ) tiver um marido com emprego tosco, ainda tem que ouvir sua mãe, suas amigas falando:
    - Nossa! Mas que marido você arrumou, ele é um banana?

    Com Nerds não tem preocupação. Até porque Nerd sempre faz algo que ninguém entende, e daí parece ser muito mais importante o emprego dele do que realmente é.

    - Ah! Meu marido cuida de um Servidor de rede?

    4. Nerd sempre resolverá o problema do seu computador muito mais rápido e melhor que o suporte técnico.
    E o melhor, de graça.

    5. Ele não vai esquecer seu aniversário.
    A menos que a bateria do Palm dele acabe.

    6. Ele não tem ciúmes do carro dele.
    Ele não vai ficar falando do carro dele o tempo todo.
    Mas não pegue o livro do Stephen Hawking e nem toque no computador dele.
    Computador é uma coisa sagrada, NUNCA TOQUE NELE.

    7. Nerd adora saber como as coisas funcionam.
    Então enquanto ele não conseguir fazer você ter um orgasmo, ele vai estudar o porquê, estudar os pontos sensíveis de uma mulher, criar um gráfico com as possíveis formas de te fazer chegar lá medindo a probabilidade de isso acontecer.

    Fará cálculos de Permutação para saber qual o conjunto dessas formas é a melhor para fazer você ter um orgasmo?.
    Só não pergunte para ele o que ele está fazendo, porque se ele tentar te explicar você não vai entender.

    8. Nerd esperto grava os programas.
    Nerd que é nerd sabe programar o video cassete, o gravador de DVD ou a placa dee captura de TV para gravar seu programa favorito. Por isso não tem porquê ele não ir a algum lugar com você só porque estará passando Jornada nas Estrelas ( ao contrário dos maridos comuns que ficariam em casa vendo futebol ).
    A menos que você queira ir a um lugar movimentado, a maioria dos Nerds odeiam lugares cheios ( pelo menos eu odeio )?

    9. Todo mundo tem defeito.
    Mesmo tendo bons motivos para amar um NERD, NUNCA, JAMAIS, NEM PENSE, em interrompê-lo quando ele está programando, esse momento é sagrado.
    Interromper alguém que está programando é pior que interromper alguém que está no meio de um cálculo.

    Motivo: Quase sempre agente tem que ter em mente o valor de 4 ou 5 variáveis nessa hora.
    Tem que saber como e porquê o FOR começou e vai acabar
    Tem que guardar na cabeça a condição do IF onde estamos lendo.

    E guardar muitas outras informações.
    Se você interrompe nessa hora, agente esquece todas essas informações e tem que procurá-las de novo. e isso é uma chatice.

    Então! AME um NERD!
    Mas NUNCA encoste no computador dele, fale mal do Stephen Hawking ou dos programas de TV que ele assiste e NUNCA interrompe no meio de uma programação.
    Faça isso e será feliz para sempre !

    Categories: Sem categoria Tags: ,