You are currently browsing the archives for the Práticas category


Purgar o Linux Mint

Na minha caminhada para obter uma máquina virtual Linux minificada, referimos há dias a importância de definir um block size inferior ao actualmente utilizado. Depois disso, é prosseguir com a instalação e depois preparar o momento da purga/limpeza. Os puristas dirão que poderia definir uma instalação de raiz, mas prefiro esta aproximação, pois ela tem funcionado bem para mim desde há mais de dez anos, e é fácil de actualizar para novas distribuições/versões…

Os comandos que se referem no resto deste artigo foram experimentados em Linux Mint 17.2. Com alguma adaptação, deverão funcionar em outras versões de Mint, nomeadamente na mais recente. Alerta-se também para a criticidade dos comandos que se seguem, que exigem todos permissões de administração, e que poderão dar cabo de uma instalação operacional num piscar de olhos…

Depois da instalação do Linux Mint concluída, a primeira coisa que faço é actualizar o VirtualBox Guest Utils. Retira-se a versão instalada com

  • apt-get purge virtualbox-guest-utils

e instala-se a versão mais actualizada do VirtualBox Guest Utils. Tal dá-me bastante jeito, mais que não seja para poder fazer copy&paste entre o host e o guest.

Depois de um reboot, segue-se o purgar dos pacotes instalados por defeito. A lista abaixo retira aqueles de maior dimensão, sendo que a máquina fica praticamente só com o browser Firefox e o LibreOffice. Na prática, acabo por re-instalar vários pacotes subsequentemente em várias das máquinas virtuais, mas este é o mínimo denominador comum que utilizo.

A script abaixo está comentada de forma minimalista. O conjunto de pacotes que é apagado estão agrupados também por uma lógica minimalista. Nunca é de mais repetir que a seguinte sequência de acções pode todavia trazer problemas, pelo que interiorize bem primeiro o que significam:

## Imaging
apt-get purge gthumb* gimp* libexiv2-12 netpbm libdjvulibre21## Bluetooth
apt-get purge bluez pulseaudio-module-bluetooth

## Printing
apt-get purge simple-scan hplip* cups libgutenprint2 cups-daemon cups-client cups-browsed cups-common cups-server-common cups-filters* printer-driver* libcupscgi1 libcupsimage2 libcupsmime1 libcupsppdc1 openprinting-ppds sane-utils

## Themes
apt-get purge dmz-cursor-theme
apt-get purge mint-backgrounds-petra mint-backgrounds-maya mint-backgrounds-rebecca mint-backgrounds-nadia mint-backgrounds-retro mint-backgrounds-qiana mint-backgrounds-olivia

## Fonts
apt-get purge ttf-punjabi* ttf-wqy* fonts-nanum fonts-tlwg-* fonts-takao-* fonts-tibetan-*
apt-get purge fonts-sil-* fonts-kacst-* fonts-khmeros-* fonts-lao fonts-lklug-* ttf-indic-fonts-core
apt-get purge gnome-font-viewer gucharmap libgucharmap-2-90-7

## X
apt-get purge xscreensaver-gl xscreensaver-data nux-tools

## Acessibility
apt-get purge brltty* gnome-accessibility-themes

## Documentation
apt-get purge manpages* sgml-data doc-base docbook-xml info install-info

## Libreoffice
apt-get purge libreoffice-math libreoffice-base libreoffice-help-en-us
apt-get purge libreoffice-emailmerge libreoffice-java-common
apt-get purge libreoffice-ogltrans libreoffice-pdfimport
apt-get purge libreoffice-sdbc-firebird libreoffice-avmedia-backend-gstreamer libreoffice-base-drivers

## Package management
apt-get purge apt-xapian-index* python-xapian* sessioninstaller*

## Filesystem
apt-get purge mlocate genisoimage libisofs6 growisofs

## Media
apt-get purge banshee* brasero* totem* vlc* speech-dispatcher speech-dispatcher-audio-plugins libspeechd2 python3-speechd libflite1 espeak* wodim liblivemedia23
apt-get purge gstreamer0.10-plugins-ugly gstreamer1.0-plugins-ugly

## Generic applications
apt-get purge tomboy* adobe-flashplugin casper poppler-data poppler-utils baobab

## Internet applications
apt-get purge hexchat hexchat-common pidgin pidgin-data thunderbird evolution-data-server transmission* geoip-database

## Power management
apt-get purge powermgmt-base pm-utils gnome-power-manager

## Kernel & headers
apt-get purge kerneloops* linux-headers-* strace

## Java
apt-get purge openjdk* icedtea* tzdata-java java-common

## Spelling & Dictionaries
apt-get purge myspell* hunspell-en-us mythes-en-us language-pack* enchant wamerican wbritish

## Shell commands
apt-get purge command-not-found* nano graphviz qpdf ed bc duplicity lsof dc

# Hardware utilities
apt-get purge hdparm hddtemp dmraid laptop-detect lm-sensors libsensors4 lshw memtest86+ radeontool vbetool cpufrequtils toshset pcmcia* usb-modeswitch intel-gpu-tools tsconf

# Network utilities
apt-get purge avahi-daemon avahi-autoipd samba smbclient krb5-locales obex-data-server obexd-client libupnp6
apt-get purge ftp iproute iputils-tracepath mtr-tiny rfkill rsync vino wget libpurple0 modemmanager tcpdump openssh-client
apt-get purge telnet wireless-tools rdate pppoeconf pptp-linux libnatpmp1 libminiupnpc8 iw

# GNOME utilities
apt-get purge eog gnome-session-canberra seahorse eog gnome-system-log gnome-settings-daemon gnome-themes-standard-data

# MS-DOS & Windows tools
apt-get purge dosfstools mtools mscompress

# Other filesystems
apt-get purge hfsprogs xfsprogs reiserfsprogs jfsutils

# Ghostscript
apt-get purge gsfonts libgs9-common

#Sound
apt-get purge sox

## Python
apt-get purge python-qt4* python-reportlab python3-reportlab python-ubuntu-sso-client

# Generic Libraries
apt-get purge libqtwebkit* libmono* libsnmp* libasprintf-dev libbison-dev libgettextpo-dev libfl-dev
apt-get purge libc6-dbg linux-libc-dev libqt4-help libqt4-designer liblog-message-simple-perl* libterm-ui-perl*
apt-get purge libgtkmm-2.4-1c2a libqmi-glib0 libunity9 libmng2

## Programming
apt-get purge libgcc-4.8-dev gcc gdb gcc-4.7 gcc-4.8 lintian guile* bison tdb-tools

Block size em máquinas virtuais

O início do processo de criação de uma máquina virtual minificada foi relatado neste artigo. Como podem ver pela demora, tem sido um desafio difícil. E agora que me aproximava do final, descobri um ponto que me obrigou a recomeçar o processo…

O “block size” é como o nome diz a dimensão de um bloco utilizada nos vários meios de armazenamento utilizados em computadores. Essa dimensão tem vindo a subir e está actualmente em 4KB na maioria dos sistemas de armazenamento.

Uma dimensão de 4KB tem todavia uma implicação muito significativa quando tentamos obter uma máquina virtual de dimensão reduzida: como é a dimensão mínima do que se pode guardar no disco, um ficheiro com um número reduzido de bytes acaba por ocupar esses mesmos 4KB! E um sistema Linux tem uma grande quantidade de ficheiros pequenos, não só durante o período da instalação, como também na sua utilização…

Utilizar um block size mais reduzido tem também outras implicações, uma das quais é o desempenho. Um block size de 4KB favorece a leitura de ficheiros de dimensão elevada. Nos discos recentes, a dimensão mínima dos sectores também já é de 4KB, mas o VirtualBox que utilizo tipicamente continua a utilizar uma dimensão de 512 bytes. Testes posteriores com o hdparm não revelaram todavia uma penalização significativa de desempenho…

Conseguir instalar o Linux Mint com um block size mais reduzido, neste caso de 1KB, não é todavia imediato. Note-se que estas experiências se coadunam com a criação de máquinas virtuais, mas que a sua utilização, em quaisquer circunstâncias, pressupõe que se sabe o que se está a fazer. O que está referenciado abaixo pode variar em função de múltiplos aspectos. Se formatar alguma coisa por engano, não se venha queixar!

Quando se arranca o Live CD de instalação do Linux Mint, antes de começar a instalação propriamente dita, deve-se criar uma partição, seguida de um filesystem. Tipicamente, utilizo o gparted e utilizo sempre o ext4 em Linux. De volta à linha de comandos, reescrevo a partição, executando:

  • sudo mkfs.ext4 -b 1024 /dev/sda1

Para confirmar que o block size é mesmo de 1024 bytes, pode utilizar o comando

  • blockdev –getbsz /dev/sda1

embora possa ter que montar/desmontar o filesystem para reflectir alterações efectuadas.

Depois, pode iniciar a instalação do Linux Mint, escolhendo a opção “Something else” na definição das características do disco. Terá ainda que definir o “mount point” “/” no filesystem criado. Vários alertas vão surgir subsequentemente, mas depois de os ler com atenção, deverá bastar carregar em “Continue” e concluir normalmente a instalação do Linux Mint. No final, terá bastante menos espaço de disco desperdiçado… No meu caso, a máquina virtual final ficou mais de 600 MB mais pequena!

Erro em Papel Higiénico

A semana passada ia eu tranquilo à cata das melhores promoções. Passei por um papel higiénico em promoção, com desconto de 50%:

Papel Higiénico Renova com contas mal feitas

Papel Higiénico Renova com contas mal feitas

Na verdade, este é um daqueles produtos em que sei o preço de cabeça. Instintivamente, olhei para o preço por rolo, e estava ainda longe dos 13 cêntimos que é o meu preço de referência. Normalmente aproveito os descontos de 10% para fazer baixar esse preço de referência…

Quando olhei melhor algo me fez confusão. Para 48 rolos o preço parecia baixo. Saquei da calculadora, e fiz a conta simples:

  • 5.99/48 = 12.48 cêntimos

Assim, levei os 48 rolos… E tive direito ainda a um desconto de 15%, melhor que os 10% habituais. Devia ter era trazido 2 grandes embalagens, mas o carro já vinha cheio com outras boas promoções…

Aprender línguas online

Duolingo

Duolingo

Algumas coisas na vida custam-nos muito tempo. Esse tempo não pode ser recuperado depois para nos divertirmos. No caso do Duolingo o tempo que gastamos a aprender línguas é também o tempo para nos divertirmos.

O Duolingo é uma plataforma de aprendizagem de línguas que adapta os conteúdos à capacidade de aprendizagem do utilizador. Os meus filhos têm tido boas notas a línguas e por isso foram dispensados de estudar para essas disciplinas nas férias desde que jogassem no Duolingo.

Não se trata apenas de mais um livro de exercícios passado a computador, mas de um jogo onde se vão ganhando prémios que podem ser partilhados com os amigos nas redes sociais. O modelo de jogo do Duoling permite ao utilizador receber incentivos positivos pelos exercícios que vai fazendo, o que constitui uma forma de reforço positivo, tão importante em qualquer idade.

Ao utilizador vão sendo apresentados vários testes, desde escrever as palavras em falta até dizer as próprias palavras, passando por ouvir e escrever o que é dito.

Comandos de voz para o Pebble Time

Voz para o IFTTT no Pebble

Voz para o IFTTT no Pebble

Aquilo que fazemos do nosso dia cabe só nas horas que temos disponíveis. Os vários meios tecnológicos que pomos ao nossos serviço, sejam computadores, smartphones ou wearables, servem para no mesmo tempo conseguirmos fazer muito mais.

O Pebble Time prometia desde o inicio da campanha de lançamento a possibilidade de falar para o Pebble. Rapidamente assim que o firmware passou a permitir o uso do microfone e a disponibilizar as funcionalidades, surgiram aplicações que nos ajudam a cumprir algumas tarefas simples com o Pebble Time.

A minha aplicação preferida é o Checklist. Esta aplicação do Pebble Time permite ditar para o relógio e com isso ficar com uma lista que podemos depois marcar como feita. Juntamente com o Timer, são duas aplicações que dão muito jeito para cozinhar. Enquanto o Timer permite contar o tempo de cozedura o Checklist permite-me tomar uma nota rápida das coisas que vão acabando sem ter de parar para escrever na lista em papel.

Pebble Time Voice Checklist

Pebble Time Voice Checklist

Até agora, todas estas facilidades estavam confinadas ao smartphone e ao próprio Pebble Time. O que faltava era algo que o pusesse a produzir efeitos a outro nível. O autor Steve Vincent publicou no GitHub o código fonte para uma aplicação que, depois de fazerem alguns passos para a modificar, poderão enviar instruções de voz do Pebble Time para um fluxo vosso no If This Then That (IFTTT).

Ensine código às crianças com o Minecraft

Minecraft - Code.org

Minecraft – Code.org

No outro dia colocámos aqui um link para o site Code.org onde podiam ensinar as crianças a programar sequências simples de instruções com a ajuda de um robô do Star Wars. Se não foram ainda ver como funciona, não deixem de o fazer.

Para quem tiver mais dificuldade em convencer as crianças com o Star Wars, pode experimentar mostrar-lhes o mesmo tipo de jogo com o Minecraft. Como no Star Wars, o código é colocado arrastando um conjunto de blocos para a sequência correta de forma a concluir um conjunto de tarefas.

Desta vez podem comandar o Steve e a Alex do Minecraft para apanharem madeira ou encontrarem ovelhas.