06/09/2011

Ganhar dinheiro na net

Como Funciona os Métodos para Ganhar Dinheiro:
  • Método para ganhar dinheiro com venda de infoprodutos (apostilas, ebooks, cursos, video-aula).
  • Método para ganhar dinheiro com Blogs e Sites (Anunciantes e Links Patrocinados).
  • Método para ganhar dinheiro com programas de afiliados e marketing multinivel (indicação de produtos e serviços).
  • Método para ganhar dinheiro com comércio eletrônico ou franquias de lojas virtuais (necessita investimento).
  • Método para ganhar dinheiro com serviços de hospedagem de sites (necessita investimento).

 

O que é um programa de afiliado? Resumindo: é um sistema de indicação de produtos e serviços de um site de uma empresa ou loja através da internet. Quando você se afilia (fazendo um pequeno cadastro) você se torna um afiliado da empresa/loja e está apto a ganhar comissões toda vez que indicar um amigo ou pessoas na internet para comprar um determinado produto ou serviço.

 

http://www.6markets.com/

05/07/2011

O B-A-BA da programação

 

Existem dois tipos de linguagens de programação: as de baixo nível e as de alto nível. Os computadores interpretam tudo como números em base binária, ou seja, só entendem zero e um. As linguagens de baixo nível são interpretadas diretamente pelo computador, tendo um resultado rápido, porém é muito difícil e incômodo se trabalhar com elas. Exemplos de linguagens de baixo nível são a linguagem binária e a linguagem Assembly.

Exemplo de código em Assembly:

MOV r0, #0C ;load base address of string into r0
LOAD: MOV r1,(r0) ;load contents into r1
CALL PRINT ; call a print routine to print the character in r1
INC r0 ;point to next character
JMP LOAD ;load next character

Como pode-se notar, é uma linguagem bastante complicada.

Já as linguagens de alto nível são mais fáceis de se trabalhar e de entender, as ações são representadas por palavras de ordem (exemplo faça, imprima, etc) geralmente em inglês, foram feitos assim para facilitar a memorização e a lógica. Elas não são interpretadas diretamente pelo computador, sendo necessário traduzí-las para linguagem binária utilizando-se de um programa chamado compilador.

Quando programamos em uma linguagem de programação de alto nível primeiramente criamos um arquivo de texto comum contendo a lógica do programa, ou seja, é onde falamos ao computador como deve ser feito o que queremos. Este arquivo de texto é chamado de código-fonte, cada palavra de ordem dentro do código-fonte é chamada de instrução. Após criarmos o código-fonte devemos traduzir este arquivo para linguagem binária usando o compilador correspondente com a linguagem na qual estamos programando. O compilador irá gerar um segundo arquivo que chamamos de executável ou programa, este arquivo gerado éinterpretado diretamente pelo computador.

Existem algumas linguagens de programação que não necessitam de compiladores, como o PHP, uma linguagem dedicada à produção de websites dinâmicos, como o InfoEscola. As instruções em PHP são compiladas e executadas ao mesmo tempo.

Exemplo de código PHP (alto nível)

print (“Bem vindos visitantes do InfoEscola!”);
print (” Vamos contar até 50:”);
for($x=1;$x<=50;$x++) {
print $x;
print ” “;
}

if(4 == 2) {
print (“Fim do mundo! 4 é igual a 2!”);
} else {
print (“Ufa! 4 é diferente de 2″);
}
?>

Cada linguagem de programação é diferente da outra, contendo palavras-chave próprias. Exemplos de linguagens de alto nível são C++, Java, C#, Delphi (Pascal), PHP, Visual Basic, etc.

 

Propriedades desejáveis em uma Linguagem de Programação (LP)

Legibilidade

Esta relacionada na facilidade de leitura dos códigos. Quanto mais fácil for conseguir ler o programa, mais fácil será entender o código e também descobrir erros na programação. Uma LP com baixa legibilidade torna o seu aprendizado mais difícil.

Alguns exemplos:

  • Linguagens que usam Goto normalmente reduzem a legibilidade porque nesse tipo de programação, os programas possuem fluxo de controle e não obedecem a padrões regulares. Tornando difícil acompanhar e entender o que eles fazem.
  • Uso de mesmo vocábulo da LP para denotar diferentes comportamentos dependendo do contexto é prejudicial à legibilidade e entendimento da LP

         Ex:

      • VISUAL BASIC:
        • Uso do operador "=" com sinal de atribuição e comparação.
        • Chamada a funções e procedimentos com passagem de parâmetros. De acordo com o contexto é necessário o uso de "(".
      • C/C++:
        • Uso do "*" denota diversas coisas, como sinal multiplicador, passagem por referencia, declaração de ponteiros.

 

  • Efeitos colaterais também são prejudicais à legibilidade. Eles causam mudanças adicionais no estado do programa durante a avaliação de uma determinada expressão ou a execução de um comando ou subprograma.

           Ex:

      • VISUAL BASIC:
        • A não necessidade de informa nos parâmetros de procedimentos e funções passagem por valor ou referência. Adotando como padrão passagem por referência podendo ocasionar efeito colateral indesejável.
        • Marcadores de blocos de comandos como o "Begin End" (Pascal e Delphi) e o "{ }" de C/C++ e JAVA, também podem causar confusões na leitura do programa quando existem vários comandos de repetição e seleção aninhados. Além disso, a não obrigatoriedade de usar um marcador específico para indicar onde o comando "if" do C se encerra possibilita a escrita de comando "ifs" aninhados difíceis de serem entendidos.
  • Algumas LP's adotaram postura altamente questionáveis com relação a legibilidade. FORTRAM, por exemplo, permite que identificadores especiais como DO, END, INTEGER e REAL sejam também nomes de variáveis.

Redigibilidade

Esta relacionada na facilidade em escrever programas. A redigibilidade de programas pode conflitar com a legibilidade. C permite a redação de comandos complexos, mas que podem não identificar de maneira muito clara a sua funcionalidade.

As LPs com tipos de dados limitados requerem o uso de estruturas complexas, o que acaba dificultando a redação de programas. A falta de declaração recursiva e ponteiro em Visual Basic acaba limitando o seu uso para implementar programas com uso de estruturas de árvores, listas e etc

Outro ponto na falta de redigibilidade no Visual Basic esta relacionado na declaração de variáveis, onde não é possível declarar várias variáveis de mesmo tipo especificando o tipo somente uma vez.

Ex: Dim i, j , soma as integer ( Nesta declaração somente a variável soma é do tipo integer, as demais i e j são variant, o que além de falta de redigibilidade também temos falta de legibilidade podendo ocasionar efeito colateral, onde i e j podem assumir qualquer tipo de valor).

15/04/2011

Natural Building

 

Livro disponível online sobre Construção natural - soluções sustentáveis. Explica tim-tim por tim-tim como se fazem estas casas lindas de morrer!

Outros links:

http://www.almfarms.org/altbuild.html

http://greenbuildingelements.com/2008/12/01/hand-build-an-earth-sheltered-house-for-5000/

http://www.kleiwerks.org/2010/12/ashevillage-institute-3-week-natural-building-extravaganza/

http://www.arq.ufsc.br/arq5661/trabalhos_2004-1/arq_terra/index2.htm

http://www.ecocentro.org/bioconstruindo/

http://www.greenhomebuilding.com/

Agricultura vertical

 

Na mesma linha de pensamento da economia baseada em recursos, o Dr. Dickson Despommier, professor de saúde pública na Universidade Colúmbia, em Nova York, surge com uma ideia inovadora no que diz respeito à agricultura, colocando a permacultura numa perspectiva vertical!

O reaproveitamento do espaço físico, da água e da energia solar e eólica, recorrendo a avançadas tecnologias de arquitectura, design e engenharia, são os pilares desta engenhosa proposta! Genial!

Site: http://www.verticalfarm.com/

urban-farm-plants-vegetables

 

07/03/2011

Designing Permacultura

 

Hoje em dia precisamos reinventar conscientemente formas de vida em comum que sejam harmoniosas e cooperativas. Por isso, a sementeira, o cultivo e a construção de comunidades e redes de comunidades são passos fundamentais na direcção de um futuro mais habitável e sustentável. Como típicos centros de vida e de aprendizagem, onde pessoas de diversas culturas, diferentes linhas espirituais e situações económicas exploram a comunhão sinérgica de abraçar juntos a diversidade, as eco aldeias inspiram uma nova cultura global de paz e prosperidade. Ao gerar uma base cada vez mais ampla de apoio mútuo, respeito e amabilidade, podemos liberar o potencial e o talento humano para que trabalhem em beneficio de todos. Se somos capaz de criar uma cultura de paz entre nós, a começar por nossos grupos sociais locais, então qualidades com a amabilidade, a confiança e a boa vontade terão uma oportunidade de crescer e se multiplicar

http://www.nelsonavelar.com/permacultura/permacultura_sp.htm

http://www.nelsonavelar.com/permacultura/permacultura_sp.htm

http://www.ecolivingportugal.org/category/permaculture

http://quebradadomeio.com/content/o-projecto

22/02/2011

Aprender SEO

Este artigo do site Six revisions explica como utilizar estratégias de SEO para optimizar sites e aumentar o tráfego de visitas a esse site.

http://sixrevisions.com/content-strategy/user-friendly-seo/

27/01/2011

SEO e Internet Marketing

 

SEO - Otimização de Sites é o conjunto de estratégias com o objetivo de potencializar e melhorar o posicionamento de um site nas páginas de resultados naturais (orgânicos) nos sites de busca.

Estratégias de SEO podem melhorar tanto o número de visitações quanto a qualidade dos visitantes, onde qualidade significa que os visitantes concluem a ação esperada pelo proprietário do site (ex. comprar, assinar, aprender algo). A Otimização para Sistemas de Busca normalmente é oferecida como um serviço profissional autônomo, ou como parte de um projeto de Webmarketing e pode ser muito eficaz quando incorporado no início do desenvolvimento do projeto de um website.

Em termos de competição, um termo de busca palavra-chave com grande volume de resultados dificulta o posicionamento através programação para busca orgânica, podendo ser necessária uma ação de anúncios pagos ou links patrocinados; dependendo do número de resultados o custo de uma estratégia de marketing de internet pode ser bem expressivo. Um bom posicionamento nos resultados orgânicos de busca pode fornecer o mesmo tráfego almejado e ter um custo potencialmente mais baixo. Os proprietários de websites devem optar por otimizar seus sites para a busca orgânica, se o custo do otimização for menor do que o custo da publicidade paga.

In: Wikipédia

19/01/2011

How The Leopard Got His Spots


Profissões de Futuro - Web Designer

O webdesigner deve estar preparado para criar projetos, layouts, banners e até mesmo alguns scripts e ajustes na estrutura do produto web no qual ele estiver trabalhando.

O trabalho do webdesigner não se resume a criar apenas as interfaces. Muitos deles podem desenvolver aplicações web, afinal, muito do webdesign passa por linguagens de marcação e programação. Entretanto, é importante não confundir as atribuições desses profissionais com as dos desenvolvedores web. Os webdesigners têm como maior preocupação desenvolver uma interface sólida que garanta o perfeito entendimento do conteúdo e a qualidade de navegação. Os focos são bastante diferenciados, porém nada impede ambos de acumularem as funções.

QUAIS PROGRAMAS ELES USAM?

Para ser um bom webdesigner você precisa saber linguagens de programação como HTML, XML, XHTML, linguagens de folhas de estilo (CSS, XSL), assim como algumas formas de script como JavaScript, PHP e ASP. Não é necessário saber as essências dessas linguagens, porém é bom tê-las bem trabalhadas para casos em que o projeto envolva fazer alterações estruturais em templates e outros usos. Já que haverá a necessidade de saber usar PHP e ASP, é importante saber como trabalhar com bancos de dados MySQL e PostgreSQL.

Em termos de software, o webdesigner irá utilizar técnicas do design aplicadas em softwares como o Adobe Photoshop, Illustrator e Fireworks para gerar imagens; Adobe Dreamweaver para trabalhar com CSS e linguagens de programação e Corel Draw para trabalhar com imagens em vector. Esses programas oferecem precisão e facilidade para a compreensão de ferramentas, filtros e controles que garantem um bom aproveitamento da técnica aprendida na faculdade. Contudo, existem alternativas gratuitas aos editores de imagem, como por exemplo o GIMP. Alguns sites exigem animações interativas; para isso, o Adobe Flash é uma das ferramentas chave!

Entretanto, ao contrário do que algumas pessoas podem pensar, o webdesigner é um dos profissionais que mais precisa estar atualizado. O mercado de trabalho para estes especialistas é abrangente e requer estudo das teorias de cores, formas, além de noções de fotografia, história da arte e até mesmo marketing. Afinal é preciso conhecer muito bem o público que irá acessar aquele site ou aplicativo para poder adequar o design para as características que agrada a eles.

ÁREAS DE ATUAÇÃO

As áreas de atuação são bastante variadas. Basta que a empresa possua um setor de web para que esse profissional seja requisitado. Além disso, o webdesigner pode atuar como profissional autônomo ou freelancer, de modo que seus projetos serão independentes de uma empresa, porém dependem da vontade dos clientes. Dessa forma, o projeto de webdesign passa pelas seguintes etapas:
  • Análise de contexto;
  • Propósito;
  • Análise de público;
  • Adequação ao conteúdo;
  • Compatibilidade e restrições (navegadores, fontes etc).

Todos esses pontos estão interligados de uma maneira bastante forte. Inicialmente é fundamental levantar todas as informações inerentes ao público-alvo e as diretrizes de comunicação que melhor o atendem. Em seguida é definida a estrutura do site e as tecnologias que serão empregadas para viabilizar o desenvolvimento do projeto. Um dos aspectos a ser considerado é que, por ser uma mídia em constante mudança, a web exige especial atenção no que se refere a resolução, navegadores e padrões de linguagem.

Segue-se então a etapa de criação da interface, montagem dos HTMLs, folhas de estilo e demais recursos, seguida pela fase da implementação do projeto e execução de testes. Assim, se você quer ser webdesigner, deve saber que é preciso trabalhar com um resumo daquilo que o projeto deverá conter. A partir daí, é preciso fazer uma série de análises, testes e estudos a respeito das cores utilizadas, fontes, formas e vários outros aspectos.

As palavras de ordem são flexibilidade, disposição e conhecimento.

COMO ESTÁ O MERCADO DE TRABALHO?

Atualmente, o webdesigner deve saber atuar em meios bastante variados, afinal em pouco tempo a internet deixará de ser exclusividade de computadores. A entrada de smartphones no mercado fez com que o usuário tenha a web próxima a ele não importa onde esteja. Dessa mesma forma, o webdesigner deverá ser um profissional pronto para aprender novas linguagens e absorver novas tendências. Do contrário, o estilo e as criações ficam obsoletos, afastando este profissional do mercado. Por isso, a adaptação às várias mídias é praticamente a nova lei aos webdesigners.

Em termos de rotina de trabalho, a demanda depende bastante do lugar em que o webdesigner trabalha. Porém, o mercado tem sido ameaçado pelo que os designers chamam de “sobrinhos”. Esses “sobrinhos” nada mais são do que um usuário que até possui alguns conhecimentos de utilização de software e que começam a fazer sites para amigos e familiares. Mais tarde eles passam a fazer parte de uma parcela “não especializada”, que consegue roubar clientes dos designers profissionais por oferecerem um preço menor.

17/01/2011

Fotografia de John Gollings

 

Um apaixonado pela arquitectura, um génio da fotografia!

 

http://www.gollings.com.au/

Profissões de futuro

 

A adaptabilidade é a palavra de ordem hoje em dia. "As novas tecnologias e a globalização da economia obrigam a mudanças de fundo, e quem não se adapta a elas arrisca-se a não ter perspectivas de futuro na carreira que escolheu", diz Alexandre Coutinho, jornalista de economia no jornal Expresso.

Actualmente, as áreas com mais procura são nas áreas de engenharia electrónica e mecânica, gestão e economia, nomeadamente:

  • Engenheiro civil  - 5% do mercado das ofertas de trabalho,
  • Programadores - 6%,
  • Técnicos de informática - 8%,
  • Gestores - 6%

Os licenciados em Direito ou Sociologia, por exemplo, são dos que têm mais dificuldade de colocação.

Na área de ciências, um dos campos mais promissores é o das biotecnologias, as chamadas ciências da vida - que tratam da genómica humana, da genética das plantas e de outros seres vivos.

Segundo estimativas do INE, apesar de, em 1999, 16 900 dos 221 600 desempregados no nosso país terem formação superior (cerca de 7,6% do desemprego total), em geral as suas perspectivas de emprego a longo prazo são melhores que as dos outros que apenas têm o ensino secundário ou um nível de ensino inferior como habilitações. Mas não basta ter-se um canudo para se conseguir arranjar emprego. E, ao contrário do que acontecia há quatro ou cinco anos atrás, a experiência já não é determinante na procura de colocação. "Hoje, é o binómio qualificação/experiência que é valorizado", diz Sofia Macedo, socióloga do trabalho e especialista em formação. "Além de um curso superior, os empregadores exigem conhecimentos de informática na óptica do utilizador, pelo menos uma segunda língua, capacidade de iniciativa e liderança, criatividade, bom senso, bem como qualidades de bom relacionamento e gosto pelo trabalho em equipa." E acrescenta: "Cada vez mais se procuram profissionais que não trabalhem com base num horário, mas se proponham atingir objectivos e se integrem na imagem da empresa."

Também o conceito de emprego fixo tenderá a desaparecer na economia de amanhã. "A mudança de actividade ao longo da vida vai ser uma das características dos próximos tempos", opina Amândio da Fonseca, director da Egor Portugal, filial da Egor - Recursos Humanos. "Isso irá obrigar os jovens a alargarem cada vez mais o seu leque de competências."

Tecnologias de informação e comunicação

Os licenciados em Informática e Telecomunicações são hoje os profissionais mais procurados por empresas do ramo. "É uma área em expansão devido ao desenvolvimento de novas tecnologias, como a Internet interactiva e os telefones móveis de última geração, mas onde os profissionais escasseiam, nomeadamente a nível dos engenheiros, no sector da informática e do desenvolvimento de software", explica Alexandre Coutinho. José Pinto, responsável pelos sistemas de informação da Siemens, diz que tem grande dificuldade em arranjar profissionais qualificados. "Ao nível superior, só conseguimos profissionais por convite ou fazendo propostas a estudantes universitários em vias de acabarem o curso", afirma.As especializações que mais procura vão ter por parte das empresas no sector das telecomunicações e informática serão as de engenharia de radiofrequências, das comunicações, do design industrial e de sistemas de informação, processamento de sinal em telecomunicações, design de multimédia, controle de qualidade de sistemas e consultadoria em tecnologias de informação.

Multimédia

Todas as profissões relacionadas com televisão, rádio, vídeo, Internet, computadores e sistemas multimédia estão também em desenvolvimento. "Quando as máquinas - computadores e televisões - começarem a falar entre si, ou seja, quando estiverem todas ligadas em rede e a comunicação for interactiva, teremos um mercado com muito mais potencialidades", declara Alexandre Coutinho. "Já começa a haver procura de conteúdos para essa área, o que implicará mais empregos." Segundo o Bareme Internet, um estudo periódico realizado pela Marktest, o número de utilizadores da Internet atingiu, no último trimestre de 2000, 20,3% da população - mais de um milhão e meio de pessoas. Multiplicam-se as empresas que fornecem serviços relacionados com este meio, e procuram pessoas para preencher os cargos de webmaster, cyber-redactor, manager em marketing interactivo, conselheiros em e-estratégia, entre outros.

In: Selecções Reader's Digest

Profissões com futuro

B-A-BA da Web

 

 

A Web

 

16/01/2011

Compilador

 

“Um compilador é um programa de computador (ou um grupo de programas) que, a partir de um código fonte escrito em uma linguagem compilada, cria um programa semanticamente equivalente, porém escrito em outra linguagem, código objeto.

O nome "compilador" é usado principalmente para os programas que traduzem o código de fonte de uma linguagem de programação de alto nível para uma linguagem de programação de baixo nível (por exemplo, linguagem de montagem assembly ou código de máquina). Um programa que traduz uma linguagem de programação de baixo nível para uma linguagem de programação de alto nível é um descompilador. Um programa que faz uma tradução entre linguagens de alto nível é normalmente chamado um tradutor, filtro[1] ou conversor de linguagem. Um programa que faz uma tradução entre uma linguagem de montagem e o código de máquina é denominado montador[1]. Um programa que faz uma tradução entre o código de máquina e uma linguagem de montagem é denominado desmontador.

Em português, Compilar significa por exemplo: Reunir obras literárias, documentos, escritos de vários autores, entre outros, compondo uma obra com esse material.

Um compilador é um dos dois tipos mais gerais de tradutores, sendo que o segundo tipo que a ele deve ser comparado é um interpretador.

Normalmente, o código fonte é escrito em uma linguagem de programação de alto nível, com grande capacidade de abstração, e o código objeto é escrito em uma linguagem de baixo nível, como uma sequência de instruções a ser executada pelo processador.

O processo de compilação é composto de análise e síntese. A análise tem como objetivo entender o código fonte e representá-lo em uma estrutura intermediária. A síntese constrói o código objecto a partir desta representação intermediária.

A análise pode ser subdividida ainda em análise léxica, análise sintática e análise semântica. A síntese é mais variada, podendo ser composta pelas etapas de geração de código intermediário, optimização de código e geração de código final (ou código de máquina), e somente esta última etapa é obrigatória.

Classicamente, um compilador traduz um programa de uma linguagem textual facilmente entendida por um ser humano para uma linguagem de máquina, específica para um processador e sistema operacional. Atualmente, porém, são comuns compiladores que geram código para uma máquina virtual que é, depois, interpretada por um interpretador.

Em linguagens híbridas, o compilador tem o papel de converter o código fonte em um código chamado de byte code, que é uma linguagem de baixo nível. Um exemplo deste comportamento é o do compilador da linguagem Java que, em vez de gerar código da máquina hospedeira (onde se está executando o compilador), gera código chamado Java Bytecode.

 

Fases da Compilação

Análise Léxica

Ver artigo principal: Análise Léxica

A análise léxica é a primeira fase do compilador. A função do analisador léxico, também denominado scanner, é ler o código fonte, caracter a caracter, buscando a separação e identificação dos elementos componentes do programa fonte, denominados símbolos léxicos ou tokens[2]. É também de responsabilidade desta fase a eliminação de elementos "decorativos" do programa, tais como espaços em branco, marcas de formatação de texto e comentários[3].

Análise Sintática

Ver artigo principal: Análise sintática (computação)

A análise sintática, ou análise gramatical é o processo de se determinar se uma cadeia de símbolos léxicos pode ser gerada por uma gramática[4]. No caso de analisadores sintáticos top-down, temos a opção de escrevê-los à mão ou gerá-los de forma automática, mas os analisadores bottom-up só podem ser gerados automaticamente [5]. A maioria dos métodos de análise sintática, cai em uma dessas duas classes denominadas top-down e bottom-up. Entre os métodos top-down os mais importantes são a análise sintática descendente recursiva e a análise sintática preditiva não-recursiva. Entre os métodos de análise sintática bottom-up os mais importantes são a análise sintática de precedência de operadores, análise sintática LR canônico, análise sintática LALR e análise sintática SLR[4].

Análise Semântica

Ver artigo principal: Análise semântica

As análises léxica e sintática não estão preocupadas com o significado ou semântica dos programas que elas processam. O papel do analisador semântico é prover métodos pelos quais as estruturas construídas pelo analisador sintático possam ser avaliadas ou executadas[6]. As gramáticas livres de contexto não são suficientemente poderosas para descrever uma série de construções das linguagens de programação, como por exemplo regras de escopo, regras de visibilidade e consistência de tipos[7]. É papel do analisador semântico assegurar que todas as regras sensíveis ao contexto da linguagem estejam analisadas e verificadas quanto à sua validade. Um exemplo de tarefa própria do analisador semântico é a checagem de tipos de variáveis em expressões[8]. Um dos mecanismos comumente utilizados por implementadores de compiladores é a Gramática de Atributos, que consiste em uma gramática livre de contexto acrescentada de um conjunto finito de atributos e um conjunto finito de predicados sobre estes atributos[9].

Geração de Código Intermediário

Ver artigo principal: Geração de código

Na fase de geração de código intermediário, ocorre a transformação da árvore sintática em uma representação intermediária do código fonte. Um tipo popular de linguagem intermediária é conhecido como código de três endereços. Neste tipo de código uma sentença típica tem a forma X := A op B, onde X,A e B são operandos e op uma operação qualquer. Uma forma prática de representar sentenças de três endereços é através do uso de quádruplas (operador, argumento-1, argumento-2 e resultado). Este esquema de representação de código intermediário é preferido por diversos compiladores, principalmente aqueles que executam extensivas otimizações de código, uma vez que o código intermediário pode ser rearranjado de uma maneira conveniente com facilidade[10].

Optimização de Código

Ver artigo principal: Optimização de Código

A Otimização de código é a estratégia de examinar o código intermediário, produzido durante a fase de geração de código com objetivo de produzir, através de algumas técnicas, um código que execute com bastante eficiência[8]. O nome optimizador deve sempre ser encarado com cuidado, pois não se pode criar um programa que leia um programa P e gere um programa equivalente sendo melhor possível segundo o critério adotado[3]. Várias técnicas e várias tarefas se reúnem sob o nome de Optimização. Estas técnicas consistem em detectar padrões dentro do código produzido e substituí-los por códigos mais eficientes[10]. Entre as técnicas usadas estão a substituição de expressões que podem ser avaliadas durante o tempo de compilação pelos seus valores calculados, eliminação de sub-expressões redundantes, desmembramento de laços, substituição de operações (multiplicação por shifts), entre outras[8]. Uma das técnicas de optimização mais eficazes e independente de máquina é a otimização de laços, pois laços internos são bons candidatos para melhorias. Por exemplo, em caso de computações fixas dentro de laços, é possível mover estas computações para fora dos mesmos reduzindo processamento[11].

Geração de Código Final

Ver artigo principal: Geração de código

A fase de geração de código final é a última fase da compilação. A geração de um bom código objeto é difícil devido aos detalhes particulares das máquinas para os quais o código é gerado. Contudo é uma fase importante, pois uma boa geração de código pode ser, por exemplo, duas vezes mais rápida que um algoritmo de geração de código ineficiente[10]. Nem todas as técnicas de optimização são independentes da arquitetura da máquina-alvo. Optimizações dependentes da máquina necessitam de informações tais como os limites e os recursos especiais da máquina-alvo a fim de produzir um código mais compacto e eficiente. O código produzido pelo compilador deve se aproveitar dos recursos especiais de cada máquina-alvo[8].”

In: Wikipédia

Bytecode

 

“É o resultado de um processo semelhante ao dos compiladores de código-fonte que não é imediatamente executável. Em oposição, o bytecode irá ser interpretado numa máquina virtual, que fará a execução. Assim, o bytecode é um estágio intermédio entre o código-fonte (escrito numa linguagem de programação específica) e a aplicação final, sendo a sua vantagem principal a dualidade entre a portabilidade — o bytecode irá produzir o mesmo resultado em qualquer arquitectura — e a ausência da necessidade do pré-processamento típico dos compiladores — o bytecode é encarado como um produto final, cuja validação da sintaxe e tipos de dados (entre outras funções dos compiladores) não será necessária.

Como exemplo de plataformas que geram bytecode, temos Java (que corre sobre a máquina virtual Java), .NET (que corre sobre a Common Language Runtime) e Lua.”

In: Wikipidédia

“Linguagens de programação "tradicionais", como o C e o C++ utilizam um compilador diferente para cada plataforma ou sistema operacional em que o programa irá rodar. O código fonte em sí pode ser escrito de forma a ser facilmente portável, ou seja, rodar em diferentes versões do Unix ou em várias famílias de processadores diferentes sem muitas alterações, mas ainda assim será necessário recompilar o código fonte, gerando um binário diferente para cada caso.

Embora o trabalho inicial seja maior, a vantagem desta abordagem é que o desempenho é o melhor possível, já que sempre teremos um binário otimizado para a plataforma.

Mas, várias linguagens mais recentes como o Java utilizam um conceito diferente. Ao invés de gerar um binário diferente para cada plataforma, é gerado um binário que pode ser executado em qualquer plataforma, dentro de uma máquina virtual. Este binário "universal" é chamado de bytecode.

A idéia é criar aplicativos que possam ser escritos uma vez e executados em qualquer plataforma, reduzindo os custos de desenvolvimento. Apenas o software da máquina virtual é que precisa ser reescrita para cada plataforma, mas isso é problema dos desenvolvedores da linguagem, não do programador.

Existe ainda a opção de abrir mão da flexibilidade do bytecode em troca de um maior desempenho, passando a compilar os programas com otimizações para uma determinada plataforma. Isso é muito útil quando o programa será executado apenas dentro de computadores de uma certa plataforma, como PCs rodando Linux.

No caso do Java a máquina virtual que executa os programas é chamada de Java Virtual Machine. Muitas páginas Web utilizam applets Java, por isso a maioria das pessoas acaba instalando o suporte a Java. Hoje em dia, além do Java da Sun temos versões alternativas, como o Blackdown e o Kofee, que possuem conjuntos de recursos variados, mas são a princípio compatíveis com o código gerado para o Java da Sun.

Embora tenha ganhado relevância com o Java, este conceito não é exatamente novo. Linguagens mais antigas como o LISP e o Prolog já utilizam bytecode e máquinas virtuais.”

In: Guia do Hardware

15/01/2011

Scrapbooks

 

Mil e uma ideias e material para sacrapbooks: http://www.scrapbook.com/

Site que ensina a compor scrapbooks: http://stepbystepdigitalscrapbook.com/

Lógica de Programação

 

O objectivo principal da Lógica de Programação é demonstrar técnicas para resolução de problemas e consequentemente automatização de tarefas.
A formação em  Lógica é essencial para um bom programador, servindo como base para a aprendizagem de todas as linguagens de programação, estruturadas ou não.
De um modo geral esses conhecimentos serão de suma importância pois ajudarão no quotidiano, desenvolvendo um raciocínio rápido.

http://www.portaldaprogramacao.com/

 

Programação é o processo de escrita, teste e manutenção de um programa de computador. O programa é escrito em uma linguagem de programação, embora seja possível, com alguma dificuldade, escreve-lo directamente em linguagem de máquina. Diferentes partes de um programa podem ser escritas em diferentes linguagens.

Diferentes linguagens de programação funcionam de diferentes modos. Por esse motivo, os programadores podem criar programas muito diferentes para diferentes linguagens; muito embora, teoricamente, a maioria das linguagens possa ser usada para criar qualquer programa.

Software é um nome colectivo para programas de computadores e dados.

Um algoritmo é uma sequência de passos para realizar uma tarefa ou resolver um problema. Em nosso dia a dia utilizamos algoritmos para realizar nossas actividades, definindo a sequência de actividades que devemos fazer para atingir um objectivo.

Pequeno programa em linguagem de programação C que imprime na tela se o número passado a ele como argumento é primo ou não. O código fonte está sendo visualizado em um IDE com suporte a coloração de sintaxe e indentação de código

A criação de um programa de computador consiste de cinco passos principais:

  • Reconhecer a necessidade de um programa para resolver um problema.
  • Planificar o programa e seleccionar as ferramentas necessárias para resolver o problema.
  • Escrever o programa na linguagem de programação escolhida.
  • Compilação: tradução do código fonte legível pelo homem em código executável pela máquina, o que é feito através de compiladores e outras ferramentas.
  • Testar o programa para ter a certeza de que funciona; se não, regressar ao passo 3.

Estes cinco passos são colectivamente conhecidos como engenharia de software. A programação põe ênfase nos passos 2, 3 e 4. A codificação põe ênfase no passo 3. O termo coder, por vezes usado como sinónimo para programador, pode tornar-se aviltante porque ignora as capacidades necessárias para lidar com os outros quatro passos.

Lista de linguagens

Existem várias linguagens de programação. As 20 mais populares são:

In: Wikipédia

Multimédia

 

Multimédia (Portugal) ou multimídia (Brasil) é a combinação, controlada por computador, de pelo menos um tipo de media estática (texto, fotografia, gráfico), com pelo menos um tipo de media dinâmica (vídeo, áudio, animação) (Chapman & Chapman 2000 e Fluckiger 1995).Quando se afirma que a apresentação ou recuperação da informação se faz de maneira multissensorial, quer-se dizer que mais de um sentido humano está envolvido no processo, fato que pode exigir a utilização de meios de comunicação que, até há pouco tempo, raramente eram empregados de maneira coordenada, a saber [3]:

O termo multimédia refere-se portanto a tecnologias com suporte digital para criar, manipular, armazenar e pesquisar conteúdos. Os conteúdos multimédia estão associados normalmente a um computador pessoal que inclui suportes para grandes volumes de dados, os discos ópticos como os CDs(CD-ROM,MINI-CD,CD-CARD) e DVDs, abrange também nas ferramentas de informática a utilização de arquivos digitais para a criação de apresentações empresarias, catálogos de produtos,exposição de eventos e para catálogos eletrônicos com mais facilidade e economia. Privilegiando o uso dos diversos sentidos visão, audição e tacto este tipo de tecnologia abrange diversas áreas de informatica.

Em latim "media" é o plural de "medium", pelo que o termo "multi-media" pode ser considerado um pleonasmo.

 

 

Tipos de media

Natureza espácio-temporal
  • Estáticos - Agrupam elementos de informação independentes do tempo, alterando apenas a sua dimensão no espaço, tais como, textos e gráficos;
  • Dinâmicos - Agrupam elementos de informação dependentes do tempo, tais como, por exemplo, o áudio e a animação. Nestes casos, uma alteração, no tempo, da ordem de apresentação dos conteúdos conduz a alterações na informação associada ao respectivo tipo de media dinâmico.
  • Imersivo - Agrupam elementos de informação interativa em ambientes 3D.
Origem
  • Capturados - São aqueles que resultam de uma recolha do exterior para o computador;
  • Sintetizados - São aqueles que são produzidos pelo próprio computador através da utilização de hardware e software específicos.
Interacção

Existe quem diferencie as categorias de multimédia linear e não-linear.

  • Na multimédia linear o utilizador não tem qualquer tipo de controlo no desenrolar do processo, enquanto que
  • A multimédia não-linear oferece interactividade com o utilizador.

Multimedia (multi-imagem) para o anúncio do novo carro Ford 1988 em agosto de 1987.

Divulgação

Quanto ao modo de divulgação podemos encontrar dois tipos:

  • Online - Divulgação online significa a disponibilidade de uso imediato dos conteúdos multimédia. Pode ser efectuada, por exemplo, através da utilização de uma rede informática local ou da WWW.
  • Offline - A divulgação offline de conteúdos multimédia é efectuada através da utilização de suportes de armazenamento, na maioria das vezes do tipo digital. Neste caso, os suportes de armazenamento mais utilizados são do tipo óptico, CD e DVD.
Tecnologia em Produção Multimídia

Blog voltado ao curso de Tecnologia em Produção Multimídia.

Tipos de produtos multimédia

  • Baseados em páginas
São desenvolvidos segundo uma estrutura organizacional do tipo espacial. Esta é uma organização semelhante à utilizada nos media tradicionais em suporte de papel como revistas, livros e jornais.
Em alguns produtos multimédia, os utilizadores podem consultar as suas páginas utilizando as hiperligações existentes entre elas. Neste tipo de produto, as componentes interactiva e temporal podem estar presentes através da utilização de botões, ícones e scripts. Os scripts vão permitir a criação de pequenos programas para a execução de acções em determinadas situações como, por exemplo, a visualização de um vídeo ao fim de um determinado intervalo de tempo ou após um botão ter sido pressionado
  • Baseados no tempo
    • São desenvolvidos segundo uma estrutura organizacional assente no tempo. Esta é uma organização com uma lógica semelhante à utilizada na criação de um filme ou animação.
    • Durante o desenvolvimento deste tipo de produtos multimédia os conteúdos podem ser sincronizados permitindo assim definir o momento em que dois ou mais deles estão visíveis.
    • A interactividade neste tipo de produtos é adicionada através da utilização de scripts.
    • A componente da organização espacial é também, neste caso, utilizada durante a fase de desenvolvimento deste tipo de produtos.

Em ambos os tipos de produtos multimédia (baseados em páginas ou no tempo) as componentes espaço e tempo coexistem, distinguindo-se na estrutura organizacional utilizada como ponto de partida para a disposição dos conteúdos.

Multimídia e percepção
aspectos de uma interação humano-máquina

A multimídia é hoje um dos mais eficazes recursos para garantir a percepção e o acúmulo de conhecimento. Isso porque os recursos multimídia estimulam mais sentidos que as simples mídias. A partir do momento em que o usuário é estimulado em mais de um sentido, a capacidade de processamento e armazenamento das informações aumentam consideravelmente. Segundo Márcio Matias, o percentual de eficácia das principais mídias na percepção humana é de:

Uma representação usando Powerpoint.

  • Visual = 55%
  • Vocal = 38%
  • Textual = 7%

Quando combinadas, as mídias tendem a aumentar ainda mais essa percentagem. Isso ocorre pelo fato dos recursos multimídia serem mais parecidos com as experiências do cotidiano das pessoas. Torna cada vez mais interativo, cada vez mais real.

Essa interação humano-máquina proporcionada cada vez mais intensamente pelos recursos multimídia é o que o professor Marcelo Bolshaw chama de cibernética, ou seja, é por causa dessas interações que ele afirma que somos Cyborgs. Segundo ele, quando fazemos uso de um talher ou um automóvel, interagimos de maneira simbiótica com a máquina. A utilização dos recursos multimídia é justamente uma das formas mais eficazes de garantir um maior proveito dessa relação simbiótica entre humanos e máquinas.

In: wikipédia

13/01/2011

Desenvolvimento de produtos multimédia e Web design

 

O Técnico de Desenvolvimento de Produtos Multimédia cria e desenvolve produtos, com vista à criação de soluções de informação e comunicação.

As suas competências permitem desenvolver os produtos utilizando diferentes tecnologias, das quais se destacam o Photoshop, Dreamweaver, 3D Studio Max, Adobe Premier, Flash, Sounforge e Macromedia Director

Principais Tecnologias
- Adobe Photoshop
- Adobe Premiere
- Macromedia Dreamweaver
- Macromedia Flash
- Macromedia Director
- 3D Studio Max

Desenvolvimento de produtos multimédia e web design - Curso de Especialização Tecnológica (nível IV) – Escola Superior de Gestão de Santarém

Plano curricular

Professores

Condições de acesso:

  • Os titulares de um diploma de CET ou de Ensino Superior e que pretendam requalificar-se profissionalmente

Calendário:

    • O prazo de candidatura: até 31 de Dezembro de 2009.
    • Início do Curso: 22 de Fevereiro de 2010.

Processo de Candidatura:

A candidatura deverá ser instruída com os seguintes documentos:

  • Ficha de candidatura, devidamente preenchida;
  • Certidão de habilitações académicas;
  • Curriculum Vitæ detalhado, datado e assinado, acompanhado de comprovativos de cursos/acções realizados, se for o caso;
  • Cópia do Bilhete de Identidade.

As candidaturas devem ser apresentadas nos prazos fixados ao anexo I, na Escola Superior de Gestão de Santarém ou enviadas por correio registado com aviso de recepção, para:
       Escola Superior de Gestão de Santarém
                                   Complexo Andaluz, Apartado 295
                                   2001-904 Santarém

Para obtenção de esclarecimentos utilizar o telefone 243303200 ou o email gcomunicacao@esg.ipsantarem.pt.

Áreas disciplinares de acesso (conforme artigo 8º do Decreto-Lei nº 88/2006):

  • Português ou Inglês ou Matemática ou Economia

Custos associados à matrícula e frequência do curso

  • Taxa de matrícula e inscrição em vigor;
  • Propinas:
    • Valor total no acto da matrícula (para este CET com dois semestre é de 500€)
    • Pagamento em prestações (para este CET poderá ser em 3 prestações:
      • 150€ no acto da matrícula
      • 175€ no penúltimo mês do 1º semestre
      • 175€ no penúltimo mês do 2º semestre.