mintermos e maxtermos
Na álgebra booleana, qualquer função booleana pode ser expressada na sua forma canônica usando os conceitos de mintermos e maxtermos.
- mintermos
Um mintermo é um produto no qual todas as n variáveis aparecem uma única vez. Considere uma função definida por uma soma de produtos, onde cada variável aparece uma única vez. Essa função representa uma soma de mintermos. Note que a quantidade máxima de mintermos de uma função com n variáveis é
. Por exemplo:
é uma soma de mintermos.
é uma soma de mintermos.
não é uma soma de mintermos, pois
apareceu duas vezes em um mesmo termo.
Utiliza-se a notação para designar um mintermo, onde k é o valor decimal equivalente ao mintermo. Variáveis diretas (não barradas) representam o “1″ lógico e os seus complementos representam 0. Exemplo:
– forma geral de uma soma de mintermos.
Vamos representar a soma de mintermos usando a notação. Veja que
equivale a
(já que as variáveis diretas equivalem a 1),
e, finalmente,
. Logo
De uma forma mais compacta, podemos representar a função acima como .
- maxtermos
Maxtermos, de certa forma, é o oposto de um mintermo. Um maxtermo é uma soma no qual todas as n variáveis aparecem uma única vez. Considere uma função definida por um produto de somas, onde cada variável aparece uma única vez. Essa função representa um produto de maxtermos. Assim como os mintermos, a quantidade máxima de termos no produto de maxtermos é dada por
, onde n é a quantidade de variáveis da função. Por Exemplo:
é um produto de maxtermos.
não é um produto de maxtermos.
Utiliza-se a notação para designar um mintermo, onde k é o valor decimal equivalente ao mintermo. Variáveis diretas (não barradas) representam o “0” lógico e os seus complementos representam 1. Exemplo:
– forma geral de um produto de maxtermos.
Vamos representar a soma de maxtermos usando a notação. Veja que
equivale a
(já que as variáveis diretas equivalem a 0),
e, finalmente,
. Logo
De uma forma mais compacta, podemos representar a função acima como .
- observações
1) Note que o complemento de um mintermo é o seu maxtermo correspondente e vice-versa. Exemplo:
2) Toda função lógica tem uma soma canônica de produtos equivalente. Exemplo:
Instalando fontes Microsoft True Type no Ubuntu
Existe um pacote no repositório do Ubuntu chamado ttf-mscorefonts-installer, que instala algumas fontes como: Arial, Comic Sans MS, Times New Roman, Impact, Verdana, etc…
Para instalar esse pacote, digite no terminal:
sudo apt-get install ttf-mscorefonts-installer
Agora atualize o cache das fontes:
sudo fc-cache -fv
integrando o LaTeX ao Open Office
O LaTeX é uma ferramenta tipográfica muito útil no meio acadêmio. Para facilitar a escrita de equações, ou até mesmo de textos em LaTeX, criou-se uma integração com o Open Office. Para fazê-lo no seu OO, siga os passos:
- Antes de tudo, baixe o TeX e outras ferramentas…
sudo apt-get install texlive imagemagick epstool
- Na atual versão do Ubuntu, o Karmic Koala, a libstdc++5 foi retirada, gerando alguns problemas de dependência em alguns programas. O OOoLatex é um desses programas. Para corrigir esse problema, baixe o libstdc++5_3.3.6-17ubuntu1_i386.deb aqui. Então, digite no terminal:
sudo dpkg -i libstdc++5_3.3.6-17ubuntu1_i386.deb
- Agora baixe e instale algumas fontes necessárias para o LaTeX.
mkdir OOoLatexFonts
cd OOoLatexFonts
wget http://mesh.dl.sourceforge.net/sourceforge/ooolatex/OOoLatexFonts.zip
unzip OOoLatexFonts.zip
cd ..
sudo mv OOoLatexFonts /usr/share/fonts/truetype/.
sudo fc-cache -f /usr/share/fonts/truetype
- (Opcional) Se você quiser mais qualidade para as imagens feitas com o LaTeX nos seus documentos, baixe o pacote latex2emf para a arquitetura do seu computador neste link. Após o download:
tar -xzvf latex2emf_Linux_i386_binary.tar.gz
cd latex2emf_Linux_i386_binary/
sudo ./install.sh
- Finalmente, vamos efetivamente instalar o OOoLaTeX
Nesta página, baixe a última versão do OOoLatex. Atualmente, a última versão disponível é a OOoLatex-4.0.0-beta-2-linux.oxt. Logo após, digite no term:
/usr/lib/openoffice/program/unopkg.bin add OOoLatex-4.0.0-beta-2-linux.oxt
Depois desse último passo, aceite a licensa e usufrua dos grandes poderes do LaTeX
instalando MATLAB no linux
Todo aluno de engenharia deve conhecer algumas ferramentas que ajudam a resolver problemas. Uma dessas ferramentas é o MATLAB. “O MATLAB integra análise numérica, cálculo com matrizes, processamento de sinais e construção de gráficos em ambiente fácil de usar onde problemas e soluções são expressos somente como eles são escritos matematicamente, ao contrário da programação tradicional.” Wikipedia
Agora vamos baixar e instalar o MATLAB.
1) Primeiramente, você deve baixar o MATLAB para o Linux. Baixe este torrent (The Pirate Bay). Ele tem cerca de 1.1GB e contém 3 Cds. Ao baixá-lo, extraia o .zip e você verá estes arquivos: license.dat MathWorks_R14_1.iso MathWorks_R14_3.iso license.lic MathWorks_R14_2.iso readme_lic.txt
2) Agora você deverá criar uma pasta para o MATLAB. Aqui, ela está em /usr/local/matlab. Para criá-la, vá no terminal e digite:
$ sudo mkdir /usr/local/matlab
3) Após ter feito isso, você deverá copiar os arquivos license.dat e license.lic, que estão na pasta do .zip extraído do torrent, para a pasta do MATLAB (no caso, /usr/local/matlab).
4) Monte o CD 1 do MATLAB. Para isso, vá no terminal e digite:
$ sudo mount -o loop MathWorks_R14_1.iso /mnt
5) Inicie o script de instalação
$ sudo sh /mnt/install
No decorrer da instalação, o setup lhe pedirá para inserir os discos 2 e 3, então você digitará um comando semelhante ao passo 4, mudando apenas o nome do .ISO:
$ sudo mount -o loop MathWorks_R14_2.iso /mnt
$ sudo mount -o loop MathWorks_R14_3.iso /mnt
6 ) Instalação completa! NÃO INICIE O MATLAB AGORA. Abra o arquivo “license.lic”, que é para estar na pasta do MATLAB e substitua o trecho “your_host_name” pelo nome da sua máquina. Se você não sabe o nome da sua máquina, digite no terminal:
$ hostname
Então copie o license.lic editado para /usr/local/matlab/etc.
7) Também copie o script /usr/local/matlab/bin/scripts/matlab para /usr/local/matlab/bin/
8 ) Após ter feito a cópia do license.lic e do script matlab (passos 6 e 7, respectivamente), inicie o script de pós-instalação do MATLAB.
$ sudo sh /usr/local/matlab/install_matlab
Nesse script, se você não quiser alterar as configurações padrões, digite ENTER, ENTER… Até a instalação terminar.
9) Bazzinga! Para iniciar o MATLAB, no terminal, digite:
$ matlab
ou
$ /usr/local/matlab/bin/matlab
gerando lista de pacotes instalados
Antes de instalar uma nova distribuição Linux ou atualizar o sistema, é bom termos uma lista dos pacotes estão instalados, para, após a instalação, podermos instalar novamente os pacotes que tínhamos.
Para gerar a lista dos pacotes instalados, digite no terminal:
$ dpkg –get-selections | grep -v deinstall > ubuntu-files
OBS: O WordPress interpreta dois traços (- -) como um único traço (–). Então, certifique-se de que, quando você estiver digitando os comandos no terminal, você esteja colocando os dois traços quando necessário.
Isso gerará o arquivo ubuntu-files, que contém o nome de diversos pacotes instalados. Agora, faça o backup desse arquivo. No novo sistema, copie o arquivo ubuntu-files para a sua home e digite no terminal:
$ dpkg –set-selections < ubuntu-files
$ sudo dselect
Os comandos acima farão o sistema novo instalar os pacotes contidos no arquivo ubuntu-files. Após a instalação, digite ‘Q’ e aperte enter, para sair do dselect.
programando no editor nano

O nano é um editor de textos muito leve e simples que funciona no terminal. Assim como outros editores terminal-based, podemos customizá-lo para facilitar a escrita de programas.
O nano já traz um arquivo de configuração como exemplo. Ele se localiza em /usr/share/nano/examples, então, se você quiser usar esse exemplo e modificar (o arquivo já vem bastante comentado), faça o seguinte:
$ cp /usr/share/nano/examples/nanorc.sample ~/.nanorc
$ gedit ~/.nanorc
O meu .nanorc está da seguinte maneira:
set autoindent
set brackets “”‘)>]}”
set matchbrackets “(<[{)>]}”
set mouse
include “/usr/share/nano/nanorc.nanorc”
include “/usr/share/nano/c.nanorc”
include “/usr/share/nano/python.nanorc”
include “/usr/share/nano/java.nanorc”
include “/usr/share/nano/sh.nanorc”
renomear arquivos em massa com shell script
Muitas vezes, obtemos arquivos com nomes bastante estranhos. Se você baixar imagens diretamente de álbums do Orkut, os títulos dos arquivos serão vários caracteres randômicos. Isso pode tornar a identificação do arquivo um pouco difícil. Algumas câmeras digitais também dificultam a identificação do arquivo, pois, em vez de criar prefixos que identificassem circunstâncias relevantes das fotos, elas criam prefixos inúteis. Ex: DSC00845.JPG (Câmeras da Sony).
Através de um pequeno script, podemos renomear em massa arquivos de uma mesma pasta. Veja o script abaixo:
#!/bin/sh
if [ $# -eq 2 ]
then
i=0
files=`ls -1 $1`
for file in $files
do
filename="$file"
fileextension=$(echo $filename | awk -F . '{print $NF}')
echo "$filename will be renamed to $2-$i.$fileextension"
i=$((i+1))
done
echo
echo "Do you really want to rename these files? (y/n)"
read yesno
if [ "$yesno" = "y" ]
then
i=0
files=`ls -1 $1`
cd $1
for file in $files
do
filename="$file"
fileextension=$(echo $filename | awk -F . '{print $NF}')
echo "renaming $filename to $2-$i.$fileextension ..."
mv $filename $2-$i.$fileextension
i=$((i+1))
done
else
exit
fi
elif [ $# -ne 2 ]
then
echo "Usage:"
echo "$0 (dir) (new_prefix)"
echo "(dir) -> directory where the files that will be renamed are located"
echo "(new_name) -> the pattern name"
fi
A usagem desse script é bem simples. Cole o código acima em algum editor de texto e salve o arquivo. Aqui eu o armazenei como massrename.sh. Agora abra um terminal e vá para o diretório onde o script se localiza. Estando no diretório correto, digite:
$ ./massrename.sh <diretório onde se localizam os arquivos a serem renomeados> <prefixo>
Veja um exemplo:
$ ./massrename.sh /home/lucas/pics/aniversario bday_lucas
De acordo com o exemplo, os arquivos da pasta /home/lucas/pics/aniversario serão renomeados para: bday_lucas-0.JPG, bday_locas-1.JPG, etc…
checar atualização em páginas com shell script
Nessa semana, o resultado do vestibular 2010.1 da UFC saiu. Graças a Deus eu passei. Mas, antes disso, eu sempre ficava checando a página da CCV (Comissão Coordenadora de Vestibular) para ver se eu já poderia olhar a lista dos aprovados.
Mas, então, tive uma ideia: “Por que não faço um script que faça esse trabalho pra mim?”. Então pensei em como faria o tal script e assim o fiz:
O script baixa a página sem o resultado e usa ela como um modelo. De 5 em 5 minutos, a página é baixada novamente, sendo, então, comparada com a página modelo. Se houver mudança, o usuário é alertado, senão o processo é reiniciado.
pagina=http://www.ccv.ufc.br/newpage/vtb/vtb2010/vestib2010.php #mude aqui modelo=modelo.php temp=temp.php alerta=acorda.mp3 #mude aqui delay=300 clear wget -q $pagina -O $modelo while [ 1 = 1 ] do echo "Checando a página..." wget -q $pagina -O $temp cmp -s $modelo $temp if [ $? = 0 ] then echo "Não houve mudança. Daqui a $delay segundos haverá uma nova checagem." echo "última checagem: " date echo else echo "HOUVE MUDANÇA!" echo "Para sair, digite CTRL + C" mplayer -loop 0 $alerta exit fi rm $temp sleep $delay done
OBS: Para me alertar, eu abri um sinal sonoro usando o mplayer. Caso você queira apenas um alerta visual, tente usar xdialog.
Introdução ao Zilog Z80
Antes de você ler esse artigo, é bom que você tenha conhecimentos de sistemas numéricos, conversão de bases etc, pois tudo isso será útil ao trabalhar com eletrônica digital e programação em baixo nível.
instalando o lamp no ubuntu karmic koala
Simples e rápido:
Abra o terminal e digite:
sudo apt-get install lamp-server^
