25 de janeiro de 2007

Meu museu particular da computação

Ontem estava lembrando dos computadores que eu conheci, desde a minha infância em São Paulo, passando pela minha adolescência em Dourados (MS) e chegando ao penúltimo semestre do meu curso em Belém do Pará.

Quem começou a mexer com computação lá em casa foi meu irmão mais velho, o Paulo. Ele ganhou do meu pai um Aplle TK-3000, na época era uma máquina de fazer inveja. A gente ligava na TV (monitor não era algo usual em pc's), e era só apertar o botão de ligar que ele mostrava um monte de letrinhas brancas na tela preta. Eu não entendia nada, mas ficava fascinado. Acho que eu tinha uns 5 ou 6 anos.

O drive de disquete de 5 1/4" tinha quase o tamanho de um dicionário Aurélio, e era separado do computador. O disquete em si devia ter o tamanho de um CD. Não consigo lembrar, e não tenho nenhum em mãos agora pra tirar a dúvida.

Lembro também que o Paulo ficava horas e horas aprendendo a usar aquela máquina, digitando imensos programas BASIC que vinham nas revistas de programação que meu pai comprava. Geralmente meus pais ditavam o programa e o Paulo digitava, e eu ficava olhando. Mas eu não gostava de programar; pra mim, copiar um monte de letras e números era tedioso, porque eu não entendia como é que aquelas 12000 linhas de GOTO's, FOR's e NEXT's conseguiam dar vida a um cobrinha que ficava andando pela tela, ou a uma bolinha de pingue-pongue e duas raquetes que a gente podia controlar pelo teclado. Até arriscava copiar alguns programas, sempre os menores (as revistas tinha seções para separar os programas 'fáceis" dos "difíceis"). Mas o resultados era um monte de mensagens de erro, que eu não entendia mas que hoje sei que aconteciam por causa de erros de digitação.

Minha maior diversão eram os jogos que o papai comprava em fitas K-7. É, aquelas fitas de música. Naquela época, elas eram muito usadas para guardar dados, como os pendrive's ou CD's de hoje. Os drives de disquete eram caros, então quem não podia comprar ligava o gravador de fita K-7 no PC, através de um cabo de áudio e de uma entrada que a maioria dos PC's possuía. Funcionava assim: a gente colocava a fita no gravador, e apertava REC. Aí, na mesma hora, tinha que digitar o comando SAVE (salvar) no computador, e ele salvava o arquivo desejado na fita. Depois que o processo era completado, bastava apertar STOP no gravador. Para recuperar os dados, a gente rebobinava a fita, apertava PLAY e mandava o computador ler o arquivo, mas não consigo lembrar o comando. Devia ser LOAD, ou algo assim. Fácil, né?

O tempo foi passando, e o papai comprou outro modelo. Agora era um MSX, da Gradiente. Eu devia ter uns 7 anos.

O nosso não tinha drive de disquete embutido, mas havia outro modelo parecido que possuía. E já tinha diminuído: agora eram disquetes de 3 1/2", ou o tamanho de um mini-CD. Mas o MSX tinha uma novidade bem bacana: dois encaixes para cartuchos de memória (tipo aqueles de vídeo-game). Mas os cartuchos que podiam ser regravados, como as fitas eram, eram mais caros que os cartuchos que só podiam ser lidos.

E ele tinha um monitor também, que combinava com o desenho do computador. O teclado era separado, com mais teclas que o TK-3000 e mais bonito também. Só não tínhamos mouse.

Mais pra frente, quando eu já morava em Dourados (MS), quando eu já estava com uns 10 anos, ganhamos um PC-XT. Não lembro o fabricante. Ele tinha mouse, teclado, monitor de fósforo verde (ou seja, podia mostrar imagens em tons de verde com fundo preto) e drive de disquete embutido. Também tinha, acreditem, um Disco Rígido (mais conhecido como HD, ou "Hard Drive"). Tinha a incrível capacidade de 20 Megabytes (MB).

Mas não se assute. Os software's, naquela época, eram bem menores e mais simples, então 20 MB era mais do que suficiente pra que fazia uso apenas de jogos, digitação de documentos ou desenho.

Foi naquele PC-XT que eu comecei a aprender a programar. Resolvi pegar umas revistas e livros do meu irmão e comecei não apenas a digitar, mas a tentar aprender o que eu estava digitando. Pra quê serviam aquelas palavras em inglês? O que elas mandavam o computador fazer? Como é que alguém fazia pra criar um programa que desenhava linhas e círculos em movimento quando a gente deixava o computador parado por uns 10 minutos? Eram perguntas que me fascinavam e intrigavam. Lembro de muitas noites em claro, lendo os livros de programação e levando bronca da minha mãe. Mas valeu à pena.

Tinha também as horas de diversão; eu adorava jogar Prince of Persia ou Indy 500. Ficava horas vidrado na tela, deixava até de comer. E lá vinha bronca da mamãe.

Mais ou menos aos 12 anos, vi meu irmão ganhar um PC-AT 386, com 33 MHz de clock e 2 MB de memória RAM. O HD devia ter uns 40 MB, mas não me recordo direito. A gente montou em casa, porque o papai trouxe as peças separadas, do Paraguay. Tinha mouse, teclado, joystick, monitor de 14 polegadas e colorido!... E o mais bacana: tinha CD-ROM e caixas de som. O papai trouxe uns CD's com programas de edição de imagens, enciclopédia com vídeos e textos, jogos, etc. Foi um barato.

Como meu irmão ficou com o AT, eu fiquei com o XT. Agora podia passar os dias na frente dele, sem me preocupar se o Paulo precisava usar ou não...

Mais tarde, aos 15 anos, já em Belém, ganhamos um PC-AT 486. Tinha 66 MHz de clock e 16 MB de RAM. Não lembro a capacidade do HD, mas não devia ter mais que 200 MB. Era muito parecido com o 386, só que mais rápido.

Quando eu fiz uns 18 anos, o Paulo já trabalhava e estava estudando Processamento de Dados na escola técnica. Juntou suas economias e comprou o próprio computador, um Pentium II de 266 MHz e 32 MB de RAM. Novamente não lembro a capacidade do HD. Nessa época os modelos com gabinete em "torre", ou seja, em que o monitor não ficava em cima do computador, mas ao lado, começaram a se tornar comuns.

Era o início da era da Internet no Brasil. Quando ele dormia fora na casa de algum amigo, ou saía e chegava só de madrugada, eu ficava horas em salas de bate-papo e navegando na "net". Mas a programação nunca saía da minha cabeça. Sempre tinha algum livro de cabeceira, alguma linguagem nova pra aprender, algum erro misteriosos pra desvendar.

Quando entrei no segundo ano de Cefet (que antes era a Escola Técnica onde meu irmão estudou, e que mudou de nome), no curso de Eletrônica, por volta de 2000 (aos 19 anos), consegui um estágio numa empresa grande, e eles pagavam um salário razoável para um estágio de nível médio. Isso me permitiu convencer minha mãe a me ajudar a comprar um PC que fosse só meu. Enchi o saco e consegui impor minha escolha: um Dell, com configuração bastante avançada pra época. Pentium III, 866 MHz, 64 MB de RAM, HD de 20 GB. Tinha também gravadora de CD, boas caixas de som, monitor de 15 polegadas, mouse com "rodinha", 2 entradas USB, placa de vídeo 3D... Enfim, era tudo o que eu sonhava.

Ele funciona direitinho até hoje (apesar de ter passado por uns dois ou três upgrades), e está no quarto da minha mãe.

Hoje, aos 25 e no final do curso de Engenharia de Computação, tenho um pc com processador AMD Athlon 64, 512 MB de RAM, 4 entradas USB, gravadora de DVD, monitor de 17 polegadas e um teclado bonito, cheio de teclas especiais que eu nunca uso mas que dão toque de modernidade.

E prometo que, daqui a vinte anos, eu volto aqui e conto como terão sido os meus próximos brinquedos de programação.

Chip do tamanho de um glóbulo branco

Dá pra imaginar até onde vai chegar a miniaturização da tecnologia? Uma equipe de cientistas do Instituto de Tecnologia da Califórnia (Caltech) e da Universidade da Califórnia (UCLA) desenvolveu um chip de memória que pode armazanenar 160 quilobits, num espaço do tamanho de um glóbulo branco do sangue.

Eles não dão muitos detalhes, mas afirmam que o dispositivo possui uma densidade de memória de 100 gigabits por centímetro quadrado, nunca antes alcançada. Também afirmam, no entanto, que o chip só poderá ser produzido comercialmente a partir de 2020. (Que pena!)

Pra se ter uma idéia, um chip de 1 x 1 centímetro com esta densidade de memória seria capaz de guardar 100 gigabits de dados, ou seja, 12,5 Gigabytes (GB). Os maiores pendrives que já vi não ainda não passaram dos 4 GB (bom, posso estar falando bobagem. Neste momento alguma empresa pode estar lançando um pendrive de 10 GB do tamanho da cabeça de um alfinete).

Mas o mais interessante, neste caso, nao é a densidade de bytes do chip em si. O bacana é o fato de ele conseguir funcionar com esse tamanho. Usando-se uma regra de três simples (já que pouca gente sabe quanto mede um glóbulo branco), descobre-se que o chip anunciado pelos cientistas americanos tem uma área cerca de 16 / 10.000.000 de centímetro quadrado. Ou 1,6 milionésimo de centímetro quadrado. Dá pra imaginar o que é isso? :)

8 de janeiro de 2007

Teorias e Tempo de Sobra

Por: Raquel Serruya




Teoria da Integral Traficante
Contribuição: Péricles Machado

Conforme certo dia me ensinou Péricles, o terrível... A integral não passa de um traficante. Imaginem os pontos da função, como na verdade pequenos pózinhos. A integral, então, divide o pó, entre os vários níveis da função (que pode ser encarada como área de atuação da integral - a favela).

Ocorre uma grande luta na favela. A luta pelo pó. Os pontos guerreiam, trocam balas, até que restam as
grandes mandantes: as primitivas, a que tem complexo de superioridade (enfim, se acha), e a que tem complexo de inferioridade (mas que luta pelo o que é dela - emo xD). Quando uma subtrai a outra (ou seja, elas se eliminam), temos a verdadeira face da integral. Só sobra o traficante novamente.

As integrais duplas e triplas são grandes organizações, onde também ocorrem eliminações crueis...

Quem dispor de mais informações sobre elas, por favor, nos envie. É muito importante combater o tráfico, principalmente nas provas de Cálculo 2 o_o

O Mundo Como o Conhecemos - Matrix: Você foi feito com que linguagem?
Contribuição: Albert Richard, Péricles e Edson

Teorias afirmam que o Arquiteto, da Matrix, é na verdade o Deitel, mas vertentes dizem que na verdade é o Tanenbaum (pra quem não conhece ainda, ele tem um livro de Arquitetura e Organização de Computadores, e um de Sistemas Operacionais - e um de receitas...).

Teorias também afirmam, que inicialmente, Neo era um ser procedural, que agia de acordo com a Matrix. Depois de um tempo, ele ganhou o domínio dos objetos. E então ele pôde manipular os objetos da matrix com perfeição, como balas, agentes, e, com métodos super classe, ele pôde alterar as regras como gravidade, etc. Temos como exemplo:

public class MatrixCommoner{
private float gravity;
private setGravity(){
gravity = 9.8

(...)

}

public class TheOne extends MatrixCommoner
{
super setGravity(float a){
gravity = a;
}

(...)
}

public class Fight{

public static void main(String args[]){

TheOne neo = new TheOne;
neo.setGravity(0);
neo.blockBullets;
neo.blowUpAgent(Smith);

}

Até o momento, foi descoberta apenas esta parte do código. Mandem mais descobertas!

Teorias afirmam que todos os agentes da matrix foram feitos em assembler. Mas o Agente Smith acabou se tornando muito difícil de se manter, já que precisou de várias atualizações, devido a crises de personalidade superior. Então, ele se tornou dispendioso para a Matrix, que deu um pé na bunda dele. Ele foi embora, triste e desempregado, até que resolveu se renovar. Conheceu um tal de C, e bateu um papo com ele. Então, usando de manipulações de baixo nível, ele absorveu o C. Mas ele queria mais, muito mais. Então ele deu um upgrade para o C++.

A primeira coisa que Smith fez, foi criar um método. Com sua mente maligna e de baixo nível (baixo calão!!!) ele resolveu fazer uma manipulação que copiava todas as características boas de outros agentes, que, ainda em assembler, não sabiam se manter direito para suportar um ataque desse nível (nível médio).

O nível dos agentes comuns era muito baixo, então Smith saia vencendo. E então, ele aplicava um outro método: o da reprodução. Ele apagava todo o código do agente comum, e inseria o seu próprio código. Ele pode até ser considerado como um worm perigossíssimo para a Matrix.

Então, Smith também adquiriu o controle dos objetos, além de poder também fazer manipulações de baixo nível, agora por debaixo dos panos (asm!). Mas ele não era de alto nível, como Neo era. E isso o deixou furioso. E então ele foi para o combate final, estilo Dragon Ball Z.

Mas, segundo me constam fontes confiáveis (Arial Black e Verdana, além de Times New Roman), a luta não foi como descrita no filme. Até hoje encontramos resquícios de Smith, e vários programadores são adeptos de seu culto C++.

Qualquer informação a esse respeito é importantíssima para o futuro da humanidade.

Contribuiram com essas teorias, nossos colegas, Albert, Edson, e Péricles. Palmas a estes bravos homens que conseguiram desvendar o segredo da programação orientada a matanças.




Hehehe, o que a gente não faz quando tá doente em casa...

Beijos! ;)

Raquel (2° Semestre - 2006)

Brasil Telecom já bloqueia acesso ao YouTube

SÃO PAULO - A Brasil Telecom confirmou, esta segunda-feira (8), que está bloqueando o acesso ao site YouTube.

6 de janeiro de 2007

Características básicas de um computador

Um computador. Claro, ué. Qualquer um sabe o que é, certo? Só muda a linguagem (não a linguagem de programação, mas a falada mesmo). Um adolescente que ouve RBD e não perde Malhação um só dia vai dizer:

- Cara, é um troço que tem um monitor em cima ou do lado, e que a gente usa pra imprimir os trabalhos da escola.

Um estudante de vestibular vai dizer:

- Cara, é um troço que tem um monitor em cima ou do lado, e que a gente liga no fio do Velox pra poder pesquisar os assuntos q vão cair no vestibular.

E um engenheiro de computação vai dizer:

- Cara, é um troço que tem um monitor em cima ou do lado, e eu tô afim de um com 2Gb de RAM, HD de 180Gb, memória cache de 2Mb, processador Athlon 64 com núcleo duplo, placa-mãe off-board com slot pci express 16x, 6 portas usb 2.0, saída de vídeo DVI, placa de rede 10/100/1000, interface Bluetooth, e o gabinete tem que ser preto pra sujar menos.

O fato é que um PC (Personal Computer, ou Computador Pessoal) é um "troço" bem mais sofisticado do que parece.

Um PC geralmente é composto de vários módulos que, trabalhando em conjunto, respondem por tarefas que, aos nossos olhos, parecem simples: acesso à internet, cálculo da folha de pagamentos da empresa, tocar músicas, etc. Os módulos mais conhecidos (e necessários) são:

- Monitor de vídeo
- Teclado
- Mouse
- Computador

Na verdade, "computador" aqui se refere àquela caixa (gabinete) onde a gente encontra, por exemplo, o botão de liga/desliga ou a unidade gravadora de cd's.

O teclado e o mouse, assim como alguns dispositivos que não são essenciais ao funcionamento do PC - como Joystick, Scanner, etc -, são chamados de dispositivos de entrada de dados. Sua função é receber comandos do usuário, na forma de letras e números (teclado) ou movimentos e cliques (mouse) e processá-los, repondendo de forma adequada.

O monitor de vídeo é chamado de dispositivo de saída. (Outros exemplos de dispositivos de saída são a impressora e as caixas de som.) Sua função é mostrar o resultado do processamento dos comandos do usuário para o próprio usuário, na forma de imagens (monitor e impressora), sons (caixas de som), etc.

Simples assim? Nem tanto.

Dentro do computador (aquela caixinha de mais ou menos uns 40 centímetros de altura e que pode ser preta, branca ou bege, e até colorida e com luzinhas!) há um sistema extremamente complexo trabalhando a todo vapor.

É como uma grande fábrica: os comandos do usuário são a matéria-prima, o computador é a fábrica em si e as informações na tela do monitor são o produto final.


Mas como é que o computador funciona por dentro?

Acho que essa pergunta demoraria alguns anos - e milhares de posts - pra ser respondida por completo (isso na melhor das hipóteses).

O funcionamento do computador pode ser explicado de várias formas, mas uma visão simplificada pode facilitar bastante seu entendimento. Vamos começar dividindo um computador em peças menores e explicando-as separadamente; depois a gente junta tudo e vê no que dá...


Placa-mãe

A "placa-mãe" é uma placa na qual são instalados os diversos componentes que trocam informações entre si dentro do computador, como a CPU (Unidade Central de Processamento), as memórias RAM e ROM, as interfaces de teclado e mouse, interfaces serial, paralela e USB, além de encaixes (slots) para a instalação das placas de vídeo, som, modem, entre outras.

As placas-mães podem ser do tipo on-board e off-board. A diferença entre elas é que as placas do tipo on-board possuem embutidas em seus próprios circuitos as placas de vídeo, som, modem e/ou rede. Sua vantagem é o preço mais baixo; no entanto, quando uma dessas placas embutidas (por exemplo, a placa de som) queima ou dá defeito, não há como trocá-la. A única solução neste caso é trocar toda a placa-mãe.


Placas de vídeo, som, rede e modem

As placas de vídeo e som são, basicamente, pequenas placas com circuitos eletrônicos responsáveis por gerar sinais de imagem e som, respectivamente, a partir de dados digitais gerados pelo computador.

A placa de rede recebe e envia dados de e para o computador, a partir de outros computadores ou redes de computadores. No caso dos modems, dados também são enviados e recebidos, mas neste caso eles são MOdulados ou DEModulados (daí o nome "modem") para viajarem através de uma linha telefônica.


CPU - Unidade Central de Processamento

É bastante provável que você já tenha ouvido falar desse termo. Mas ele é muitas vezes usado de forma errada; é comum ver técnicos de grandes lojas de informática usando-o para se referir, na verdade, ao conjunto: placa-mãe / memória / CPU / placas de vídeo,som e rede / drive de CD ou DVD / HD / etc.

Na verdade, a CPU (ou "processador") é um componente eletrônico cuja função é receber dados - para simplificar, vamos assumir que esses dados são simples números - e processá-los. Em outras palavras, a CPU é o cérebro do computador.

"Processar", neste caso, significa manipular esses dados, fazendo operações como somas, multiplicações, divisões, etc. A CPU executa essas operações através de instruções que ela recebe de um programa de computador.

Exemplo: quando você abre o Word para digitar um documento, ele passa a enviar, milhões ou até bilhões de vezes por segundo, instruções para a CPU do seu computador, perguntando que letra o usuário digitou, qual a fonte que ele está usando, qual o tamanho da tabulação, em que página do documento a edição está, etc...

(Todas essas informações são representadas pelo computador em formas de "bits". "bits" são, basicamente, estados elétricos do tipo "ligado/desligado", comumente representados por 1's e 0's. Combinando-se bits, pode-se formar todo tipo de representação numérica e textual possível. Um discussão mais profunda sobre este assunto pode ser tomada em outro artigo.)

Tudo é feito de modo tão rápido que parece ser instantâneo. Voltando ao exemplo do Word, se o você digita a expressão "Olá!" no seu teclado, em fração de fração de fração de segundo ela será enviada para o computador na forma de um conjunto de bits, que será por sua vez processado pela CPU e transformado em informação visual, sendo impresso na tela do seu PC (e, se desejado, na sua impressora) na fonte, tamanho e estilo que escolher.


Memória

Mas onde é que o computador armazena os dados antes e depois de processá-los?

Basicamente, há dois tipos de memória dentro de um computador: a memória volátil e a memória não-volátil.


Memória volátil

A memória volátil consiste, geralmente, numa pequena placa com alguns chips eletrônicos que possuem a capacidade de guardar dados. Ela é chamada de memória volátil porque, assim que o computador é desligado, os dados são perdidos. Ou seja: ela armazena dados apenas enquanto o computador estiver ligado.

A memória volátil é também chamada de memória RAM (Random Access Memory). Ela é utilizada pela CPU para armazenar o estado dos programas que estão sendo executados. Exemplo: você está com o Word aberto e resolve abrir também o Excel, para editar uma planilha de custos para a sua empresa. A CPU terá de pedir para o Word parar de mandar instruções, para que ela possa atender ao Excel. Para não perder informações como o número da página que está sendo editada no momento e o próprio texto digitado, o Word salva essas informações na memória RAM.

Quando você terminar de editar sua planilha e clicar com o mouse na janela do Word, a CPU irá recuperar essas informações da memória RAM e o programa voltará a ser executado a partir do ponto onde parou.


Memória não-volátil

Mas suponha agora que você não tenha terminado de editar seu documento e, por isso, ainda não possa imprimí-lo, mas já esteja muito tarde e você precise desligar o computador e ir dormir. Você então clica no menu "Salvar Documento" do Word. Ao fazer isso, você está pedindo para o Word pegar todas aquelas informações e colocá-las agora não na memória RAM, mas no disco rígido do seu PC. O disco rígido é um tipo de memória não-volátil; ela é assim chamada porque não perde os dados quando o computador é desenergizado.

Quando você ligar o seu PC no dia seguinte e quiser voltar a editar seu documento, bastará indicar ao Word em que arquivo ele foi salvo e ele será aberto exatamente do jeito que você o deixou no dia anterior.

Outro tipo de memória não-volátil é a chamada memória ROM (Read Only Memory). Ela consiste em um chip instalado na placa mãe, e armazena informações de fábrica relacionadas à configuração permanente do seu computador. Ela contém um pequeno programinha que é executado pelo computador no momento em que ele é incializado (boot); esse programa testa, configura e inicializa a placa-mãe e todos os dispositivos internos (placa de vídeo, modem, placa de som, memórias, etc) e externos (teclado, mouse, monitor de vídeo, etc) ligados ao computador. É esse programinha que faz aparecer aquele monte de siglas malucas e informações em inglês toda vez que ligamos o PC.

Memórias ROM não podem ser modificadas; elas têm seus dados gravados antes de saírem da fábrica. No entanto, utiliza-se uma combinação de memória ROM com uma pequena quantidade de memória RAM para que informações que não mudam com frequência (como o fuso-horário ou o modelo de disco rígido instalado) possam ser alteradas se for necessário. Para que as informações da memória RAM não se percam na desenergização do computador, uma pequena bateria recarregável é montada na placa-mãe. Quando o PC é desligado, o chip fica sendo alimentado pela bateria; quando ele é ligado, a bateria é recarregada pela fonte do computador.


Dispositivos de armazenamento removível


Às vezes queremos levar nossos dados conosco, seja para copiá-los para outro computador ou para mantê-los seguros caso sejam confidenciais, por exemplo.

Discos rígidos geralmente são montados dentro do computador, e não são fáceis de se retirar com freqüência. Para esse tipo de situação, dispositivos como gravadores de CD's e DVD's, Pen Drives e drives de disquete são utilizados para armazenamento removível de dados. Quando um CD/DVD/disquete é colocado no drive, ou quando um Pen Drive é plugado na interface USB do computador, esses dispositivos se comportam e são vistos como um disco rígido pelo computador. Após serem retirados, podem ser levados para outros lugares e inseridos/plugados em outros computadores, transportando os dados que neles estejam salvos.


Juntando as peças

Quando juntamos todas essas peças (de forma organizada, é claro), temos um poderoso sistema que pode nos ajudar das mais variadas formas.

Um médico pode utilizar seu computador para armazenar e editar diagnóstigos, prognósticos e informações pessoais de seus pacientes; já um administrador de empresas pode se valer de programas que calculem o balanço financeiro do mês e ainda tirem conclusões, automaticamente, sobre quais despesas devem ser cortadas; crianças e adolescentes podem utilizar o PC para jogos e lazer, mas também podem plugá-lo na Internet e começar a procurar aquela sugestão de leitura que sua mãe precisaria procurar lá do outro lado da cidade.

Enfim, um computador é basicamente uma máquina que nos ajuda a viver. E como ajuda!