segunda-feira, 2 de agosto de 2010

Uma Calculadora de dois BIT's

Somando com Portas Lógicas 

Uma das coisas mais legais da eletrônica, também o que mais me fascina nela, é a possibilidade de construir coisas simples mas bem legais e imaginativas. Num breve momento de ócio (bem raros nestes dias) eu resolvi repassar o básico de eletrônica digital e relembrei as funções lógicas XOR e AND, usadas para fazer cálculos binários.

Quando somamos dois bits, temos 4 situações e 3 resultados possíveis:
0+0=0
0+1=1
1+0=1
1+1=2

Mas não existe 2 em binário? só temos Zeros e Uns, verdade. Por isso quando somamos 1+1 o resultado será sempre 0, e transportamos 1 para a casa da direita, assim 1+1=0 e vai um. Ou 1+1=10. Assim sempre que somarmos dois bits, se apenas um deles for igual a 1, a resposta será de apenas um bit, mas se ambos forem um, o resultado será um numero de dois bits. Esse transporte (criação de um bit extra) é chamado de CARRY.

Pensando um pouco sobre as funções lógicas:

XOR -- A saída de uma porta XOR de duas entradas será alta, sempre que uma OU outra entrada estiver alta, EXCLUSIVAMENTE. Se as duas entradas estiverem altas ou baixas, a saída será baixa.
AND -- A saída de uma porta AND de duas entradas será alta, sempre que uma E a outra entrada estiverem alta. Se qualquer umas das entradas (incluindo ambas ao mesmo tempo) estiver em nível lógico baixo, a saída será baixa.

Você percebeu que a porta XOR se encaixa perfeitamente na função SOMA e a porta AND na função CARRY? Veja como é simples desenvolver um calculadora de 2-bits usando apenas duas portas lógicas:


Continue Lendo >

terça-feira, 6 de julho de 2010

Livros - Ensino médio

Alguns bons livros grátis

Eu estava procurando alguns livros sobre ensino médio, uteis para ENEM e afins. Fazendo um 'varredura' na WEB encontrei algo que merece ser comentado...
O governo do Paraná, em 2007 criou uma coleção de livros, para uso nas escolas públicas, mas teve a muito digna e bem-vinda idéia de distribuir os livros gratuitamente. O material é muito bom, e como toda boa idéia, seguem abaixo os links para download. Eu optei por hospedar na minha conta do 4Shared apenas para o caso de algum dia o servidor deles tirar os documentos do ar, temos aqui um backup.

Linguas: Espanhol e inglês Aqui

Quimica Aqui

Quando eu encontrar os outros, atualizo o post.

Continue Lendo >

Assembly PC - livro

PCassembler - Daniel Quadros - Atualizado

Um bom livro para quem quer conhecer, ou já conhece alguma coisa de programação em baixo nível é o livro de Daniel Quadros - PCassembler. Mas vale a pena estudar um livro de 1986?
Sim vale por um simples motivo:


A programação de baixo nível, nada mudou desde o inicio dos anos noventa, e mesmo antes, pouco coisa tinha mudado em relação a programação de baixo nível por anos setenta. A bem da verdade na linguagem de baixo nível nada muda.

Agora se você pensa que só porque você usa o novissimo windows 7, o conteúdo do livro não serve para nada, permita-me dizer que mesmo seu windows roda um núcleo (kernel) DOS.
Sim... mesmo o windows 7 roda as mesmas funções de sistema que rodavam no MSDOS 6.22, lá nos idos de 1991...


A maior prova disso são as syscall ou chamadas do sistema, que um programa qualquer pode fazer. Ainda hoje as syscall são as mesmas descritas no HelpPc, software criado em 1911, para servir de 'quebra galho' aos programadores. Mesmo no mais moderno Windows as chamadas são as mesmas usadas na época do DOS...

Por isso que sempre achei que conhecimento nunca é demais. Como a autor do livro, Daniel Quadros, passou a distribuir uma versão em PDF da sua obra, Eu estou substituindo a minha versão pela dele. Se quiser conhecer a obra deste brilhante autor ( e eu recomendo), segue o link para baixar o livro, direto do blog DQsoft.

Atualização da atualização -- O livro PC Assembler BIOS, também está disponível para download no blog do Daniel Quadros.

Continue Lendo >

quarta-feira, 23 de junho de 2010

LaTeX - instalando arquivos .ins

Instalar no braço

Você baixou um pacote LaTeX e depois de descompactar descobriu que dentro dele só tem dois arquivos, um xxx.cfg e outro xxx.ins. O que fazer então???

Na verdade estes dois arquivos são tudo que precisamos para instalar o pacote, basta usar o próprio Latex para isso. Então descompacte os arquivos dentro do seu diretório texmf, e depois rode o seguinte comando:

latex xxx.ins

Isso irá criar todos os arquivos de geometria, estilo e configuração do pacote, depois basta usar o comando texhash ~/texmf como descrito no post anterior. Pronto o pacote está pronto para ser usado. Até a próxima. =]

Continue Lendo >

terça-feira, 22 de junho de 2010

LaTeX - PATH

Entendendo os caminhos

Quando começamos a estudar LaTeX é comum querermos fazer algo mais diferente, mas para isso precisamos de mais pacotes que os instalados por padrão.

E instalar pacotes no LaTeX pode ser algo muito maçante, pois a estrutura dos diretórios do LaTeX é bem especifica, e cada pacote é composto de uma serie de arquivos diferentes, como arquivos de configuração (.cfg) arquivos de estilo (.sty) e arquivos da matemática do estilo (os dados geométricos para a construção das letras e símbolos do estilo, .map ou outra extensão).

Para simplificar podemos criar uma estrutura parecida dentro do nosso diretório HOME, o que simplifica drasticamente o processo de instalação.

Primeiro crie um diretório chamado texmf, dentro do diretório home:

mkdir texmf

Depois baixe o pacote que você quer instalar, eu prefiro baixar direto do CTAN. O proximo passo e mover o arquivo (geralmente um zip) para o texmf que criamos e descompacta-lo.

Não mude nada nos diretórios descompactados, apenas abra um terminal e entre um comando que vai inserir o nosso texmf dentro do PATH do LaTeX:

sudo texhash ~/texmf/
e depois
sudo texhash

Pronto, o primeiro comando vai criar um arquivo chamado ls-R dentro do diretório texmf que conterá uma lista de todos os pacotes LaTeX contidos dentro do texmf. E o segundo comando atualiza os ls-R da partição do sistema, avisando que existe outro na partição home.

Quando rodamos o LaTeX, ele procura por todos os diretórios texmf distribuídos pelo sistema (são 4 ao todo) e lê todos os ls-R para saber onde encontrar os pacotes instalados.

Até a práxima =]

Continue Lendo >

quinta-feira, 17 de junho de 2010

Curiosidade do Mar

Tartaruga Cinegrafista

Essa é só para registro histórico: Um agente americano, Paul Schultz encontrou uma câmera (devidamente protegida por uma case a prova d'água) numa praia de Key West, Flórida. A câmera havia sido perdida por alguém em Aruba, no Caribe. Até aí tudo bem, afinal a corrente do golfo poderia sim ter levado a câmera do Caribe até a Flórida (ainda mais com ela dentro de uma embalagem que impedia a água de entrar e fazer a câmera afundar) mas algo incrível aconteceu no caminho...

... Durante o trajeto da câmera, uma tartaruga marinha a encontrou e a ligou, produzindo um video de aproximadamente 15 minutos, parte do video está publicado no YouTube, e você pode vê-lo Aqui.

Segundo o agente que encontrou a câmera, pela data que a câmera registrou a filmagem, a tartaruga encontrou a câmera quando passava por Honduras. Não é mesmo o melhor vídeo do mundo, mas como o próprio agente comenta em seu post no YouTube: o que poderíamos esperar de uma tartaruga?

Do meu ponto de vista, considerando o que passa na Televisão Aberta Brasileira, o vídeo da tartaruga é muito melhor que muita coisa que passa nos Domingos...

Continue Lendo >

quarta-feira, 16 de junho de 2010

Reformando e Andando...

Reforma Ortográfica

Entre os seculos 20 e 21 a língua portuguesa teve apenas ONZE reformas ortográficas. Verdade que nem todas chegaram a encontrar a 'luz do povo', se tornando usuais, mas o Acordo Ortográfico da Língua Portuguesa, a reforma mais recente, passa a ser obrigatória a partir de janeiro 2013. A principio eu não dei a minima para mais essa tentativa de confundir os leigos e semianalfabetos, engajados brasileiros, que tanto se empenham em falar um português correto e culto...

Mas com a Proximidade de 2013 e a necessidade de me acostumar com a nova grafia das palavras, me fez encontrar por aí algum bom material.

Vale lembrar que a ultima lei (sim a ortografia é definida por lei) que dispunha os fundamentos da ortografia foi a lei nº5.765 de 18 de dezembro de 1971. Todas as reformas (as de 1973, 1975, 1983, 1990, 1998, 2004 e 2008) foram na verdade decretos ou acordos assinados entre os países Lusófonos (países cuja língua oficial é o português). Assim esses acordos e decretos, na verdade alteram o texto da referida lei. Essa lei, determina 17 bases para a grafia das palavras.
br> Logo o Acordo ortográfico apenas altera o conteúdo destas bases. Para conhecer o texto integral do acordo, baixe este arquivo AQUI.

E você também pode baixar um guia rápido de como usar as normas da reforma ortográfica AQUI.

No futuro, eu posto minhas manhas e façanhas com as novas regras...

Continue Lendo >

sexta-feira, 11 de junho de 2010

Linux - descobrindo o que está instalado

O programa está instalado?

É comum, em especial para os novatos em Linux, ao começarem a estudar algo, como uma linguagem de programação, não saberem se determinado programa está ou não instalado no sistema.

Há varias maneiras de verificar isso, mas a mais pratica é o Comando

which

Esse comando exibe na tela todo o caminho do executável do programa ou comando, isso mesmo, ele mostra também se aquele comando obscuro que você só usou uma vez nos últimos 20 meses está instalado

$ which python
/usr/bin/python

$ which sudo
/usr/bin/sudo

A resposta é bem parecida com a do comandos pwd, que exibe o diretório atual, mas o which exibe o caminho de qualquer executável instalado. Agora se ele não responder nada... o executável não está instalado.

Continue Lendo >

quarta-feira, 9 de junho de 2010

LaTeX : um pouco do ABNTEX

Pacotes, Ambientes e Caixas -- Quarta parte

Muito bem, já vimos o que é o preambulo e o ambiente onde criar o texto. Apartir de agora vamos assumir um critério mas de tutorial, por isso vamos aprender a desenvolver um arquivo LaTeX que crie um pdf dentro das normas da ABNT, por isso, temos que instalar o pacote abntex

Para não tornar essa serie de post's massantes, eu criei um pequeno arquivo .pdf com o conteúdo que abordarei nos proximos post's, você ode baixa-lo Aqui , nele você tem resumidamente dicas de como instalar o pacote abntex, além de uma abordagem mais direta de tudo que falarei, em detalhes, nos posts das proximas semanas. Qualquer duvida ao sugestão, entre em contato. Também criei um pequeno roteiro de como usar o programa Bibtex em conjunto com o pacote ABNTEX, pegue-o Aqui.

Após instalado o pacote abntex, podemos usar a classe ABNT para criar nossos documentos. Como comentado no arquivo Código latex passo a passo, o nosso novo preambulo é assim: \documentclass[notimes,ruledheader]{abnt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[brazilian]{babel}
\usepackage[alf]{abntcite}
\usepackage[pdftex,table]{xcolor}
\usepackage{lettrine}


Assim definimos a classe do arquivo como sendo ABNT, com cabeçalho (opção ruledheader, a códificação UTF8, fonte T1 (na duvida consulte a documentação do pacote fontenc, para ver as opções. Mas no caso do ABNT é obrigatório o uso desta fonte), a hifenização Brasiliera, numeração alfanumérica e uso de cores. Vale lembrar que se você for usar figuras, deve inserir o pacote graphicx: \usepackage[pdftex] {graphicx}.

A ABNT gerou regras bem especificas sobre o conteúdo dos documentos, existem itens obrigatorios chamados pré-textuais que são a capa e folha de rosto; folha de aprovação; Resumo e Abstract; sumário; listas de figuras, tabelas e simbolos. Depois dos elementos pré-textuais podemos desenvolver nosso trabalho dissertativo normalmente, obedecendo apenas as margens e regras para numeração de figuras e tabelas. E após temos os elementos pós-textuais, porém o unico obrigatorio são as Referências Bibliográficas. Podemos, se quisermos, colocar um indice remissivo após as referências bibliográfica.

No proximo post, começamos a ver detalhes de cada um destes elementos

Continue Lendo >

terça-feira, 8 de junho de 2010

Latex: Novos ambientes

Novos ambientes e o pacote FancyBox

As algumas vezes precisamos fazer algo em latex que não existe ambiente que faça. Isso aconteceu comigo quando fui fazer fichas de um livro. Daria muito trabalho criar um framebox para cada ficha, e mesmo assim, como cada ficha tem um conteúdo diferente, elas teriam tamanhos diferentes.

Então, como criar uma caixa de tamanho fixo, que me permita alterar o conteúdo da caixa o mais facil possivel?

Depois de muito tentar, e contando com a ajuda dos amigos do blog vidageek consegui chegar a um resultado perfeito, mas antes vamos ver uma pouco sobre novos ambientes:
O comando \newenvironment{nome}[n. argumentos]{Antes} {Depois} gera novos ambientes e tem três argumentos, onde o primeiro é o nome do ambiente (vamos usar esse nome com o comando \begin), o segundo descreve tudo que deve acontecer ANTES do conteúdo do ambiente e o terceiro argumento descreve o que deve acontecer DEPOIS do conteúdo.

Também podemos inserir argumentos para nosso ambiente, mas antes devemos declarar o numero de argumentos que nosso novo ambiente vai ter, e fazemos isso logo depois do nome do novo ambiente. Para usar os argumentos basta definir #n, onde n é um numero até o maximo definido em numero de argumentos. Por exemplo, o comando: \newenvironment{bi}[1]%
{Nome: \emph{#1} \\ }{vspace{3ex}}

Gera o ambiente que pode ser chamado assim:
\begin{bi}{Antonio}
este é o texto do ambiente
\end{bi}


Que terá como resultado:

Nome:Antonio
este é o texto do ambiente

O pacote fancybox implementa um ambiente que permite 'quebrar' um uma caixa dentro de outro ambiente. E isso é muito util pois não é possivel fazer isso com os comandos \fbox{} nem \framebox{}, por que ambos precisam ter o conteúdo fechado por chaves. Por exemplo, o ambiente criado por:
\newenvironment{bi}[1]
{\fbox{Nome:\emph{#1}}
{vspace{3ex}}


Irá falhar na hora de compilar, por que a ultima chave direita com argumento ANTES, vai ser considerada como sendo a chave direita do \fbox, então falta um chave direita. Mas se incluirmos a chave que falta, apenas o conteúdo do argumento do ambiente dicará dentro da \fbox. Mas usando o ambiente Sbox do pacote fancybox, podemos quebrar essa caixa entre os argumentos ANTES e DEPOIS, para que todo o conteúdo do nosso ambiente fique dentro da \fbox.

\newenvironment{exemplo}[1]
{\begin{Sbox} \begin{minipage}[t][9cm][t]{19cm}{\parbox{19cm}%
\bf\large{#1}} \\}

{ \end{minipage} \end{Sbox} \fbox{\TheSbox}}
Segundo o manual do fancybox, o ambiente Sbox na verdade irá salvar o seu contéudo do mesmo modo que o comando \savebox faria. Assim tudo que for inserir do novo ambiente será salvo como uma unica caixa. O uso do ambiente minipage serve para definir o tamanho da ficha, desta forma criamos um ficha de tamanho fixo (neste caso 9cm de altura e 19 de largura).
Para finalizar basta colocar a caixa salva dentro de uma \fbox comum. Veja que esse é o ultimo comando do nosso ambiente.
Acresentado mais uns detalhes podemos criar uma ficha bem estilosa, veja por exemplo, o código abaixo, que usei para gerar as minhas fichas:

\newenvironment{ficha}[1]
{ \stepcounter{fic} \noindent \begin{Sbox} \begin{minipage}[t][9cm][t]{19cm}%
\colorbox{gray!30}{\parbox{19cm}%
{\textcolor{red}{\sc\large Ficha \Roman{fic}} -- \bf\large{#1}}}\vspace*{0.3cm}%
}
{\end{minipage} \end{Sbox} \fbox{\TheSbox} \vspace*{0.3cm}}


Gera o seguinte visual final:


Continue Lendo >

domingo, 6 de junho de 2010

\lettrine - criando letra capitular

Inserindo letra Capitular em LaTeX

Uma letra Capitular é aquela letra grande, geralmente do tamanho de duas linhas, que abre o texto de cada capitulo. Inserir uma letra Capitular no LaTeX e bem simples, basta usar o pacote Lettrine Inclua no preambulo do comando:

\usepackage{lettrine} 


Esse pacote não tem opções e implementa o comando:


\lettrine[opções]{letra}{texto}



O primeiro argumento é a letra capitular, ela tem por padrão o tamanho de duas linhas de texto, mas pode ser alterada atraces da opção line=inteiro, e o segundo argumento é o texto imediatamente posterior a letra Capitular (caso ela seja a primeira letra de uma palavra) esse texto será impresso em small caps.
Por exemplo o código:


\lettrine{P}{ara} começar o corpo do texto basta...



gera o seguinte resultado: 





Continue Lendo >

LaTeX : primeiros comandos

Pacotes, Ambientes e Caixas -- Terceira parte

Continuando nosso caminho pelo LaTeX, o proximo passo é indicar os pacotes que vão dar suporte a criação do arquivo final. Esse pacotes nos permitem incluir figuras e graficos, usar cores, usar acentos e hifenizar as palavras etc. Ao incluir um pacote no preambulo nos fica acessivel todos os comandos contidos nele, pois é isso que um pacote é: um conjunto de comandos LaTeX. Para usar qualquer comando de um pacote, devemos inclui-lo, sempre no preambulo, usando o comando: \usepackage[opções]{pacote}

Vamos conhecer alguns pacotes importantes: babel -- Usado para definir o idioma, para a separação silábica, deste jeito a hifenização do texto fica dentro da norma da lingua. Para português do brasil podemos usar as opções brazil,portuges, escrevendo brasil com Z e protuges (sem o U mesmo): \usepackage[brazil,portuges]{babel} inputenc -- Usado para definir a códificação de entrada (input encoding). Para usar os acentos da lingua portuguesa devemos usar as opções LATIN1 ou UTF8. Eu prefiro usar a opção UTF8 por que tive problemas com a LATIN1, ao montar o arquivo as letras acentuadas ficavam 'acavaladas' nas letras da direita. Isso não acontece usando a opção UTF8: \usepackage[utf8]{inputenc} graphicx -- Permite a inclusão de figura. Disponibiliza o comando \includegraphics que insere no arquivo final uma figura que pode ser no formato .JPG, GIF (sem animação) .PDF ou .EPS. Entre as opções do pacote, a mais usada é a pdftex que permite gerar um arquivo final no formato PDF com figuras: \usepackage[pdftex]{graphicx} xcolor -- Permite o uso de cores no texto. Disponibiliza os comandos: \color{texto} \textcolor{texto} além de outros e de uma fenomenal controle da geração de cores. Falaremos mais sobre cores em outro momento. As opções mais usadas neste pacote são as pdftex,table que permitem a criação de um arquivo final no formato pdf com cores e tabelas coloridas (cor de funda das células. grade da tabela colorida etc): \usepackage[pdftex,table]{xcolor}

Com os pacotes que conhecemos até agora já podemos montar um preambulo tem funcional: \documentclass{report} %classe do arquivo \usepackage[brazil,portuges]{babel} %linguagem do arquivo e hifenização \usepackage[utf8]{inputenc} %entrada de acentos \usepackage[pdftex]{graphicx} %graficos para pdf \usepackage[pdftex,table]{xcolor} %cor para tabelas e pdf Muitos outros pacotes existem, e podem ser obtidos no site da CTAN. Ainda no CTAN você poderá encontrar farta documentação sobre LaTeX, incluindo o IshortBR, um otimo manual de introdução ao LaTeX. Caso você use Gnu/Linux, e tiver alguma duvida sobre algum pacote, basta entrar o comando $ texdoc nome do pacote. Como por exemplo, entre o comando: $ texdoc xcolor e veja todas as opções do pacote, além de como usar as cores e criar suas proprias cores para seus documentos. Após definidos os pacotes do Preambulo, basta abrir o Ambiente do documento. Mas que é um Ambiente? O LaTeX trata tudo como se fossem caixas, imagine o LaTeX como um sequestrador que para escrever um carta recorta as letras de outros textos e cola cada letrinha uma ao lado da outra. Assim cada letra fica numa caixa propria (num contorno invisivel da letra) e o texto é formado pela união destas caixinhas. Varias caixas podem ser agrupadas em caixas maiores, e essas em Ambientes, onde podemos manipular sua possição e dimenções sem ter que fazer isso letra por letra. Assim a primeira coisa a fazer no nosso documento, depois de definido o preambulo, é criar um ambiente onde as caixinhas com o texto e figuras do nosso arquivo vão ficar. Esse ambiente é o proprio documento:
\begin{document}

\end{document}
Todo ambiente é aberto com \begin{ambiente} e deve ser fechado com \end{ambiente.
Nos podemos abrir um ambiente dentro de outro ambiente, sempre que necessário. Amanhã veremos os principais ambientes para a criação de textos, tabelas e figuras.

Continue Lendo >

Coisas para fazer uma vez na vida... mas só uma mesmo!

Três coisas que só se pode fazer uma vez na vida

Sempre gostei de imaginar coisas que depois de feitas não podem ser desfeitas. talvez por causa do meu detalhismo, do meu minimalismo que faz fronteira com TOC.
Pensando nisso notei três coisas que podemos fazer apenas uma vez na vida...

A Primeira delas é nascer, por mais que alguém tenha passado por situações traumáticas, ou de quase morte, ninguém é parido duas vezes...
Quando vejo um homem, no auge dos seus 40 anos, em que sua maior medida não é sua altura mas sim a circunferência da cintura, dizer a plenos pulmões: Eu nasci denovo!.
Eu só consigo pensar: Tadinha da sua mãe...

A segunda é morrer. Afinal mesmo Jesus Christo morreu apenas uma vez. Ele morreu uma primeira vez, ressuscitou no terceiro dia e depois não morreu denovo...
Mas a mais importante de todas, que todos nós deveríamos fazer apenas uma vez na vida é: Votar no PT. Lembre que depois de oito anos do governo, segundo o governo PT A saúde está quase perfeita, se você tem problemas pera viajar (seja por terra, ar ou mar) o governo PT resolve com a filosofia Relaxa e goza.
Mas qual seria a mais importante contribuição do governo PT para o país? Infelizmente não podemos perguntar ao presidente, afinal ele não participa de nenhuma coletiva desde que assumiu o cargo e mesmo se participasse ele:não sabia de nada...
E assim temos uma pequena lista de três coisas que só devemos fazer uma vez na vida: Nascer, Morrer e votar no PT.




Continue Lendo >

sábado, 5 de junho de 2010

LaTeX : começando a entender

Pacotes, Ambientes e Caixas -- Segunda parte


Muito bem, finda a nossa introdução temática, vamos conhecer os conceitos básicos de LaTeX.

Antes de mais nada devemos saber que todos os comandos LaTeX tem um sintaxe bem simples:

\comando

Assim fica facil peceber que \textbf ou \usepackage são comandos LaTeX.


Um Arquivo fonte LaTeX é dividido em dois campos basicos: Préambulo e Documento.

Preambulo
É todo código que vem antes do ambiente \begin{document}. No preambulo nós definimos as configurações básicas do documento, como o tipo (livro, artigo, reportagem etc), o tipo de entrada (latin1, utf8 etc), a hifenização (inglês, português etc), o uso de cores, além de pacotes com funções especiais


A primeira linha de todo código fonte LaTeX deve ser sobre o tipo do documento que estamos gerando, para isso usamos o comando:

\documentclass[opções do arquivo]{tipo do arquivo}

As opções são usadas para definir detalhes do arquivo, varias opçoes podem ser usadas ao mesmo tempo, para isso devemos separa-las com virgula. Abaixo um lista resumida de opções aceitas pelas classes book, article e report:


10pt (ou 11pt e 12pt) tamanho da fonte usada, o padrão é 12pt
twoside gerar arquivo para impressão nos dois lados da pagina, o padrão é oneside.
a4paper (ou a5paper ou b5paper ou letterpaper) definem o tipo de papel, o padrão dependa da classe
do arquivo, por exemplo a classe book o padrão é a4paper
fleqn Mostram as fórmulas matemáticas alinhadas à esquerda ao invés de centralizadas.
leqno Coloca a numeração das formulas no lado esquerdo ao invés do direito.
onecolumn (ou twocolumn) Faz o LaTeX formatar o documento em uma coluna (ou duas colunas). O padrão é uma coluna.
landscape Muda a forma da folha para 'paisagem'.


As classes instaladas por padrão são apenas 4, mas podemos instalar muitas outras, como a classe ABNT, mas por hora ficamos com as classes padrão:

article para artigos em revistas científicas, apresentações, pequenos relatórios, documentação de programas, convites. Essa classe não aceita dividir o aquivo em capitulos.
report para relatórios maiores, pode conter capítulos. Usado para pequenos livros, teses de doutorado.
book Para livro maiores, pode ser subdividido em partes, capitulos, seções, subseçõs e subsubsções.
slides para slides =]. Usa a fonte sans serif com letras grandes.

Assim se queremos criar um livro em folha a4 e impressão nos dois lados:

\documentclass[a4paper,twoside]{book}.

É importante observar que as opções omitidas são consideradas como padrão. Por exemplo o texto do arquivo gerado pela linha a cima será escrito em uma coluna, com a folha no formato L (a opção paisagem não foi usada) etc.

Continue Lendo >

LaTeX : conceitos iniciais

Pacotes, Ambientes e Caixas -- Primeira parte


Esses três termos serão seus fieis seguidores nesta nova empreitada rumo ao dominio de uma nova linguagem.


Legal eu vou me tornar um programador de LaTeX...

Se você pensou nisso... desculpe cortar sua empolgação mas não existe programador de LaTeX, pelo simples fato que LaTeX não é uma linguagem de programação.

Assim como não existe programador de HTML, ambas são linguagens de marcação e nunca devem ser confundidas com linguagens de programação.


Numa linguagem de Marcação nós não usamos seus comandos para criar funções ou rotinas lógicas, mas sim para marcar a posição de elementos.
Tanto LaTeX quanto HTML só geram textos estáticos nos quais só podemos lê-los. Esses textos podem até ter links dinâmicos que permitam que passemos de um ponto a outro do texto, mas esses links nunca executarão alguma operação lógica, logo não são considerados Funções Lógicas.
Para que a internet se tornasse mais interativa foi necessário a criação de outras linguagem (como Javascript, AJAX, ASP e mesmo PHP) além da inclusão de linguagem já existentes dentro do ambiente WEB (como Python e Perl [CGI.bin]).

Tendo isso mente vamos começar a entender como LaTeX marca a posição das coisas.
Primeiro de tudo devemos instalar o interpretador de comandos LaTeX.
Se você usa M$ Windows pode usar o MikTeX, é o mais comum e amplamente divuldado, você pode conhecer o projeto MikTex aqui.
Mas se você, igual a mim usa um sistema GNU/Linux o mais indicado é o pacote texlive. Ao instalar esse pacote, tambem serão instalados os pacotes pdftex, bibtex entre outros, que veremos em momento oportuno que são muito uteis. Basta procurar no repositório da sua distribuição =]


Tudo instalado podemos começar a escrever o primeiro código-fonte. Ele pode ser escrito em qualquer editor de texto ASCII. Isso quer dizer que vamos usar um editor de texto que não inclua nada no arquivo além do texto que nós vamos digitar

Que Editor de Texto inserre 'coisas' no meu texto?

Qual quer editor WYSIWYG-- está certo pronunciar isso lembra a Sam Spark da animação Tá chovendo Hambuguer-- que são editores como o M$ Word ou o Open Writer do OpenOffice. Duvida? Abra um aquivo .odt ou .docx usando o bloco de notas ou o vi (no linux) e você verá uma serie de códigos estranhos antes do texto. São esses códigos que dizem ao programa editor quais fontes foram usadas, que tamanho elas tem, qual o recuo do paragrafo etc..
Esse código é o código de marcação que foi desenvolvido que M$ ou pela Sun para seus editores de texto WYSIWYG. Essa sigla signifca O que você vê é o que você tem, em outras palavras, num editor WYSIWYG, você começa com o produto final, posicionado e tipando o texto e figuras diretamente numa folha em branco e quando clica em salvar o editor monta o código-fonte com a linguagem de marcado propria dele, tentando criar um código que faça o arquivo final ficar o mais proximo possível do que você tipografou.


Já com LaTeX fazemos exatamente o processo oposto, nós criamos diretamente o código-fonte e depois compilamos o código para gerar o produto final. Assim podemos criar um arquivo com o contéudo que queremos, e deixar que os detalhes tipográficos fiquem por conta do LaTeX. Fazendo isso, damos ao nosso texto mais coerência estética e regularidade, afinal quem alinha o texto na margem, quem dá o recuo do paragrafo, quem numero os capitulos, seções e subsções é o proprio LaTeX, deixando para a gente apenas o trabalho de digitar o texto. Por isso para que não haja a inclusão de código intruso devemos usar um editor como o gedit/kedit (linux) ou o bloco de notas (windows). No gnu/linux eu aconselho a IDE GEANY, ela tem suporte para LaTeX com autocompletamento, além de um terminal embutido e uma area para rascunho.

Qual dos metodos é melhor?

Pode parecer estranha minha resposta mas é verdade: Os editores WYSIWYG e o LaTeX são produtos distintos, criados para publicos alvo diferentes, logo não há como comparar um com o outro. Seria o mesmo que perguntar qual é melhor: uma lança de corrida ou um caça F22?

Depende de onde você quer correr... se for correr na água prefira a lança, mas se for no ar, melhor o F22...

Continue Lendo >

sexta-feira, 4 de junho de 2010

\LaTeX - Tipografando com Estilo (e Normas)

O TeX é um programa de computador criado por Donald E. Knuth, cujo motor tipográfico começou a ser escrito em 1977 para explorar o potencial dos equipamentos digitais de impressão que começavam a se espalhar pelas indústrias naquela época, principalmente para melhorar a qualidade gráfica dos livros técnicos (em especial os livros do proprio Knuth}.

O LaTeX, um pacote de comandos (macros) que permitem que formatos predefinidos, de grande qualidade tipográfica, sejam impressos por qualquer autor. Foi escrito originalmente por Leslie Lamport ( o La é de Lamport). Usa o TEX como o seu motor tipográfico. Ultimamente, o LaTeX é mantido por Frank Mittelbach.



A principal função do LaTeX é permitir que o escritor se concentre no conteúdo, deixando a forma do texto por conta do LaTeX. É uma linguagem voltada a criação de texto científicos e acadêmicos

YOKIKO?
Talvez agora você pense: YOKIKO eu tenho a ver com isso?
Bem, se você é estudante (universitário ou não) e faz trabalhos impressos com frequência, já deve ter pensado o quão bom seria se houvesse um programa que 'monta- se' meu trabalho pelas regras da ABNT, sem eu ter que me preocupar com as medidas ou detalhes de tamanho de letra etc...


Pois bem é para isso que o LaTeX foi criado, nos próximos dias, vamos dar alguns passos dentro deste linguagem, por hoje vamos apenas aprender os conceitos basicos, tais como:

Pronuncia do nome
A principio é importante observar que o TeX não é escrito com Te + Ê + Xis, mas com as letras gregas TAU (som de T) + EPSILON (som de e fechado) + KI (som de k), assim a pronuncia é têki ou têqui, e LaTeX pode ser pronunciado como LaTêk ou Latêqui ou ainda Laytequi. Não confunda com a pronuncia de latex (a seiva extraída da seringueira)

Continue Lendo >

quarta-feira, 6 de janeiro de 2010

Um pouco de Instruções lógicas.

Usando instruções lógica

Para construir os programas dos nossos projetos vamos primeiro criar um conhecimento base. São apenas alguns conceitos que vamos usar na criação dos códigos dos programas, que vou ficar fazendo referências, assim se precisarmos relembrar esses elementos, poderemos ver nestes posts.

Embora essas instruções sejam mais 'aritiméticas' elas tambem são instruções lógicas e podem ser usadas em funções mais simples do que o calculo matemático, veja agora alguns desses usos.

Considerando os PIC da familia Média ( Middle Range ) podemos contar com as algumas instruções lógicas muito poderosas para a construção de um código dinâmico e eficiente:



ANDWF Executa um AND lógico entre o conteúdo de F e W (Registro de trabalho).
IORWF Executa um Inclusive OR lógico entre o conteúdo de F e W (Registro de trabalho).
XORWF Executa um Exclusive OR lógico entre o conteúdo de F e W (Registro de trabalho).
ANDLW Executa um AND lógico entre o conteúdo de W (Registro de trabalho) e uma literal de 8 bits; Observe que a operação lógica ocorre bit a bit por isso a literal DEVE ter oito bits de largura
IORLW Executa um Inclusive OR lógico entre o conteúdo de W (Registro de trabalho) e uma literal de 8 bits; Observe que a operação lógica ocorre bit a bit por isso a literal DEVE ter oito bits de largura
XORLF Executa um Exclusive OR lógico entre o conteúdo de W (Registro de trabalho) e uma literal de 8 bits; Observe que a operação lógica ocorre bit a bit por isso a literal DEVE ter oito bits de largura

Entendendo:

Todas as instruções que envolvem F (FILE) e W requerem a indicação de um registro da RAM e do destino da operação. Se o destino for 0 (zero) o resultado fica em W. Se destino for igual a 1, o resultado é gravado na possição da memoria indicado em FILE.
A Sintaxe de todas elas é:

instrução FILE, destino

Exemplo:
andwf reg1,0 ;essa instrução faz um AND lógico com o conteúdo
                 ;de W e do reg1 (endereço da RAM) com resultado em W.
movwf reg1 ;essa instrução grava o conteúdo de W em reg1.
xorwf reg1,1 ;essa instrução faz um XOR (exclusive OR) entre o
;conteúdo de W e reg1 e grava o resultado em reg1.

Todas as instruções que envolvem literal deve ter uma literal de 8 bits, e o resultado da operação é gravado em W e afeta os flags de Status do PIC.

Exemplo:
andlw b'00001111' ; essa instrução faz um AND lógico entra W

                     ; e a literal binária 00001111

Usando:

Os principais usos das instruções lógicas é a determinação de um valor e a criação de mascaras para dados. Vejamos alguns exemplos, supondo que o valor de W seja 0xE3:

  • AND

a resposta de uma função AND será 1 se as duas variaveis testadas tambem forem 1, seguindo a tabela verdade:


A * B Y
0 0 0
0 1 0
1 0 0
1 1 1

Pela tabela verdade temos que todo bit que sofrer a operação AND com um valor 1 não será alterado, pois os resultados possiveis são; se o bit for zero, 0 * 1 = 0 e se o bit for 1, 1 * 1 = 1.
Mas quaquer bit que sofrer a operação AND com um valor 0, será = 0, pois os resultados possiveis são: para bit 0, 0 * 0 = 0, e para bit 1, 1 * 0 = 0.

Isso pode ser muito util quando queremos isolar um nibble, ou um valor especifico, veja o exemplo:
andlw  0xF0  ; faz um AND entre o valor de W (oxE3) e a literal F0.
; Com essa operação W fica assim:
; W = 1110 0011 (0xE3)
; K = 1111 0000 (0xF0)
; R = 1110 0000 (0xE0), o novo valor de W é E0,
; zeramos o nibble menos significativo.

O mesmo pode ser feito com o nibble mais significativo, bastaria usar uma literal 0x0F e o valor de W mudaria para 0x03.
  • IOR Inclusive OR

a resposta de uma função OR inclusiva será 1 se ao menos uma das variáveis testada for 1, seguindo a tabela verdade:


A * B Y
0 0 0
0 1 1
1 0 1
1 1 1

Um dos usos desta operação é quando queremos setar um bit, sem afetar os outros. Veja que se o bit for testado contra 0, vai manter seu valor, pois os resultados possiveis são: se bit = 0, 0 + 0 = 0, e se bit = 1, 1 + 0 = 1. Mas se o bit for testado contra 1, ele será setado, pois os resultados possiveis são: se bit = 0, 0 + 1 = 1, e se bit = 1. 1 + 1 = 1. Veja um exemplo:

iorlw  0xF0  ; faz um IOR entre o valor de W (oxE3) e a literal F0.
; Com essa operação W fica assim:
; W = 1110 0011 (0xE3)
; K = 1111 0000 (0xF0)
; R = 1111 0011 (0xF3), o novo valor de W é F3,
; tudo que fizemos foi setar o bit 5, mantendo
; os outros inalterados.

  • XOR Exclusive OR

a resposta de uma função OR exclusiva será 1 se, e somente se uma das variaveis testada for 1, seguindo a tabela verdade:

A  *  B  Y
0 0 0
0 1 1
1 0 1
1 1 0
Um dos usos desta operação é a determinação do valor guardado num registro. Veja que se o bit for testado contra o seu proprio valor a resposta é zero, mas se testado contra um valor diferente o resultado será 1. Assim podemos usar essa instrução para determinar o valor do registro, testando o bit Z (bit zero) do PIC. Veja um exemplo, nele o valor de reg1 é 0xE3.
xorlw  0xF0  ; faz um XOR entre o valor de W (oxE3) e a literal F0.
; Com essa operação W fica assim:
; W = 1110 0011 (0xE3)
; K = 1111 0000 (0xF0)
; R = 0001 0011 (0x13), o novo valor de W é 13, e bit Z=0
movf reg1,0 ; move valor de reg1 para w
xorlw 0xE3 ;faz um XOR entre o valor de W (oxE3) e a literal E3.
; Com essa operação W fica assim:
; W = 1110 0011 (0xE3)
; K = 1110 0011 (0xE3)
; R = 0000 0000 (0x00), o novo valor de W é 00, setando
; o bit Z.
Assim podemos fazer sucessivas operações xorlw, testando contra valores diferente e quando testarmos contra o mesmo valor do registro, o Bit Zero será setado. Tudo que temos que fazer é ficar verificando o bit Zero após cada operação XOR.

Continue Lendo >

terça-feira, 5 de janeiro de 2010

Inicio

Tudo tem um começo...


...E se você chegou aqui, então começou a estudar eletronica, programação ou entrou na grande fusão destes dois mundos: os MCU's ' MicroControler Unit
Esse blog vai, ao longo do tempo, expôr elementos de eletronica, principalmente sua determinações matematicas;
Tambem iremos passear pela programação, em especial Assembly;
E iremos viajar pelo Tutorial Assembly PIC, um antigo projeto meu que estou devendo a comunidade "Clube do Hardware'

.

os arquivos preliminares serão distribuidos por este canal. Estou a procura de voluntários para redigir alguns topicos do tutorial



Os arquivos finais (os 4 volumes do tutorial) serão distribuidos gratuitamente por este Blog e pelo post oficial do tutorial "Forum do clube do Hardwawe'



Até a proxima então =]

Continue Lendo >