Aeroporto de Mosquito

BONNERTROLLs, Careca do Uchoa confundido com Capacete



Me lembrei daquela música... [...] Aeroporto de mosquito, capacete espacial O cara só tem cabelo na nuca e na lateral Hoje é que teto de fusca, cabeça de lua cheia Se você não se cuidar, vai cai o resto da teia [...] HAHAHAHAHUUUHHAHAHAHAHA

Contador de Caracteres

Nestes tempos de inscrições de trabalhos científicos em feiras/salões de pesquisa como o SAPS, sempre é bom ter um contador de caracteres por perto para ver se o resumo está dentro do tamanho aceitável, no caso do SAPS fica entre 800 e 3k caracteres.

Digite o texto/resumo na textarea/caixa abaixo:



Quantidade de caracteres: 

Pessoal, eu vou abrir meu coração, vocês tem noção de quantas linhas de código foram necessárias para fazer este contador de caracteres? Falando só em Javascript?

// função que conta os caracteres
function countChars()
{
document.getElementById("tx").value = document.getElementById("x").value.length;
}

É pessoal, o negócio não é fácil não. Abraços :D

Sistemas Operacionais Parte II

SISTEMAS MULTITAREFA - Resumão

 - PROCESSO: dinâmico, em memória RAM, ocupa área de código + dados + pilha de memória
      x
 - PROGRAMA: estático, em memória secundária, ocupa só o espaço do código

 - BCP: Bloco de Controle de Processo -
      x
 - PCB: Pilha de Controle de Processo -

Existem duas abordagens nos SO multitarefa, sistemas cooperativos e preemptivos.

Nos cooperativos é determinado um tempo igual para executar cada tarefa, se há 20 processos rodando e o ciclo é feito em um segundo, cada um vai receber 1/20 de segundo.

Nos preemptivos nem todos são iguais, alguns tem prioridade maior do que outros, iniciando pelos que rodam no modo núcleo. no windows existem 32 filas de prioridade, 16 para modo núcleo e 16 para modo usuário. Processos que usam mais processamento, mais tempo processando, vão subindo a prioridade e ganham cada vez mais tempo para processar, caso contrário sua prioridade cai e consequentemente tem cada vez menos tempo para executar quando chega sua vez.

Interrupções: evitar busy waiting, que é quando um processo precisa esperar terminar uma tarefa, gravar dados no HD por exemplo, o processador fica passando pelo processo sem que o mesmo tenha algo para processar perdendo seu tempo. Para evitar perder tempo estes processos são deixados de lado até o momento em que a tarefa (gravar HD) seja concluída, quando isso acontece o HD faz uma interrupção, que serve para fazer o processador voltar a executar o processo. As interrupções são numeradas, a que tiver valor menor tem prioridade maior. Se tiver valor 0 (zero) é a RTC, de maior prioridade, Real Time Clock, que é o relógio. Esta interrupção RTC é feita a cada intervalo fixo de tempo e serve para o processador saber a hora de parar de executar um processo e ir para outro.

Dentro do Gerenciador de Dispositivos há uma opção para "Exibir recursos por tipo" no Windows para ver as prioridades de execução das interrupções, minha placa de vídeo estava com prioridade (-2), achei estranho este windows...

Prioridades de Interrupções do Meu Note
Timesharing compartilha tempo de processamento entre diversos terminais burros.

Ciclo de Vida de um Processo -> Estudar que vai cair na prova, tem que saber.

Ciclo vida processo utilizando 5 estados
O primeiro ciclo de um processo é sempre de processador, mas durante sua vida um processo pode ter dois estados, processando ou aguardando entrada/saída de dados. Processos que fazem muito processamento são chamados de CPU BOUND e ficam muito tempo processando. Processos que fazem grande movimentação de dados são I/O BOUND e ficam pouco tempo processando e logo voltam a esperar uma entrada ou saída de dados. A tendência é os CPU Bound irem subindo sua prioridade pois ficam mais tempo processando e o I/O Bound cair na fila de prioridade.

Qual a sequencia que um processo sai do estado de bloqueado? Quando dispositivo/periférico diz que terminou a tarefa.

Chaveamento de contexto: o processador precisa estar preparado/organizado da mesma maneira que estava quando parou de processar determinada tarefa para poder continuar o processamento. Então o chaveamento é salvar o contexto antes de sair de uma tarefa e ir para outra E carregar o contexto para a próxima tarefa a ser executada. Assim as tarefas "pensam" que estão sendo executadas sem interrupções. Quem faz este trabalho é o chaveador de contexto.

Buffer e Cache servem para minimizar gargalos de velocidade, já leu a meta? A diferença entre buffer e cache é que o Buffer, logo após ser utilizado é limpado/apagado memória, exemplo impressoras. Já o cache, enquanto tem espaço ele vai deixando tudo armazenado, quando começa encher vai tirando o que está a mais tempo sem ser utilizado.

Sistemas Operacionais Parte I

SISTEMAS OPERACIONAIS - Minhas Anotações da Aula 1 - Prof. Helmuth

No início não havia sistemas operacionais nas máquinas, o primeiro sistema que surgiu era um gerenciador de fila para tarefas a serem executadas, era mono tarefa e monousuário. Este sistema ajudava pois antes era necessário que um programador/cientista ficasse monitorando o computador para que quando terminasse de executar uma tarefa fosse iniciada a próxima, então este SO fazia isso automaticamente e aproveitava melhor a capacidade de processamento.

A segunda evolução proporcionada pelos sistemas operacionais foi fazer executar mais de uma tarefa ao mesmo tempo, tornado-se multitarefa, isso levou vários anos para ser desenvolvido, mas foi um grande avanço na área da computação. Nesta segunda geração o SO torna-se um gerente de recursos, gerenciando memória, armazenamento em disco ou fitas, processamento entre outros. Agora os programas não conversam mais com o hardware e sim com o sistema operacional para alocar memória etc.

Um problema dos sistemas operacionais eram escritos para determinadas máquinas e quando você trocava de hardware os softwares precisam ser reescritos pois não funcionavam mais. A primeira a criar uma solução para este problema foi a IBM com o Multics que dava bastante pau, mas permitia trocar de hardware e manter os softwares, geração 360, depois veio o Unics que mais adiante deu nome para os Unix.

A terceira geração de S.O. além de serem multitarefa, podiam ser acessados por vários usuários, ou seja, eram multiusuário. Nesta geração ainda dominavam os computadores de grande porte.

Finalmente na quarta geração de SO vieram os microcomputadores, foi necessário desenvolver um novo sistema operacional, a IBM que dominava nesta época não conseguiam criar um sistema para máquinas com tão pouco processamento, eles estavam acostumados a pensar grande. Pra resolver a IBM contratou uma empresinha chamada Microsoft, que tinha comprado um SO para microcomputador recentemente e estava concluindo ele. Nesta geração os SO precisavam rodar com poucos recursos e precisam ter mais usabilidade para que usuários domésticos pudessem usar. Em 84 a Apple revolucionou o mercado lançando o Macintosh, com ambiente gráfico, mouse, disquete 3/2 entre outros, melhorando muito a usabilidade, foi o primeiro computador que bastava tirar da caixa e ligar na tomada para usar, os outros praticamente precisavam de um engenheiro do lado pra instalar, se você pesquisar pode ver o comercial no youtube.

A quinta geração é a geração dos sistemas operacionais modernos, que são os que usamos atualmente. Contam com acesso a rede, ambiente gráficos, são multitarefa e multiusuário e possuem uma alta usabilidade.


Porque estudar essa história?

É interessante estudar a história dos sistemas operacionais porque essa história se repete sempre que é lançado algum hardware massivamente como quando começou a ser utilizado computadores pessoais, eles tinham pouca capacidade de processamento e por isso os sistemas operacionais eram bem básicos, com a evolução da capacidade de processamento nos PCs pode-se criar sistemas operacionais multitarefa, depois multiusuários etc. Da mesma maneira os celulares, logo que foram lançados nem sistema operacional tinham, apenas a aplicação que controlava uma lista de contatos e permitia receber e fazer chamadas. Hoje os celulares já contam com sistemas multitarefa e já se preocupa com a segurança nestes sistemas, temos SO's muito bons como Android e IOS conectados com a Internet e sujeitos a pegar vírus.

Atividades
Atividades

Observação: respostas mal e mal anotadas durante falas do professor, as gerações variam conforme o autor, seguimos a classificação do Tanenbaum nestas respostas.


1) Defina Sistema Operacional.
Um sistema operacional deve gerenciar e distribuir recursos de hardware entre os processos que estão rodando, também deve funcionar como uma camada intermediária entre o hardware e o usuário para facilitar o desenvolvimento de programas.

2) O que é e qual a diferença entre o modo núcleo e o modo usuário dos programas do Sistema Operacional?
No modo núcleo o processo rodando tem acesso a toda memória e a todos comandos que o processador dispõem. Os processos comuns rodados pelo usuário rodam em modo "usuário", só podendo acessar a área da memória que foi definida para ele e não tem acesso a todos os comandos do processador. Alguns sistemas operacionais rodam em modo "real" e outros em modo "protegido". EM modo real são sistemas operacionais mais antigos que não utilizam o recurso de escolher entre modo núcleo ou usuário, então todos os processos tem acesso a todo o hardware. Nestes sistemas que rodam modo real, antigos, era muito comum a tela azul porque muitas vezes um processo do usuário acabava tentando utilizar espaços da memória que eram dos processos do sistema dando erro, tratando de Microsoft, este problema foi resolvido a partir do windows 2000, se pegar o win98 e rodar um programa C alocando bastante memória (malloc) provavelmente verá  uma tela azul de erro, nos windows mais novos isso gera a mensagem de erro que o programa tentou executar uma operação ilegal e é fechado antes da tela azul.

3) Que tipo de complexidade de hardware o sistema operacional esconde? Dê um exemplo. 
 Na hora de gravar um arquivo, o sistema operacional esconde do usuário as trilhas do HD em que está gravando os dados etc

4) Quais são as principais características da primeira geração dos S.O.?
 Painéis de programação sem sistema operacional.

5) Quais são as principais características da segunda geração dos S.O.?
 Sistema em lote, S.O. funcionava como gereciador de filas de programas.

6) Quais são as principais características da terceira geração dos S.O.?
 Entra conceito de circuito integrado e torna-se multitarefa, vários programas rodando ao mesmo tempo.

7) Quais são as principais características da quarta geração dos S.O.?
 Computadores pessoais, preocupação com usabilidade.

8) O que diferencia um S.O. de computador de grande porte para um S.O. de servidor?
S.O. para computador de grande porte (grande mesmo, imagina o pc que roda o banco de dados do SISBB - Banco do Brasil) processa muitas transações, normalmente pequenas, precisa gerenciar uma capacidade gigante de memória, muitos terabytes de memória RAM. Quando se liga uma máquina dessas levam horas carregando as memórias, cache etc, até pouco tempo não podia ser Windows simplesmente porque nenhuma das melhores versões do windows conseguia gerenciar tanta memória, parece que agora há uma versão Windows HPC Server... Então, são sistemas operacionais especiais, normalmente versões modificadas de SUSE, RED HAT, SOLARIS etc para conseguir gerenciar esta enorme quantidade de memória, processadores e executar as milhares de transações executadas em paralelo. Estes SO não podem travar/trancar/dar pau e também não podem necessitar ser reiniciados pois levaria muito tempo para religar.

SO para servidor precisam ser bons em serviços de rede como servidor de arquivos, e-mail, DNS etc. As tarefas podem ser bem variáveis, ou seja, o tamanho das transações variam e existem diversos sistemas para isso, Windows Server, Ubuntu Server, Red Hat etc.

9) No que os S.O. de tempo real são diferentes de todos os demais?
Normalmente são linux modificados, são diferentes dos outros no fato de que estes garantem um tempo máximo para a execução. Nos SO normal há um sistema de prioridade nos processos, sendo que a execução pode ser postergada por um tempo indeterminado, já nos SO de tempo real você tem uma certeza sobre essa demora para execução. No ethernet também há este problema pois o tempo de envio dos dados é incerto, pesquise CSMA-CD, então em problemas que exigem S.O. de tempo real normalmente utilizam uma rede Token Ring onde os tempos de comunicação podem ser determinados.

10) Qual é a categoria dos SO dos palmtops ou handhelds?
Embarcado

11) Um SO pode ser independente de hardware, ou seja, funcionar em qualquer plataforma?
Não. Um SO é escrito para um processador específico, normalmente essa parte é escrita em Assembler, e os comandos Assembler podem variar conforme o processador. O que pode ser mais universal é que os SO normalmente são escritos em C e existem compiladores de C para diversos processadores.

12) O que é um "barramento" de hardware?
Proporciona comunicação em CPU, memória e demais dispositivos do hardware.

13) Diferencie organização "pipeline" de superescalar.
Pipeline é quando faz tipo uma linha de produção para executar as tarefas, superescalar  tem várias unidade de execução, podendo executar paralelamente.

14) Qual é o principal componente de hardware de um computador?
O Processador.

Livro: A Meta

Esta semana li mais um excelente livro, A Meta, de Eliyahu M. Goldratt e Jeff Cox. Este livro divulgou a Teoria das Restrições, foi mundialmente reconhecido com mais de 2 milhões de exemplares vendidos e adotado em mais de 200 faculdades. É uma leitura fácil, o livro foi escrito meio que na forma de romance e também, adotando um pouco do método socrático, todo o livro se desenvolve a partir de perguntas, onde o personagem principal Alex precisa encontrar as respostas e tentar implementar em sua fábrica e em sua vida.

Durante o livro Alex precisa atingir a Meta, fazer sua fábrica ganhar dinheiro, para isso conta com ajuda de um professor de física chamado Jonah. No final do livro, Alex e sua equipe consegue melhorar os resultados da fábrica e resolvem analisar quais os passos necessários para que eles conseguissem isso.

PASSO 1: Identificar o gargalo do sistema.
PASSO 2: Decidir como explorar o gargalo.
PASSO 3: Subordinar tudo à decisão anterior.
PASSO 4: Elevar os gargalos do sistema.
PASSO 5: Se, em um passo anterior, um gargalo for superado, voltar ao passo 1.

Após isso, Alex tenta analisar mais profundamente tudo o que fizeram e conclui que um gerente deve ter a capacidade de responder a algumas perguntas básicas para entrar em um processo de melhoria contínua na sua empresa, são elas:

1. O que mudar?
2. Para o que mudar?
3. Como causar a mudança?

Outros pontos que considerei muito interessantes no livro foram os conceitos de flutuações estatísticas e de eventos dependentes. Estes são fenômenos encontrados em qualquer fábrica e muitos outros lugares também, analisando essas teorias e também a questão das restrições, podemos encontrar boas soluções para empresas que estão com seus trabalhos atrasados e baixas receitas. Também na questão de metodologias de avaliação e contabilidade de custos, não chega a dar uma solução definitiva, mas mostra que são formas ineficazes de se avaliar o desempenho da empresa.

Google Shopping ou Google Offers

Hoje apareceu algo novo para mim ao entrar no Google, o Google Shopping, como sou curioso fui logo clicando e... não é que a google criou seu e-commerce!
Obtenha ofertas arrasadoras dos melhores lugares para comer, comprar e jogar. Inscreva-se agora no Google Ofertas.
Resolvi me inscrever para ver como tudo funciona e achei bem interessante o modo como as ofertas são exibidas, primeiro vem as ofertas mais populares da semana e logo abaixo algumas ofertas de produtos relacionados a escola, talvez por ser início do segundo semestre.
Ofertas
Também é interessante ver que é possível dar notas para os produtos e ver todas as lojas (stores) que pode ser comprado o produto, vamos ver os detalhes.
Detalhes de um produto
Na página de detalhes pude perceber que o preço exibido nas ofertas é o menor de todos, mas ainda podemos olhar o preço em outras lugares e olhar a nota atribuída pelos outros usuários para cada lugar. Rolando a página um pouco mais para baixo temos opções de dar nossa nota ao produto, fazer comentários sobre o produto e ver outros produtos semelhantes.
Voltando para as ofertas é exibido os produtos que você olhou recentemente.

E pra fechar o post, compras coletivas por região, estava demorando para Google lançar isso, agora já tem pra diversas cidades americanas, mas você pode cadastrar seu e-mail para ser avisado quando estiver disponível para sua cidade.


Uma das coisas legais é a integração com o Google Maps para verificar a localização da lanchonete ou loja, também uma breve história sobre o lugar. Realmente, a Google surpreende sempre com produtos simples, intuitivos e muito bons.

Introdução a Computação Gráfica

Hoje tivemos segundo encontro (primeira aula) de Computação Gráfica, segue minhas anotações.

O software utilizado nas aulas será o Autodesk 3ds Max 2010, segundo escrito aqui é um software de modelagem, animação, renderização e composição 3D. Também foi comentado sobre o SolidWorks mais específico para setor de metal mecânica e o AutoCAD que é mais geral, pode-se criar programas próprios utilizando autoLISP. A idéia do professor nesta primeira aula foi de nos passar algumas idéias básicas para nós entendermos como funciona as animações e objetos 3D que vamos criar no decorrer do semestre.

Conceito do Wikipedia: A computação gráfica é a área da computação destinada à geração de imagens em geral — em forma de representação de dados e informação, ou em forma de recriação do mundo real. Ela pode possuir uma infinidade de aplicações para diversas áreas, desde a própria informática, ao produzir interfaces gráficas para software, sistemas operacionais e sites na Internet, quanto para produzir animações e jogos.

História / Evolução

Em 1950 tivemos o inicio da CG (Computação Gráfica), com um tudo de raios catódicos ligado à um computador (no MIT pra variar), já em 1959 surgiu o termo CG criado por Verne L. Hudson, quando ele coordenava um projeto para a Boing de simulação de fatores humanos em aviões.

Em 1962 no MIT o projeto TX2 com Ivan Sutherland usava um computador para fazer desenhos em sua tese de doutorado, em 1970 surgem os primeiros monitores a varredura e em 1980, CG ainda era uma área pequena e sem sucesso pois o hardware era muito caro, se tornando mais popular com a popularização dos PC, Personal Computers.
 
O filme Toy Story da Disney foi um marco para indústria cinematográfica, o primeiro filme feito totalmente utilizando computação gráfica 3D.

Toy Story

Alguns outros filmes que abusaram de CG foram o Avatar e Beowulf.

Avatar
Beowulf
Sub-áreas

- Síntese de Imagens: criar uma imagem do zero no computador, com elevado grau de realismo.
- Processamento de Imagens: envolve técnicas de transformação de imagens, em que tanto imagem original quanto imagem resultado apresentam-se sob uma representação visual.
- Análise de Imagens: não transforma imagem, só analisa imagem, procura obter especificações dos componentes de uma imagem a partir da sua representação visual.
- Visualização de dados: usa técnicas da CG para representar informação, de forma a facilitar o entendimento de conjuntos de dados numéricos de alta complexidade como meteorologia e, segundo o professor até análise e previsão da bolsa de valores, agora me interessei :D.

Aplicações

- Realidade Virtual: tecnologia para criar a sensação de imersão para o usuário.
- Realidade Aumentada: sobreposição de objetos virtuais tridimensionais com o ambiente real.
- Realismo: representação digital da realidade com a idéia de enganar as percepções humos, virou sinônimo de Computação Gráfica Técnica.
- Jogos: cada vez mais realistas...
- Cartoons: apresentações 2D e 3D, sem compromisso com o realismo, é uma variante de animação.
- Animação: são frames, ligados entre si, em alta velocidade onde há uma ilusão de movimento contínuo, tipo flash quadro a quadro... a partir de 24 frame por segundo o olho humano não percebe os quadros passando.
- Simulações: programas especialistas em criar "condições especiais", por exemplo o Solid works possui diversos plugins para metais, podendo configurar por exemplo grau de resistência a calor ou força em uma barra de ferro com furos, plugins para imitar líquidos em movimento etc.
- Arte e publicidade: manipular imagens 2D e 3D, bitmap ou vetoriais.
- CAD: Computer Aided Design - Projeto Assistido por Computador, utiliza técnicas gráficas para auxiliar na resolução dos problemas associados ao projeto.
- CAM: Copmuter Aided Manufacturing - Fabricação Assistida por Computador, converte o projeto CAD em comandos para controlar o fresamento, tornamento e corte (laser, plasma e oxicorte) e demais máquinas compatíveis.
- Medicina: mesa de cirurgia virtual para treinar operações, exames etc.
- Imersão: vem da realidade virtual, cria ilusão de presença, estar em outro lugar que não seja o real, muito usado em jogos digitais.
- Interfaces: GUI, botões, ícones etc nos sistemas operacionais. Gnome, KDE...

Tendências

- Produtos usando imersão como jogos e simuladores, exemplo http://goo.gl/1OpY0, outros melhores com kinnect, que também pode ser usado no tópico seguinte: computação ubíqua.
- Computação Ubíqua, desaparecer com a imagem do computador, usar sem perceber, próteses etc, experimento pesquisar no google. Utiliza-se interfaces naturais aos seres humanos, como fala, gestos, presença, movimentos faciais e olhos. Requer sistemas inteligentes ao ambiente e ao contexto que esta sendo executado. O equipamento deve ter um bom processamento, ser miniaturizados, ter uma interface de rede com e sem fio, tudo isto por preços compatíveis.

Links úteis by Google para introdução
http://www.inf.pucrs.br/~pinho/CG/Aulas/Intro/intro.htm
http://pt.wikipedia.org/wiki/Computa%C3%A7%C3%A3o_gr%C3%A1fica

Tutoriais grátis que encontrei Goooogle, deve ter muito mais lá!
http://usa.autodesk.com/adsk/servlet/index?siteID=123112&id=6837309&linkID=9241175

http://www.sotutorial.com/index.php/category/tutoriais-3d-max/
http://jccad.blogspot.com/search/label/Autodesk%203ds%20Max
http://tutorial3d.com.br/
http://www.allanbrito.com


Nos Bastidores da Disney

Capa do livro

" - Já conhecemos os sete segredos do suceso da Disney: concorrente é qualquer empresa com a qual o cliente o compara; fantástica atenção aos detalhes; todos mostram entusiasmo; tudo mostra entusiasmo; múltiplos pontos de escuta; recompensa, reconhecimento e comemoração; e todas as pessoas são importantes - disse Mort" (p. 102, 1998)

Li este livro de Thomas K. Connellan essa semana pois é uma das leituras obrigatórias da cadeira de Sistemas de Produção, prof. Lovato, e achei muito interessante. Nunca imaginei que alguma empresa pudesse ser tão boa em atender um cliente, fiquei morrendo de vontade de visitar a Disney enquanto lia o livro, são tantos os detalhes sobre a forma como tudo é feito pelos "membros do elenco", imaginheiros e os 45 mil responsáveis pela limpeza do local, tudo mostra entusiasmo e nos faz repensar nossas atitudes dentro de nossas empresas.

O livro conta a história de 5 pessoas que visitam a Disney para aprender como ela faz para que 70% dos seus "convidados" voltem a visitar a DisneyWorld, assim inicia a história da "gangue dos cinco". Ao longo do livro são apresentadas as 7 lições que fazem a Disney ter tanto sucesso, exemplos de como aplicar as lições, e também muitas curiosidades interessantes sobre o parque e as atrações.

Mapa. Clique na imagem para ampliar.
Uma das coisas que achei interessantes é o fato de apontar a direção com dois dedos, além de ser 'agressivamente gentil', há outros 2 motivos explicados mais adiante no livro. Primeiro, é mais fácil manter o braço reto com dois dedos, o que facilita a orientação. Segundo, é que em algumas culturas não é educado apontar com um dedo, chegando mesmo a ser considerado um insulto. É apenas um pequeno detalhe, mas importante.

Múltiplos pontos de escuta
Bom, fica aqui a dica de livro para líderes, empresários e pessoas que pretendem visitar a Disney, o livro é pequeno mas muito interessante, boa leitura!

IBOVESPA 04/08/2011


A palavra "crise" em chinês é composta por dois ideogramas: o primeiro, símbolo do perigo; o segundo, da oportunidade.

Alguns conceitos fundamentalistas interessantes:

 - VPA: Valor Patrimonial por Ação, é o valor do Patrimônio Líquido dividido pelo número total de ações.

 - P/VP: Preço da Ação divido pelo Valor Patrimonial (VPA), se estiver abaixo de 1 quer dizer que a ação está sendo negociada no mercado abaixo do seu valor real, ou seja, está barata.

 - P/L: Preço da Ação divido pelo Lucro por Ação, é o número de anos que se levaria para receber o capital investido na compra considerando que o lucro distribuído permaneça constante.

 - Liquidez de Ações: volume diário médio negociado nos últimos 2 meses, importante também.