Ir para o conteúdo
ou

Software livre Brasil

Tela cheia
 Feed RSS

Tecnologia Livre

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

Àlgebra de Boole

25 de Novembro de 2009, 0:00, por Software Livre Brasil - 0sem comentários ainda

Àlgebra de Boole e Conceitos de Eletrônica Digital

Hoje inicio de modo eficaz a categoria programação. Minha idéia é compartilhar com uma linguagem simples e acessível dicas e tutoriais para quem pretende iniciar no mundo da programação.

Para iniciar vamos falar sobre “Àlgebra de boole e Conceitos de Eletrônica Digital”.

clip_image002George Boole

 

A lógica começou a desenvolver-se com Aristóteles (384-322 A.C) e os antigos filósofos gregos passaram a usar em suas discussões sentenças enunciadas nas formas afirmativa e negativa, resultando assim grande simplificação e clareza, com efeito de grande valia em toda a matemática. Por volta de 1666, Gottfried Wilhelm Leibniz (1646-1716) usou em vários trabalhos o que chamou de “calculus rotiotinator”, ou lógica mathematica ou logística.

Mais tarde George Boole (1814-1864) criou o que até hoje chamamos de Álgebra de Boole. A Álgebra de Boole, embora existindo há mais de cem anos, não teve qualquer utilização até 1937, quando foi feita sua aplicação à análise de circuitos de relés por A. Nakashima, que não foi bem sucedido, pois, ao invés de desenvolver teoria já existente, tentou desenvolver Álgebra Booleana por conceitos próprios.

Em 1938 Claude E. Shannon mostrou, em sua tese de mestrado no departamento de Engenharia Elétrica do MIT (Massachusetts Institute of Technology), a aplciação da álgebra de boole na análise de circuitos de relés, usando-a com rara elegância, o que serviu de base para o desenvolvimento da teoria dos interruptores.

O assunto deste módulo ainda que elementar, visa mostrar as aplicações da álgebra de boole ou álgebra lógica no processamento automático de dados (computação).

Sistemas Dicotômicos

Existem situações que podemos definir com apenas dois estados, exemplo:

1

0

Sim

Não

Dia

Noite

Preto

Branco

Ligado

Desligado

Existem situações que não se apresentam como estritamente dicotômicas, por exemplo: Morno, tarde e etc.Ou seja, com dois estados excludentes bem definidos.

Vamos pausar um pouco este estudo de lógica para conhecer um pouco do conceito da eletrônica digital que por sinal usa o sistema dicotômico na construção dos seus processadores digitais (base binária).

Conceitos de Eletrônica Digital

Normalmente estes conceitos são relegados a um segundo plano, no entanto, eles são importantíssimos para um bom desenvolvimento técnico. Vamos começar com uma breve descrição de bases numéricas e unidades de medida.

Sistema Decimal ( Base 10)

É o sistema numérico usado universalmente, formado por dez algarismos, ou seja, dez símbolos que são eles:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Sendo que o número 10 (dez) é apenas a combinação do símbolo 1 e 0.

Notação Posicional

Sistema Decimal (Base 10)

O sistema numérico decimal é posicional ou ponderado. Isto significa que cada posição dos dígitos num número possui um peso particular o qual determina a magnitude daquele número.

Cada posição tem um peso característico determinado pela potenciação da base do sistema numérico, neste caso o número dez. Os pesos posicionais são:

10º (unidades), 10¹ (dezenas), 10² (centenas), 10³ (milhar); etc..

Potências de 10

10º = 1

10¹ = 10

10² = 100

10³ = 1.000

104 = 10.000

Para representar o número 5412 na base 10, fazemos:

(5×10³) + (4×10²) + (1×10¹) + (2 x10º)

(5×1000) + (4×100) + (1×10) + (2×1)

5.000 + 400 + 10 + 2 = 5412 base 10

Exercícios:

Desenvolva estes números na base 10:

a) 9875

b) 64587

c) 352162

d) 4511256

e) 632154876

Sistema Binário (Base 2)

Este sistema numérico é muito importante, porque é utilizado para expressar todas as operações realizadas em um sistema digital. A arquitetura de um PC está baseada no sistema digital, já que ela é constituída por processador(es) memórias de semicondutores, circuitos de I/O, etc…

Para se ter uma idéia os processadores são implementados basicamente por portas lógicas. O funcionamento de uma porta lógica está apoiado nos postulados da eletrônica digital.

Assim como o sistema decimal, qualquer número pode ser representado no sistema binário, e a diferença entre eles é que, em vez de utilizar dez algarismos distintos, utilizam-se apenas 2 (0 e 1).

Por exemplo, o número 1011 na base 2 pode ser convertido para a base 10 (decimal) da seguinte maneira:

1×2³ + 0×2² + 1×2¹ + 1×1º

8 + 0 + 2 + 1 = 11

Lê-se 1011 na base 2 que é igual a 11 na base 10 também pode ser escrito assim:

10112 ou 1110

Exercícios:

Transforme os seguintes números de binário para decimal:

f) 1001

g) 1100101

h) 1111

i) 110001

j) 10101

 

BIT

È a menor unidade lógica do sistema computadorizado, responsável pela formação das palavras (instruções e/ou dados). Assume dois níveis lógicos possíveis: “0” ou “1” que também são conhecidos como estados lógicos.

Por exemplo: O número 1100112 é composto por 6 bits.

1 Kilobit é igual a 1.024 bits.

Byte

Um byte é formado por um conjunto de oito bits, exemplo:

101010102

1 kilobyte é igual a 1.024 bytes

Sistema Hexadecimal (Base 16)

Este sistema é muito utilizado por programadores de software de baixo nível, em vez de utilizar o sistema binário, nativo dos sistemas digitais, que é eficiente, mas possui o inconveniente de utilizar uma grande quantidade de 0s e 1s para representar um número.

Os códigos ASCII (American Standard For Coded Information Interchange) também conhecidos como Tabela ASCII, normalmente estão representados em Hexadecimal, a fim de facilitar a vida de programadores e desenvolvedores de software.

Como o nome indica o sistema hexadecimal é formado por 16 símbolos diferentes:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

As letras “A, B, C, D, E , F” correspondem aos valores “10,11,12,13,14,15” respectivamente.

Vamos converter o número 3E816 Para a Base Decimal:

3E8

3 x 16² + 14 x 16¹ + 8 x 16º = 768 + 224 + 8 = 1000, logo: (3E8)16 é igual a 100010

Vamos visualizar uma pequena tabela de equivalência entre os sistemas de numeração decimal, binário e hexadecimal

Decimal

Binário

Hexadecimal

0

0000

0

1

0001

1

2

0010

2

3

0011

3

4

0100

4

5

0101

5

6

0110

6

7

0111

7

8

1000

8

9

1001

9

10

1010

A

11

1011

B

12

1100

C

13

1101

D

14

1110

E

15

1111

F

Conversão de sistemas numéricos

Binário para Decimal

10011012

1×26 + 0×25 + 0×24 + 1×2³ + 1×2² + 0×2¹ + 1×2º = 64 + 0 + 0 + 8 + 1 = 7710

Hexadecimal em Decimal

3f4h

3 x 16² + 15 x 16¹ + 4 x 16º = 768 + 240 + 4 = 101210

Para facilitar a compreensão vamos dissecar ainda mais este exercício:

Note que 3 x 16 = 48¹ como está na base 2 fazemos 48 x 16 = 768

15×16 = 240 e 4×16º é 0 logo: 768+240+4 = 1012 na base 10

Decimal em binário

Para converter um número da base 10 na base 2, utiliza-se o método da divisão sucessiva. Esse método pode ser também utilizado para a conversão da base 10 em qualquer outra base.

O método consiste na divisão do número da base 10 pelo número que representa a base a ser convertida, até que o quociente seja igual a zero. Então tornam-se os restos de cada divisão, obtendo assim o número correspondente na base desejada. ( Do final para o começo), exemplo:

clip_image001clip_image003

Decimal em Hexadecimal

A conversão de um número decimal em hexadecimal, diretamente, não é muito prática, portanto primeiro se converte o número decimal na base 2 e em seguida na base 16.

19610

1º) Converta 19610 Para a base binária conforme explicado acima (faça como exercício e verifique se o resultado é o mesmo)

Logo, temos: 19610 = 110001002

2º) Converta 110001002 na base 16

Para isto você deve dividir o número binário em quatro bits (4 digitos):

1100 = C

0100 = 4

Portanto 19610 è igual a = C4H

Por este motivo os programadores de baixo nível preferem usar o Hexadecimal ao invés do binário, pois é mais fácil representar C4h do que 110001002

 

Como podem perceber acabei me afastando da álgebra de boole, mas não se preocupem, na próxima aula ou melhor postagem:-) vamos tratar inteiramente dos conceitos de boole.



Nvidia no ubuntu 9.10

25 de Novembro de 2009, 0:00, por Software Livre Brasil - 0sem comentários ainda

Estive enfrentando alguns problemas com o ubuntu 9.10 e minha placa de vídeo nvidia, sempre que reiniciava o computador a resolução voltava baixa.

Para resolver o problema abra o terminal e digite os comandos:

sudo nvidia-xconfig

sudo nvidia-settings

Isto ocorre por que o ubuntu 9.10 não cria mais o arquivo xorg.conf após a instalação (pois ele acredita que está tudo certo).




Aprenda Lógica de programação jogando

25 de Novembro de 2009, 0:00, por Software Livre Brasil - 0sem comentários ainda

Recentemente desenvolvi um projeto para um programa de inclusão digital sobre PHP. No entanto o maior problema que encontrei foi encontrar uma maneira didática e simples de ensinar lógica de programação, tendo em vista que a maioria dos alunos não possuem uma boa escolaridade.

A solução apareceu no final de semana enquanto jogava videogame; lembrei que a muito tempo atrás tinha conhecido um programa de desenvolvimento de jogos em RPG chamado RPG MAKER.

“O RPG Maker é um programa que permite que fãs de jogos de RPG, tanto eletrônico, quanto de mesa, possam criar seus próprios jogos de RPG para computador. A vantagem, e a graça, do RPG Maker está no fato de que qualquer pessoa pode criar um jogo, sem saber programar em alguma linguagem de programação. Basta ir clicando e “desenhando” seu jogo à sua maneira. (fonte: RPG Maker Brasil)”

rpg maker

O legal deste programa é que ele permite que você crie scripts em uma linguagem variada do ruby. Mas para ensinar a lógica nada melhor do que usar as ferramentas gráficas que o programa possui, por exemplo:

Para abrir a porta você precisa criar um evento onde o personagem possua a chave, sendo que se o mesmo não possuir a porta não se abre. (Condicional).

Para abrir a porta da igreja é necessário criar um evento onde o sino deve ser tocado cinco vezes, somente quando isto ocorre a porta abre (laço-condicional).

Fica muito mais fácil ensinar os conceitos básicos da linguagem de programação criando estes casos. Muito mais fácil do que ficar desenhando fluxograma:-).

Quem quiser conhecer a ferramenta, sugiro que acessem o site:

http://www.rpgmakerbrasil.com/

Obs: O software é proprietário e feito para o sistema operacional Windows, no entanto, funciona sem nenhum problema no linux através do WINE.

Quem conhecer alguma ferramenta similar nativa para linux por favor me informe, será de grande valia.



Debian – Aula VIII

25 de Novembro de 2009, 0:00, por Software Livre Brasil - 0sem comentários ainda

Compatibilidade

O Debian é um ótimo sistema operacional e fica muito melhor quando o tornamos compatível com outros computadores.
Você por certo vai necessitar de abrir documentos do Microsoft office ou mesmo precisar de algum aplicativo desenvolvido para Windows; para isto, nada melhor do que saber usar o “WINE”.

De acordo com a wikipédia:

O WINE é uma implementação livre das bibliotecas do Windows no Linux, não sendo portanto um emulador, pois ele não faz nenhuma emulação para executar softwares para Windows. O WINE funciona como uma camada que expõe uma API compatível com a do Windows; ao serem executadas as diferentes funções, o Wine irá traduzi-las para rotinas em UNIX cujo resultado seja idêntico.

Mas antes de usarmos o Wine vamos fazer alguns ajustes.

Falta de fontes

Para quem utiliza bastante o editor de texto as vezes o openoffice deixa a desejar pela falta de “fontes” compativeis com as usadas no Microsoft Word.
Para isto, abra um terminal como root e digite:

apt-get install msttcorefonts

Depois faça o comando:

dpkg-reconfigure fontconfig-config

O programa fará algumas perguntas. Responda nesta ordem: Autohinter, Sempre e Não. Depois disto reinicie o ambiente gráfico apertando as teclas:

ctrl+alt+backspace

Você pode instalar fontes adicionais, abra o terminal como root e digite (copie e cole no terminal se preferir):

apt-get install ttf-larabie-straight ttf-larabie-deco xfonts-terminus-dos xfonts-terminus xfonts-terminus-oblique xfonts-mona tv-fonts ttf-tuffy ttf-sjfonts ttf-sil-padauk ttf-sil-ezra ttf-paktype ttf-georgewilliams ttf-fifthhorseman-dkg-handwriting ttf-farsiweb ttf-essays1743 ttf-opensymbol ttf-nafees ttf-mgopen ttf-gentium ttf-freefont ttf-dustin ttf-devanagari-fonts ttf-dejavu-extra ttf-dejavu-core ttf-dejavu ttf-bpg-georgian-fonts ttf-bitstream-vera ttf-alee ttf-liberation

Instalando o Skype

O Skype é um aplicativo muito utilizado no mundo windows, o que poucos sabem é que você também pode utilizá-lo no linux sem problemas.

Para instalar o Skype, acesse a página:

http://www.skype.com/intl/pt/download/skype/linux/choose/

Clique em “Debian”, baixe o arquivo de extensão “.deb” e abra o terminal como root. Acesse a pasta que você baixou o arquivo, exemplo:

cd /home/juliano/download

E execute o comando:

dpkg -i skype [aperte a tela tab para autocompletar]
apt-get -f install

Instalando o Google Picasa

Para quem gosta de usar o visualizador de fotos PICASA, é possível utilizá-lo no Debian, para isto faça os procedimentos abaixo:

Faça download do pacote .deb no endereço: http://picasa.google.com/linux/, entrando no site e clicando no botão “Download Picasa for Linux”. A seguir, clique no link abaixo do texto “deb, for Debian/Ubuntu i386“.

Em seguida, no diretório onde o pacote foi baixado, rode no terminal como root:

dpkg -i picasa_xxxxxx.deb [aperte a tela tab para autocompletar]

Instalando o Google Earth

Para instalar o Google Earth faça o seguinte:

Abra um terminal como root e rode os comandos:

apt-get install googleearth-package
make-googleearth-package
dpkg -i googleearth_xxxxxxx.deb [aperte a tela tab para autocompletar]

Instalando o Wine

Para instalar a última versão do Wine, abra um terminal como root e faça o seguinte:

gedit /etc/apt/sources.list

Após abrir o arquivo coloque no final dele o seguinte comando:

deb http://www.lamaresh.net/apt lenny main

Em seguida salve e feche o arquivo, depois faça o comando:

wget -O – http://www.lamaresh.net/apt/key.gpg | apt-key add –

Agora faça o seguinte:
apt-get update

apt-get install wine






Legendas Automáticas no youtube

24 de Novembro de 2009, 0:00, por Software Livre Brasil - 0sem comentários ainda

O youtube permite que as pessoas insiram legendas aos seus vídeos, no entanto, poucas pessoas o fazem. Para contornar esta situação e permitir cada vez mais um vídeo globalizado, o google desenvolveu um serviço de geração automática de legendas através de reconhecimento de voz. Este recurso ajuda também pessoas com deficiência auditiva.

Veja um vídeo de exemplo

Mais informações no blog oficial do google: (clique aqui)