Remapeando a tecla ± do MacBook Pro
26 de Novembro de 2022, 17:57 - sem comentários aindaPor algum motivo bizarro, a Apple inclui essa tecla esquisita no teclado de seus notebooks. Tenho no MacBook Pro que uso, mas já vi que é a mesma coisa em outro modelos como o MacBook Air. Como eu uso boa parte do tempo em casa, onde tenho um teclado mecânico, quase nunca percebo o problema dessa tecla alienígena instalada. Mas basta eu trabalhar só no laptop em hackathons e outros eventos pra começarem os problemas. Principalmente quando vou mexer no shell e passar o "~" pra usar como abreviação do HOME.
Hoje, um dos raros dias que faço isso, resolvi mexer no laptop na sala pra assistir à copa do mundo e acertar algumas coisas no raspberrypi. Além de escrever pro blog aqui. Eis que o raio da tecla "~" faz falta. Mas dessa vez resolvi buscar alguma solução na Internet. E achei!
https://apple.stackexchange.com/questions/281405/easy-way-to-remap-non-modifier-keys-on-mac
Basicamente é rodar o seguinte comando:
MacOS@helio> hidutil property --set '{"UserKeyMapping": [{"HIDKeyboardModifierMappingSrc":0x700000035, "HIDKeyboardModifierMappingDst":0x700000064}, {"HIDKeyboardModifierMappingSrc":0x700000064, "HIDKeyboardModifierMappingDst":0x700000035}] }'
Isso já configura a tecla corretamente. E pra iniciar durante o boot, criar o arquivo ~/Library/LaunchAgents/com.user.loginscript.plist
com o seguinte conteúdo:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.user.loginscript</string> <key>ProgramArguments</key> <array> <string>/usr/bin/hidutil</string> <string>property</string> <string>--set</string> <string>{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000035, "HIDKeyboardModifierMappingDst":0x700000064}, {"HIDKeyboardModifierMappingSrc":0x700000064, "HIDKeyboardModifierMappingDst":0x700000035}]}</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>
E chamar na inicialização assim:
MacOS@helio> launchctl load ~/Library/LaunchAgents/com.user.loginscript.plist
E pronto! Tecla funcional. Agradeço de coração quem deu essa resposta maravilhosa no stack exchange.
UPDATE: Sun Nov 27 19:27:29 CET 2022
Quando fui usar o laptop conectado no teclado externo, tive a triste verificação de que os comandos acima troca uma tecla pela outra, o que é altamente indesejado. O que eu quero é mesmo sumir com a tecla do "±" que não uso.
Pra isso eu precisei modificar o comando anterior para:
MacOS@helio> hidutil property --set '{"UserKeyMapping": [{"HIDKeyboardModifierMappingSrc":0x700000064, "HIDKeyboardModifierMappingDst":0x700000035}] }'
E o mesmo pra ~/Library/LaunchAgents/com.user.loginscript.plist
:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.user.loginscript</string> <key>ProgramArguments</key> <array> <string>/usr/bin/hidutil</string> <string>property</string> <string>--set</string> <string>{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000064, "HIDKeyboardModifierMappingDst":0x700000035}]}</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>
E agora tenho a tecla "~" em ambos os teclados. Precisei dar um "reload" no launchctl pro caso do teclado:
MacOS@helio> launchctl unload ~/Library/LaunchAgents/com.user.loginscript.plist MacOS@helio> launchctl load ~/Library/LaunchAgents/com.user.loginscript.plist
Adeus Twitter. Longa vida Mastodon!
26 de Novembro de 2022, 14:16 - sem comentários aindaComo um tsunami, Elon Musk assumiu o Twitter e literalmente varreu como uma onde destruidora a empresa. De cara mandou metade pra rua, depois pediu code review pra cada um que ficou e deu prazo para irem trabalhar fisicamente na empresa ou automaticamente estariam demitidos. Claro que as coisas não foram muito bem. E no momento atual continuam indo por água abaixo.
Enquanto isso redes alternativas ganharam tração, entre elas a Mastodon. Ao contrário do Twitter, Mastodon não é uma empresa ou uma rede: é um conjunto de servidores conversando o mesmo protocolo e que se comunicam entre si. Eu já tinha uma conta na instância mastodon.social, onde tudo surgiu. Mas desde que foi criada, em 2015, eu tinha postado 2 mensagens. E só. Nunca teve muita gente ali pra conversar pra tornar a rede minimamente interessante.
Mas com a ascensão do Elon ao Twitter isso tudo mudou. E pra melhor. Muita gente interessante migrou pra rede Mastodon, ao ponto de atingir o efeito rede e manter um crescimento sustentando em termos de usuários e posts. Se os servidores vão aguentar esse tráfego, daí já são outros 500.
No Twitter eu automatizava muita coisa. Então pra mim era essencial ter as mesmas coisas no Mastodon. Eu primeiramente descobri o programa "toot", em Python. Com ele é possível criar posts usando shell script (e na verdade foi o que fiz de início).
Não sei se tem pacotes pra instalar o toot, mas eu usei o pip do próprio python pra instalar.
helio@MacOS> pip3 install toot
Com isso o programa "too" vai parar em ~/.local/bin, que eu já tenho na minha variável PATH, então funciona no shell. Mas é preciso corrigir o PATH se for usar num script via crontab (como eu fiz depois).
O começo é criar um login na instância que for usar. Eu por exemplo comecei com helioloureiro@mastodon.social, mas como eu já tinha conta numa outra instância que uso pra fotos ao invés do Instagram, o pixelfed.social, adicionei também. E pra isso usei o parâmetro "-i".
helio@MacOS> toot login helioloureiro@mastodon.social helio@MacOS> toot login -i helioloureiro@pixelfed.social
As configurações ficam armazenadas num arquivo for json em ~/.config/toot/config.json, o que depois facilitou minha vida pra criar scripts em python (mas que vou descrever em outro artigo).
Daí você pode começar a mandar mensagens usando a conta padrão ou usando o "-i" pra qual instância quer mandar.
helio@MacOS> toot post "testing"
E o toot aceita mesmo passar conteúdo via pipe:
helio@MacOS> uname -a | toot post
Pra subir imagens e usando minha instância que posto em português:
helio@MacOS> toot activate helioloureiroBR@helioloureiroBR@mastodon.social
✓ User helioloureiroBR@helioloureiroBR@mastodon.social active
helio@MacOS> toot post "só li verdades" --media=$HOME/Pictures/chicobuarque-mastodon.jpg
Uploading media: /Users/ehellou/Pictures/chicobuarque-mastodon.jpg
Toot posted: https://mastodon.social/@helioloureiroBR/109410489057504335
Então é possível ver as possibilidades infinitas de scripts em shell com o uso de toot.
Pra terminar o artigo, deixo aqui a imagem muito significativa que enviei no teste. Afinal não existe prazer maior na vida que ajudar um bilionário a ficar milionário.
Em tempo: eu não apaguei minhas contas no Twitter. Estão lá mas inativas.
Sistema de loteria em python com CSV do EventBrite
31 de Outubro de 2022, 14:41 - sem comentários aindaAcabei de lançar um sistema fácil pra fazer loteria de participantes na PyCon Suécia.
Ia fazer web, mas depois mudei de idéia e passei pra console com dialog.
./simple-lottery-eventbrite.py --csvfile=/Users/ehellou/Downloads/PyconSweden2022-Attendee_Summary_Report_91481040875_20221027_1516.csv --dialog
Ele abrirá e perguntará quantos rounds quer rodar (ou quantos vencedores ganharão).
Em seguida ele permite confirmar o ganhador o cancelar, no caso da pessoa não estar na sala.
E por fim salva um log dos ganhadores, com o email correto.
O repositório está no github.
Países considerados os mais felizes do mundo escondem problemas graves - levei um tombo de bicicleta
29 de Outubro de 2022, 16:28 - sem comentários aindaSe não leu ainda os outros posts, pare e leia pra entender um pouco mais sober a Suécia.
- Minha experiência de quase COVID na Suécia
- Países considerados os mais felizes do mundo escondem problemas graves
- Países considerados os mais felizes do mundo escondem problemas graves - as crianças
- Países considerados os mais felizes do mundo escondem problemas graves - a identidade
- Países considerados os mais felizes do mundo escondem problemas graves - o inverno
- Países considerados os mais felizes do mundo escondem problemas graves - um pouco mais sobre inverno
- Países considerados os mais felizes do mundo escondem problemas graves - imposto de renda
- Países considerados os mais felizes do mundo escondem problemas graves - o verão sem noite
- Países considerados os mais felizes do mundo escondem problemas graves - o sistema de saúde
Ao invés de descrever como funciona a Suécia ou descrever como levei meu último tombo de bicicleta aqui. Claro que não foi o primeiro. Já cai algumas vezes andando na neve e no gelo. Mas esse foi o primeiro em que deslizei nas folhas do outono.
Nessa época do ano já fica escuro por volta das 5 horas da tarde. Então luzes nas bicicletas são ítens obrigatórios. E no sentido literal mesmo. A lei de trânsito na região de Estocolmo exige luzes (frontal e traseira) e campainha pra circular com bicicletas. Capacete não é obrigatório (apenas pra crianças e jovens até 15 anos - e é responsabilidade dos pais assegurarem que a criança/jovem o esteja usando). Eu sai mais tarde da empresa pois participava da nossa hackathon bi-anual que aconteceu a primeira edição na primavera e a segunda agora no outono. Mas se tivesse saído às 5 estaria escuro do mesmo jeito. Não choveu, mas o chão está úmido da chuva dos dias anteriores (e talvez durante a madrugada). Ao fazer a minha primeira curva... lá vou eu rolando com bicicleta, laptop, etc. Os freios e marchas da bicicleta ficaram tortos com o tombo. A roda também. Mas eu levo um kit básico de ferramentas e arrumei tudo por lá mesmo pra poder chegar em casa.
Não me machuquei muito uma vez que escorreguei com a bicicleta nas folhas que ficam no chão. Só um arranhão básico.
No dia seguinte descobri mais algumas coisas que ficaram danificadas pela queda.
A fonte eu consegui dar um desentortada na mão mesmo. E está aqui funcionando como se nada tivesse acontecido. O mesmo posso dizer do laptop.
Já no dia seguinte ligou como se nunca tivesse caído no chão. Na verdade eu não sei dizer o quanto ele bateu no chão uma vez que a bicicleta cai por cima de mim (e por isso arranhou a minha perna). Mas fiquei feliz de ver que o laptop da Apple é duro na queda. Ele realmente parece ser bem sólido.
Agora vamos ao ponto do motivo pelo qual eu cai. Primeiro que a culpa é minha. Somente minha. Nessa época do ano eu já não deveria estar usando minha bicicleta road, que tem um pneu slick pra asfalto. Eu tenho uma mountain bike e deveria ter ido com ela mesmo. E o problema dessa época do ano são as folhas e a chuva. Chove bastante, como que pra anunciar que o inverno está chegando e as folhas criam uma camada pastosa escorregadia. Até mesmo de carro é preciso tomar cuidado quando passa por onde tem muitas folhas no chão. Imaginem então de bicicleta?
Eu não cai em nenhum desses lugares em que tirei a foto. Foi num lugar com bem menos folhas. A diferença foi que eu estava rápido demais, no escuro e dando chances demais pro azar. Com esse pneuzinho aí abaixo.
Não estava chovendo no momento da foto, mas é possível perceber o quanto o pneu fica molhado por passar pelas folhas úmidas. E um pneu liso, pra asfalto...
Então imagino que essa tenha sido a última pedalada que dei com minha bicicleta road nesse ano. Vou passar a usar a mountain bike, que logo logo precisarei trocar os pneus atuais pelos pneus de inverno. E talvez no ano que vem considerar trocar por uma gravel, que tem o pneu mais largo e com ranhuras.
Mas enquanto isso, podem olhar os vídeos que fiz com a bike road esse ano. O primeiro foi uma pedalada básica até um local próximo, Upplands Väsby, 67 Km ida e volta, depois Uppsala, 82 Km (voltamos de trem) e finalmente Nynäsham, 73 Km, de onde também voltamos de trem.
Corrigindo o problema de fontes pequenas no Firefox
27 de Outubro de 2022, 8:46 - sem comentários aindaEsse problema já vinha arrastando-se por algum tempo. Desde que peguei o MacBook. Quando eu trabalhava com um display externo, o Firefox ficava com a fonte normal. Mas bastava eu usar somente o laptop pra ele ficar ridiculamente pequeno. Como pode ser visto na image, o texto é legível, mas a barra do Firefox é impossível. E em alguns sites específicos eu precisava ficar aumentando o zoom pra conseguir ler o texto.
No Macos eu já tinha configurado pra usar uma resolução não tão alta pra justamente não ficar com tudo ridiculamente pequeno na tela (eu particularmente odeio isso).
Mas o Firefox sempre teimava em não seguir a configuração. E o difícil era... buscar um solução já que eu não sabia qual o problema exatamente. Tentei "firefox small fonts", "firefox small resolution" e por aí seguiu minha busca. Sem infrutífera. Até que hoje eu resolvi buscar por "hidpi" e... bingo!
Basta entrar na configuração do Firefox com "about:config" e alterar o parâmetro "layout.css.devPixelsPerPx". Só pra ter uma ideia de como estava antes:
e como ficou depois, só mudando de 1 pra 1.5.
agora sim consigo usar apenas o laptop pra trabalhar.