Ir para o conteúdo
ou

Software livre Brasil

Tela cheia
 Feed RSS

Helio Loureiro

27 de Maio de 2009, 0:00 , por Software Livre Brasil - | Ninguém está seguindo este artigo ainda.

Remapeando a tecla ± do MacBook Pro

26 de Novembro de 2022, 17:57, por Home - helio.loureiro.eng.br - 0sem comentários ainda

Por 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, por Home - helio.loureiro.eng.br - 0sem comentários ainda

Como 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, por Home - helio.loureiro.eng.br - 0sem comentários ainda

Lottery presentation page.

Acabei 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.

Tela mostrando possível ganhador, e as opções de confirmar ou tentar outra pessoa.

E por fim salva um log dos ganhadores, com o email correto.

Tela mostrando que o resultado foi salvo num arquivo de log. 

O repositório está no github.

https://github.com/helioloureiro/simple-lottery-eventbrite



Países considerados os mais felizes do mundo escondem problemas graves - levei um tombo de bicicleta

29 de Outubro de 2022, 16:28, por Home - helio.loureiro.eng.br - 0sem comentários ainda

Se não leu ainda os outros posts, pare e leia pra entender um pouco mais sober a Suécia.

 

Freios da bicicleta tortos após a queda.

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.

Eu fazendo biscoitagem com a foto da minha perna arranhada.

No dia seguinte descobri mais algumas coisas que ficaram danificadas pela queda.

Fonte do laptop com o pino torto por causa da queda.

Minha luva de ciclismo rasgada entre o dedo indicador e o dedão da mão esquerda.

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.

MacBook Pro rodando um docker build numa tela de console.

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?

Caminho de bicicleta com algumas folhas no chão.

Uma criança na bicleta andando ao lado do amigo, à pé, passando pelo caminho com folhas no chão.

Outra via de bicicletas, coberta por folhas no chão.

Via de bicicleta coberta por folhas e com várias placas de obras na rua.

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.

Pneu finho e liso visto de cima sobre um pavimento coberto por folhas.

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...

Minha bicicleta road.

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, por Home - helio.loureiro.eng.br - 0sem comentários ainda

Página do firefox com imagem pequena

Esse 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).

Tela do Macos com a resolução utilizada.

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:

Configuração do Firefox com parâmetro como 1 mostrando fonte pequena.

e como ficou depois, só mudando de 1 pra 1.5.

Configuração do Firefox com o parâmetro alterado pra 1.5 e mostrando as fontes bem mais legíveis.

agora sim consigo usar apenas o laptop pra trabalhar.



Tags deste artigo: #debian #debianbr #debianse #softwarelivre #freesoftware #linux #python