1 á 14       

A plataforma Java atingiu a liderança devido a algumas características relacionadas ao seu processo de evolução e especificação, junto com a participação forte e ativa da comunidade. Conhecer bem o ecossistema Java revela seus pontos fortes e também as desvantagens e limitações que podemos enfrentar ao adotá-la.

 Java como plataforma, além da linguagem

 É fundamental conhecer com que objetivos a plataforma Java foi projetada, a fim de entender com profundidade os motivos que a levaram a ser fortemente adotada no lado do servidor. Java é uma plataforma de desenvolvimento criada pela Sun, que teve seu lançamento público em 1995.

 Ela vinha sendo desenvolvida desde 1991 com o nome Oak, liderada por James Gosling.

O mercado inicial do projeto Oak compunha-se de dispositivos eletrônicos, como os set-top box. Desde a sua concepção, a ideia de uma plataforma de desenvolvimento e execução sempre esteve presente.

A plataforma Java é uma completa plataforma de desenvolvimento e execução.

 Esta plataforma é composta de três pilares: a máquina virtual Java (JVM), um grande conjunto de APIs e a linguagem Java.

Uma aplicação tradicional em C, por exemplo, é escrita em uma linguagem que abstrai as operações de hardware e é compilada para linguagem de máquina. Nesse processo de compilação, é gerado um executável com instruções de máquina específicas para o sistema operacional e o hardware em questão.

Seu papel é executar as instruções de máquina genéricas no Sistema Operacional e no hardware específico sob o qual estiver rodando executado em dois sistemas operacionais diferentes.

 É preciso instalar uma JVM específica para o sistema operacional e o hardware que se vai usar.

 Por esta razão, o Java possui duas distribuições diferentes: o JDK (Java Development Kit), que é focado no desenvolvedor e traz, além da VM, compilador e outras ferramentas úteis; e o JRE (Java Runtime Environment), que traz apenas o necessário para se executar um aplicativo Java (a VM e as APIs), voltado ao usuário final.

 Temos a garantia de que isso funcionará, pois uma JVM, para ganhar este nome, tem de passar por uma bateria de testes da Sun, garantindo compatibilidade com as especificações.

 A plataforma Microsoft .NET também é uma especificação e, por este motivo, o grupo Mono pode implementar uma versão para o Linux.

 Os bytecodes Java

 A JVM é, então, o ponto-chave para a portabilidade e a performance da plataforma Java. Como vimos, ela executa instruções genéricas compiladas a partir do nosso código, traduzindo­-as para as instruções específicas do sistema operacional e do hardware utilizados.

O nome bytecode vem do fato de que cada opcode (instrução) tem o tamanho de um byte e, portanto, a JVM tem capacidade de rodar até 256 bytecodes diferentes (embora o Java 7 possua apenas 205).

A plataforma Java tem ido cada vez mais na direção de ser um ambiente de execução multilinguagem, tanto através da Scripting API quanto por linguagens que compilam direto para o bytecode.

A JVM é, portanto, um poderoso executor de bytecodes, e não interessa de onde eles vêm, independentemente de onde estiver rodando.

 É por este motivo que muitos afirmam que a linguagem Java não é o componente mais importante da plataforma, mas, sim, a JVM e o bytecode.

Especificações ajudam ou atrapalham?

A Plataforma Java é bastante lembrada por suas características de abertura, portabilidade e até liberdade.

 Há o aspecto técnico, com independência de plataforma e portabilidade de sistema operacional desde o início da plataforma. Há também a comunidade com seus grupos de usuários por todo o mundo, sempre apoiados e incentivados pela Sun/Oracle suas mãos.

Quem guia os rumos do Java é o JCP, com suas centenas de empresas e desenvolvedores participantes, que ajudam a especificar as novas tecnologias e a decidir novos caminhos.

 Mas as JSR definem apenas especificações de produtos relacionados ao Java, e não implementações.

 Até há uma implementação de referência feita pelo JCP, mas, no fundo, o papel do órgão é criar grandes documentos que definem como tudo deve funcionar. O que usamos na prática é uma implementação compatível com a especificação oficial.

 Quando baixamos o JDK da Sun/Oracle, o que vem não é o Java SE, mas, sim, uma implementação feita pela empresa seguindo a especificação. Mas não somos obrigados a usar a HotSpot, implementação da Sun/Oracle. Podemos usar outras, como a J9 da IBM, a JRockit da BEA/Oracle, ou o Harmony da Apache, e, ainda, JVMs mais específicas para certos sabores do Unix, dispositivos móveis e hardwares mais particulares.

 As diferenças entre os produtos de diferentes fabricantes estão no suporte oferecido, documentação, facilidades extras de gerenciamento, otimizações, e até extensões proprietárias. Sobre este último ponto vale uma ressalva: praticamente todo fabricante estende a especificação oficial com APIs proprietárias, seja com o objetivo de tapar lacunas na especificação, seja para ter algum destaque a mais em relação a seus concorrentes.

 Não há problema algum nisso, mas é preciso ter consciência de que, ao usar um recurso proprietário, é possível perder portabilidade e independência do fabricante.

A linguagem Java vive uma situação similar. Desenvolvida para resolver determinados problemas, as barreiras que apresenta são muitas vezes superadas pela mistura com outras linguagens dentro da plataforma Java.

Desenvolvedores precisam de novos treinamentos, o Visual Studio é alterado e diversas bibliotecas deixam de funcionar.

Uma funcionalidade pode ser tecnicamente excelente para determinados usuários, mas, se for contra os interesses de um dos membros do comitê, poderá ser deixada de fora.

Porém, na prática, é raro trocarmos a implementação de uma especificação, a não ser talvez considerando diferentes ambientes, como ir do desenvolvimento para a produção.

 Nesse sentido, se o projeto já usa Hibernate, a especificação pode mais limitar que engradecer o projeto.

 Além disso, otimizações costumam ser feitas para implementações específicas.

Uma grande vantagem das especificações é a certeza de que conhecê-la permitirá ao desenvolvedor trabalhar em projetos que tenham diferentes implementações.

Claro que haverá diferenças a serem aprendidas, mas ter a especificação diminui bastante esse aprendizado.

A plataforma Java, diferente de muitas outras, tem essa possibilidade de escolha disponível em suas diversas ramificações.

Quando for preciso uma especificação de alguma tecnologia, provavelmente a plataforma Java terá algo disponível.

Outras necessidades foram resolvidas com a manipulação de bytecodes em tempo de execução com a explosão na adoção de bibliotecas com esse fim, como ASM ou Javassist.

Há ainda linguagens como Groovy e outras foram desenvolvidas para facilitar a criação de código mais adequado à tipagem dinâmica.

 Com isso, outras linguagens, até então consideradas secundárias pelo mercado, começaram a tomar força por possuírem maneiras diferenciadas de resolver os mesmos problemas, mostrando-se mais produtivas em determinadas situações.

Para aplicações Web em Java, por exemplo, é comum a adoção de outras linguagens.

 Grande parte do tempo, utiliza-se CSS para definir estilos, HTML para páginas, JavaScript para código que será rodado no cliente, SQL para bancos de dados, XMLs de configuração e expression language (EL) nos JSPs.

 Mas, se já usamos a linguagem certa para a tarefa certa, por que não aproveitar esta prática em toda a aplicação?

Hoje, a JVM é capaz de interpretar e compilar código escrito em diversas linguagens.

Com o Rhino, código JavaScript pode ser executado dentro da JVM. Assim como código Ruby pode ser executado com JRuby, Python com Jython e PHP com Quercus.

 Existem linguagens criadas especificamente para rodar sobre a JVM, como Groovy, Beanshell, Scala e Clojure.

O alemão Robert Tolksdorf mantém uma lista da maioria das linguagens suportadas pela JVM em seu site, onde é possível encontrar até mesmo implementações da linguagem Basic. Muitos perguntam qual seria a utilidade de executar, por exemplo, código JavaScript na JVM.

A resposta está nas características da linguagem, afinal, a plataforma será a mesma.

 Apesar de todo o preconceito que existe sobre ela, JavaScript vem se tornando uma linguagem de primeira linha, que é adotada em outros pontos de nossa aplicação, e não apenas no contato final com o cliente.

  O código continua sendo executado dentro da JVM com todas as otimizações ligadas à compilação sob demanda do mesmo.

 Não é à toa que as novas versões do Hibernate Validator permitem que sua validação server side seja em JavaScript.

É comum encontrar aplicações Java rodando Ruby durante o processo de build, através de ferramentas como Rake e Cucumber, para, por exemplo, efetuar os testes end-to-end através de um browser.

O Rails rodando sob a JRuby é cada vez mais adotado.

É a primeira vez que um novo bytecode é adicionado à plataforma para não ser usado pela linguagem Java em si, mas por outras linguagens.

 Ainda seguindo esse caminho da linguagem correta no instante adequado, surgiu um forte movimento que busca o bom uso de linguagens apropriadas ao domínio a ser atacado, as Domain Specific Languages.

 Existem diversos tipos, características e maneiras de criá-las, sempre com o intuito de trazer para o código uma legibilidade que seja mais natural.

Quando Java quebrou a barreira de que máquinas virtuais seriam necessariamente lentas, ajudou a desconstruir também o mito similar a linguagens funcionais, que existem em versões interpretadas quanto compiladas.

A facilidade trazida pelas closures, a partir do Java SE 8,é também um diferencial a ser considerado, diminuindo drasticamente o número de classes anônimas, tornando o código mais legível e menos verboso.

Design De Interação-Além da Interação Homem-Computador

Design de Interação Além da Interação Homem-Computador PDF Rogers Preece

Resumo

Pág 1 a 8

O texto fala sobre o Design de Interação, uma área do design que se concentra no desenvolvimento de produtos e sistemas interativos para melhorar a maneira como as pessoas interagem com a tecnologia. O Design de Interação visa tornar a interação com dispositivos mais fácil e eficaz, mesmo em casos aparentemente simples, como botões de elevador. O designer de interação deve se concentrar no usuário, encontrar boas soluções, gerar muitas ideias e fazer prototipação rápida, trabalhar de forma colaborativa e integrar conhecimentos de várias áreas. A interface é uma parte fundamental do design de interação, pois permite que os usuários interajam com os produtos de forma eficiente.

O texto destaca a importância de simplificar a interação entre humanos e tecnologia, tornando-a intuitiva e livre de erros.

Resumo 02/11/2023 (“Da pág. 9 á 14 são exercícios”)

Pág. 15 á 22

O texto aborda o design de interação na prática, destacando sua evolução ao longo do tempo. Inicialmente, designers gráficos preocupavam-se com a usabilidade com base em suas próprias experiências. Com o tempo, o campo cresceu, incluindo feedback de clientes e considerando as dificuldades do público-alvo. No entanto, resolver 100% dos problemas de usabilidade era desafiador devido a restrições de tempo e orçamento.

A pesquisa de usabilidade tornou-se crucial para entender as necessidades do usuário, embora o foco devesse estar nas dificuldades de um público representativo. Pequenas empresas encontraram oportunidades no design de interação, pois podem se concentrar na usabilidade. O texto também fornece um breve histórico do design de interação, desde os primeiros computadores digitais até o surgimento de interfaces amigáveis.

Equipes multidisciplinares, envolvendo profissionais de diversas áreas, desempenham um papel fundamental na criação de sistemas interativos eficazes. O campo está em constante evolução, com empresas buscando atender aos valores humanos e explorando conceitos inovadores. Em resumo, o texto discute a importância do equilíbrio entre as necessidades do usuário e as demandas do cliente no design de interação, bem como seu desenvolvimento histórico e tendências futuras.

Pág. 22 á 36-09/11/2023

O texto discute a metodologia projetual para design de sistemas interativos, destacando quatro etapas: entendimento, design, antecipação e avaliação. A metodologia projetual é considerada essencial para formalizar procedimentos e reduzir problemas decorrentes da informalidade. As etapas de projeto, independentemente do autor, envolvem a identificação do problema, levantamento de dados, geração de alternativas e aplicação sistêmica.

Na etapa de entendimento, destaca-se a importância de compreender as pessoas envolvidas, as atividades de design, os contextos e as tecnologias, gerando requisitos por meio da análise PACT. Requisitos funcionais, de dados, ambientais, do usuário e de usabilidade são categorizados para melhor compreensão.

Na etapa de design, aborda-se o design conceitual, modelos mentais, modelos conceituais e o uso de metáforas. O design conceitual visa criar um conceito claro do sistema, enquanto os modelos mentais e conceituais contribuem para a compreensão e aprendizado do usuário. Metáforas são destacadas como ferramentas que facilitam a compreensão, combinando conhecimento familiar com a funcionalidade do sistema.

O design físico, na etapa de design, trata da tradução do conceito abstrato em um sistema interativo concreto, abordando design operacional, representacional e físico.

A antecipação visa visualizar o projeto para avaliação, utilizando esboços, protótipos, maquetes ou cenários. Por fim, a avaliação verifica se os requisitos foram atendidos, se o produto funciona e se está de acordo com seu conceito. Diversas técnicas de avaliação, incluindo a avaliação heurística de Nielsen, são mencionadas, destacando a importância da usabilidade.

O texto fornece uma visão abrangente das etapas envolvidas no design de sistemas interativos, enfatizando a importância do entendimento completo dos requisitos, do design conceitual claro e da avaliação contínua para garantir a eficácia e usabilidade do produto final.

Pág. 37 á 47 – 25/11/2023

O texto destaca a centralidade das pessoas na adoção e uso de tecnologias, argumentando que a importância dessas tecnologias é determinada pela escolha e preferência das pessoas. Enfatiza que compreender as necessidades e preferências do usuário é crucial no design de produtos, serviços e tecnologias. Aborda as diferenças físicas, psicológicas e sociais entre as pessoas, destacando a importância de considerar essas diversidades no design de interação e ergonomia.

O conceito de ergonomia é explorado como o estudo das relações entre as pessoas e seu ambiente, incluindo fatores físicos e psicológicos. O design ergonômico é discutido como uma aplicação prática desses princípios, crucial para a criação de interfaces e dispositivos interativos bem-sucedidos.

O texto também destaca a Lei de Fitts como um exemplo de como a ergonomia pode quantificar a relação entre a distância, o tamanho do alvo e o tempo necessário para atingir um objetivo. Além disso, aborda diferenças psicológicas, culturais e individuais entre as pessoas, ressaltando a importância de adaptar o design às diversas características e modelos mentais dos usuários.

Por fim, menciona testes psicológicos, como o Myers-Briggs e o OCEAN, que podem ajudar os designers a compreender as diferenças individuais e os modelos mentais dos usuários. A conclusão ressalta que o designer de interação deve se adaptar ao público, reconhecendo a variedade de modelos mentais, habilidades psicológicas e características individuais para criar experiências mais adequadas e eficazes.

Pág.47 á 57 -16/12/2023

O texto aborda a construção de modelos mentais durante a interação com sistemas, enfatizando a importância das informações fornecidas pelos designers. Destaca desafios, como a diferença entre a concepção dos designers e a realidade da implementação dos sistemas, muitas vezes desenvolvidos por várias pessoas.

Também aborda as diferentes motivações e níveis de experiência dos usuários, enfocando a necessidade de um design inclusivo. O texto destaca a diversidade de métodos de interação em programas de computador, adaptando-se às preferências dos usuários.

O trabalho do designer é contextualizado em cinco características principais: aspectos temporais, cooperação, complexidade, segurança e conteúdo. Exemplifica desafios, como a resistência à mudança baseada no costume, exemplificado pelo layout do teclado QWERTY, e destaca a importância de avaliar a aceitação do sistema pelos clientes.

Introduz a importância do contexto, dividindo-o em organizacional, social e físico. Analisa como o contexto influencia a interação do usuário, considerando fatores como localização, segurança e condições ambientais. Discute a plasticidade das interfaces, destacando a busca por adaptabilidade estética para atender a valores específicos em diferentes contextos.Podemos assim dizer que o texto abrange aspectos essenciais do design de interação, desde a formação de modelos mentais até a consideração dos contextos e a plasticidade das interfaces para atender às necessidades dos usuários em diversas situações.

Pág.58 á 69– 24/12/2023

De acordo com as páginas lidas o texto fala da importância da análise prévia das tecnologias antes do desenvolvimento de sistemas interativos. Ele aborda a necessidade de compreender as preferências do público-alvo, reconhecendo que um sistema avançado pode ser atrativo para alguns, mas afastar outros mais tradicionais.

O texto explora os componentes de hardware e software dos sistemas interativos, enfatizando a constante comunicação entre eles. Destaca a evolução rápida das tecnologias interativas, a importância de designers estarem atentos às opções de entrada, saída, comunicação e conteúdo.

Além disso, são discutidos diversos dispositivos de entrada, como teclado, mouse, dispositivos touch, canetas óticas, trackballs e joysticks. O autor menciona também dispositivos apontadores menos comuns, como o trackball e a tecnologia de apontamento à distância do Nintendo Wii.

A diversidade de sensores, como os de ar comprimido, acústicos, infravermelhos e acelerômetros, é destacada, assim como a utilização da atividade cerebral para interação com computadores. O texto menciona a importância de considerar a comunicação sem fio, ressaltando a instabilidade das redes 3G.

A seção sobre dispositivos de saída aborda monitores, impressoras, caixas de som e destaca a ascensão das impressoras 3D. Há uma ênfase nos dispositivos hápticos, que proporcionam sensações táteis, e na importância da comunicação eficiente, considerando largura de banda e velocidade.

Podemos assim ressaltar a evolução da comunicação sem fio e a necessidade de considerar o comportamento dos dados, a mídia de fluxo e os diferentes meios de apresentação de conteúdo, como animações em 2D e 3D.

Pág. 70 á -07/01/2024

Neste capítulo, são introduzidos os conceitos de personas e cenários no contexto do design centrado no usuário. Personas são personagens fictícios criados para representar o público-alvo de um produto ou sistema, permitindo uma abordagem mais específica. Essas personas são úteis para entender as reais necessidades dos usuários e comunicar suas características de maneira sintética.

A criação de personas envolve a identificação do consumidor ideal, desenvolvimento de perfis e a elaboração de uma ficha com detalhes como nome, foto, dados demográficos, expectativas e contexto de uso. A inclusão de narrativas torna as personas mais convincentes.

Os cenários, por outro lado, são descrições de situações hipotéticas envolvendo essas personas, utilizadas para auxiliar em decisões de projeto, avaliar características e demonstrar o produto em uso. Destaca-se a importância de manter cenários conectados à realidade e prática de uso, evitando situações fantasiosas nas fases avançadas do desenvolvimento.

Um exemplo prático apresentado é o cenário com a persona Mariana, uma contadora que precisa lidar com um ambiente barulhento ao criar uma planilha. Ela busca uma solução automatizada em um software para facilitar a tarefa.

O capítulo destaca a interligação entre personas e cenários, ressaltando que, quando baseados em personas realistas, os cenários têm maior probabilidade de refletir situações reais. Durante os testes de usabilidade, os cenários podem ser reaproveitados para criar tarefas específicas e avaliar a capacidade dos usuários em resolver problemas práticos.

Livro IAI – Introdução ao HTML

Resumo Páginas 4-10:

O HTML (HyperText Markup Language) é uma linguagem de marcação estruturada que utiliza etiquetas para instruir um navegador sobre como renderizar uma página da web. Essas etiquetas estão contidas em arquivos de texto simples, sem formatação especial. Existem quatro conceitos fundamentais no HTML: elementos, etiquetas ou tags, atributos e valores, e aninhamento (nesting).

OBS: HTML não é uma linguagem de programação.

  • Elementos: São componentes essenciais em páginas HTML, que atuam como contêineres para seções de uma página. Tudo dentro de um elemento herda suas características.

Exemplos:

<p>Paragrafo</p> <h1>Título</h1>

<ul><li>Lista nao ordenada</li></ul>

<ol><li>Lista ordenada</li></ol>

Etiquetas ou tags: São usadas para marcar elementos no HTML. Cada elemento possui uma etiqueta de abertura (<tag>) e uma de fechamento (</tag>), com o conteúdo entre elas.

Atributos e valores: Atributos são usados para definir as características de um elemento, inseridos na etiqueta de abertura. Valores são atribuídos aos atributos usando um sinal de igual (=) e aspas.

Aninhamento (Nesting): Elementos HTML devem ser aninhados corretamente, evitando sobreposição. O aninhamento adequado garante que os elementos sejam independentes uns dos outros.

A estrutura básica de um programa HTML inclui elementos como <html>, <head>, <title>, <body>, e comentários. Um documento mínimo em HTML segue essa estrutura.

Exemplo:

Para criar uma página HTML, é possível usar editores de texto simples, como o Notepad, onde as etiquetas HTML são escritas manualmente. Para visualizar a página em um navegador, salve o arquivo com uma extensão .htm ou .html e abra-o no navegador.

Um editor muito bom para utilizar hoje em dia é o VS Code, pois é muito prático e muito fácil de se utilizar, muitas empresas trabalham com esse editor para desenvolvimentos de websites e aplicações móveis.

A página HTML básica serve como um ponto de partida para a criação de páginas da web mais complexas, e os elementos essenciais incluem <html>, <head>, <title>, <body>, e a capacidade de adicionar comentários.

Resumindo, o HTML é uma linguagem que permite criar páginas da web estruturadas usando etiquetas e elementos específicos, e um editor de texto simples, como o Notepad, ou editor mais profissional como o VS Code podem ser usados para a criação de páginas HTML.

livro “Guia business week para apresentações em multimídia”

Pagina 1-13

Resumo:

Os tipos de midia e a Tecnodependencia

Associação multisensorial e Dinamismo na comunicação

Criatividade e Novidade

Resumindo: O poder da informação não esta contido nos dados, mas sim nas ideias, emoções e ações de individuos.

Como descrita no resumo acima

O poder da multimédia é Sinérgico um dado conjunto inertes são compativéis e ainda causam uma pontencialização dos mecanismos de acção.

How to construct Android Software

Android programs are bits of software working on the Android os platform. They are normally distributed through the Google Perform Store. Also you can get them by websites or perhaps through various other stores. However , some of them are certainly not compatible with most devices. Therefore be sure to look at compatibility in the apps you want ahead of installing them.

It is important to recognize that not each and every one Android software are created alike. Some are designed for specific designs of phones. And some are optimized for the purpose of tablets. Based on the unit you have, you can get an iphone app that’s exquisite for your needs.

Before you begin building a google app, make sure to makes use of the appropriate encoding language. This includes C++ and Java. Then you can go on to add other gaming features to your software. For example , you are able to define animation with XML files.

To begin with, read through the AndroidHive tutorial. These types of simple code instructions should guide you throughout the process of creating a flashlight iphone app. In addition to providing easy-to-follow steps, the tutorial also shows you how to use straightforward coding terminology.

During the development process, you should build an Android application that features all the pre-installed https://droidkingforum.co.uk/blog/finding-the-right-investment-strategy/ features on your cellular phone. Using XML files, you are able to create a menu and explain how your app will need to look. XML files can also be used to identify colors and animations.

After you have completed building your shed, you can share your Google android app through the Amazon or Google App-store. You can also upload it to the Android Market, which is a free the distribution channel.

Online Data Software

Virtual data software offers an easy way to protect your company from info breaches. It might be an efficient and effective ways of evaluating, enhancing and managing a large amount of information.

A virtual data bedroom (VDR) is a centralized web-based storage space where one can store confidential business paperwork. This is applied to facilitate protected sharing of critical business information during due diligence, audits, licensing, M&A and other functions.

VDRs can be purchased in several variations, all of which present various features. These include redaction, security, idea desire monitoring and object-level keeping track of. You can also decide on free, paid or personalized options. Most of them allow you to build your have access rules, which can tighten reliability.

To find the best VDR option for your organization, it is important to consider your specific needs. The company’s existing data control needs and future ideas should be considered.

Once you have an awareness of your data management needs, you can purchase a variety of online data programs. Some of the most well-liked types of software are free and subscription-based. Additionally, there are industry-specific options. Several firms specialize in the budgetary and biotech industries.

You should think about the cost, technical support, and ease of www.nuclearsafetyforum.com/ use of the virtual data software just before you purchase it. The best virtual data software must be user-friendly and ISO up to date. In addition , the software program should have strong encryption methods for protecting your computer data.