Cartão do Cidadão no Ubuntu 16.04

Para usar o software do Cartão do Cidadão no Ubuntu 16.04 é necessário fazer uma pequena alteração nas dependências do pacote disponibilizado no site oficial.

Para tal basta transferir o pacote DEB adequado, por exemplo o ficheiro cartaodecidadao-ubuntu.amd64.deb no caso da versão para 64 bits.

Usar o seguinte script (encontrado aqui) para automatizar a edição das dependências:

#!/bin/bash

if [[ -z "$1" ]]; then
  echo "Syntax: $0 debfile"
  exit 1
fi

DEBFILE="$1"
TMPDIR=`mktemp -d /tmp/deb.XXXXXXXXXX` || exit 1
OUTPUT=`basename "$DEBFILE" .deb`.modfied.deb

if [[ -e "$OUTPUT" ]]; then
  echo "$OUTPUT exists."
  rm -r "$TMPDIR"
  exit 1
fi

dpkg-deb -x "$DEBFILE" "$TMPDIR"
dpkg-deb --control "$DEBFILE" "$TMPDIR"/DEBIAN

if [[ ! -e "$TMPDIR"/DEBIAN/control ]]; then
  echo DEBIAN/control not found.

  rm -r "$TMPDIR"
  exit 1
fi

CONTROL="$TMPDIR"/DEBIAN/control

MOD=`stat -c "%y" "$CONTROL"`
vi "$CONTROL"

if [[ "$MOD" == `stat -c "%y" "$CONTROL"` ]]; then
  echo Not modfied.
else
  echo Building new deb...
  dpkg -b "$TMPDIR" "$OUTPUT"
fi

rm -r "$TMPDIR"

Guardar em ~/bin/vicontroledit, por exemplo e tornar executável com:

$ chmod +x ~/bin/vicontroledit

Editar o pacote do software do Cartão do Cidadão:

$ vicontroledit cartaodecidadao-ubuntu.amd64.deb

E substituir na linha das dependências:

Depends: libqt4-core (>=4.4.0), libqt4-gui (>=4.4.0), libpcsclite1 (>=1.5.0), pcscd (>=1.5.0), openssl (>=0.9.8), libccid (>=1.3.0), libjasper1

por

Depends: libqtcore4 (>=4.4.0), libqtgui4 (>=4.4.0), libpcsclite1 (>=1.5.0), pcscd (>=1.5.0), openssl (>=0.9.8), libccid (>=1.3.0), libjasper1

Instalar o pacote normalmente:

$ sudo dpkg -i cartaodecidadao-ubuntu.amd64.modified.deb

O script acima usa o vi para editar o ficheiro CONTROL do pacote DEB, mas pode substituir-se por outro editor de texto se necessário.

Apresentações: temporizadas e medição de prestação

Em preparação do CycleHack Lisboa, estava à procura de uma forma para automatizar apresentações e descobri uma aplicação para apresentação de documentos PDF e imagens que permite além de fazer apresentações temporizadas, medir a nossa prestação enquanto fazemos a apresentação.

A aplicação chama-se Impressive, e é ideal para quem procura uma solução simples para organizar uma Pecha Kucha, ou outro tipo de evento em que as apresentações têm um limite de tempo por slide, ou por apresentação (o tempo por slide é calculado automaticamente).

Corre na linha de comando, o que é bom para usar em scripts e criar sequências de apresentações automatizadas e está disponível na biblioteca de software de várias distribuições de Linux ($ sudo apt install impressive), mas também para OSX e Windows.

Se não quisermos ter uma apresentação temporizada, mas quisermos saber se a nossa apresentação manual está bem desenhada, usando a opção –tracking, temos no final da apresentação uma tabela com o tempo passado em cada slide, para podermos melhorar a nossa apresentação enquanto treinamos.

Triciclo AZUB com caixa de mudanças Pinion e kit BionX

Ora aqui está uma combinação interessante! O Pinion requer que a zona do eixo pedaleiro seja construída a pensar nele, e um triciclo reclinado é um veículo que deixa mais margem a esta adaptação, dado a haste dianteira fácil de trocar.

recumbent-bike-trike-pinion-13

Conduzir um triciclo destes é uma experiência bastante interessante, são confortáveis (já experimentei alguns modelos com suspensão total, e aí ainda melhor) e ágeis, e o kit elétrico ajuda a manter uma boa velocidade nas subidas e no arranque.

Estou com muita vontade de testar o Pinion… 🙂

construir sobre o simplenZAR, um step sequencer para arduino

Depois de usar vários programas diferentes para criar música, desde uma conjugação de programas diferentes ligados pelo jack, a alguns DAW mais ou menos complexos (neil modular tracker foi o que usei mais tempo), queria montar um sistema baseado em hardware totalmente focado na improvisação.

Para começar a juntar o material para este projeto, queria começar por montar um sintetizador, e foi o que fiz há algumas semanas com um kit meeblip micro. A montagem foi pacífica, e como não tinha ainda forma de tocá-lo, andei à procura ou de um interface para usar com algum software, ou de uma forma de o tocar com outra solução de hardware. Encontrei nessa altura o simplenZAR, e decidi tornar o projeto seguinte a montagem de um clone do simplenZAR.

Não correu como esperava, dado que o código era para uma versão anterior do IDE do arduino, e precisou de alguns retoques. Depois parecia que nunca conseguia comunicar com o meeblip por MIDI, ou não havia comunicação, ou o som que saía não era o que esperava. Aprendi que carregar o sketch no arduino com o pin 1 ligado ao MIDI do meeblip era uma má ideia, e causava com que o meeblip ficasse com os parâmetros errados, e daí o som sair diferente do esperado! 😛

Depois deste processo todo e de ter o simplenZAR montado e a funcionar (e de ter que fazer o flash do meeblip algumas vezes), comecei a modificá-lo para o tornar mais próximo do que procurava.

Atualmente mantém os modos de 8 passos, 16 passos, ou 8 passos mais 8 passos de slide para as notas todas. Adicionei-lhe mais 2 botões para poder ligar e desligar nota a nota sem entrar no menu, e definir o pitch da nota também sem entrar no menu, e o tempo de espera (ou a velocidade com que avança para o passo seguinte) também é definido sem entrar em nenhum menu.
Mudei o modo de espera do delay original para a utilização da função millis(), que deixa mais espaço para fazer mais coisas.

Algumas coisas que quero implementar de seguida:

  1. mudar a direcção do sequenciador
  2. tempo variável (alguns modos de tempo variável para os passos)
  3. arpeggios

Outras possibilidades:

  1. tap tempo e/ou
  2. midi sync
  3. passar os leds para o shift register e passar para 16 passos
  4. outras coisas que me lembre entretanto 🙂

Assim que tenha possibilidade coloco o código num repositório qualquer para ser mais fácil manter atualizado com o que for alterando.

O meu avançando centro de controlo num pedaço de cartão 😉 :

Depois tiro mais fotografias decentes ao que tenho feito até agora.

O código que tenho até ao momento blueSTEP.

O nome deve mudar um destes dias. Assim que chegue a uma versão do código mais estável, ou assim que faça um shield para o arduino com o circuito final (espero já ter atualizado o circuito para usar shift registers nessa altura).

Thunderbird Lightning + Provider for Google Calendar

Depois de perder moooontes de tempo a tentar perceber porque razão a extensão que que devia permitir a sincronização nos dois sentidos do calendário Lightning no Thunderbird não funcionava, lembrei-me que tinha ativado a autenticação em 2 passos do Google! 😛

O problema de usar a autenticação em 2 passos é a sincronização dos calendários falhar de forma silenciosa! 😡

A solução foi a mesma que para outras aplicações, criar uma password dedicada para esta aplicação na definições de conta do Google:
https://accounts.google.com/b/0/IssuedAuthSubTokens

GPT + MBR c/ rEFIt

Estava a usar no MacBook uma tabela de partições híbrida GPT/MBR para poder correr Linux. Para facilitar instalei o rEFIt que permite colocar o boot directo para o SO não Mac OS (legacy), e mostra o menu por omissão sem precisar estar a carregar no Option.

Tinha preparado para montar um disco maior e tinha-lhe instalado o mesmo esquema, com o Ubuntu Karmic Koala. Ora quando tive oportunidade de trocar os discos, actualizei o Ubuntu desse disco maior para o Lucid Lynx que trouxe com ele o grub2. Ao reiniciar, o grub dava um erro que tornava impossível arrancar o sistema, a shell do grub era a de rescue, e não conseguia carregar o módulo com a shell normal. Como o rEFIt não arranca o Linux directamente de uma pen usb (dá um erro qualquer que me parece ser limitação dos Macs, que só arrancam o Mac OS dessa forma), fiquei bloqueado até ter um CD/DVD do Ubuntu à mão. 🙁

Quando arranjei o CD, pensava que o problema era do grub estar mal instalado. Voltei a instalá-lo na partição onde tinha a root e continuava a ter erro. Como esta partição era a 5ª e o MBR só mostra as 4 primeiras, deduzi que talvez o problema estivesse relacionado. Decidi remover uma partição genérica que estava antes mais a swap (2GB de RAM com desenhos grandes no Inkscape por vezes precisam da swap) e mover a root para trás. Como não apaguei a root, ficou com o mesmo número. O problema do grub manteve-se, embora não saiba ao certo se exactamente por isso. Como o MBR é independente da GPT, acabei por resolver o problema instalando o grub no MBR. Não afectou o boot principal e ficou reconhecido pelo rEFIt, carregando o Linux correctamente.

Como tinha instalado o grub primeiro para a partição, acabei com 2 entradas no menu do rEFIt, uma do MBR (que ficou a funcionar) e outra da partição que também tinha o grub e não funcionava. Como no rEFIt ele não indicava qual era qual, seria interessante remover o grub da partição para eliminar a opção de boot que não interessava.
Procurei se alguém tinha tido esta necessidade, mas a maioria dos resultados da pesquisa era alguém a procurar uma solução para remover o grub do MBR, e as soluções indicadas para remover de uma partição passavam por apagá-la, que não era de todo uma solução que me servisse, dado que a partição já tinha o sistema instalado.

Acabei por decidir experimentar fazer o mesmo procedimento usado para limpar o MBR, mas com a partição, usar o dd e limpar o sector inicial da partição em causa: dd if=/dev/zero of=/dev/sda5 bs=512 count=1 e funcionou. 🙂 No MBR apenas os primeiros 446B são usados para guardar o boot loader, por isso limpar o sector todo implica apagar também a tabela de partições (daí 446B em vez de 512B), assumi que esse não era o caso com o sector da partição independente, dado que este não necessita guarda essa informação.

Entretanto enquanto estava pesquisar alguma informação para escrever este post, encontrei uma página que explica uma situação semelhante, de instalar o stage1 do grub numa partição por engano.

Será possível usar o grub2 na vez do rEFIt (dado que já suporta GPT) e deixar de ter este esquema do MBR no GPT ❓

audiolib no hacklaviva no Porto

Amanhã será algo muito parecido com isto que se vai poder ouvir no evento audiolib a começar às 21h30 no hacklaviva:

Acordado Vivo

O Ricardo Lameiro vai mostrar como soa a conjugação do seu Fagote com o software Pure Data. (que será melhor do que o que eu vou fazer 😛 )

*snif* parece que o Ricardo não pode estar lá amanhã… Mas no sábado o Ricardo e o Rui vão lá estar à tarde à conversa. 🙂

azulinho