Após o grande esforço de finalização e lançamento do Firefox 4, a Mozilla voltou a planejar melhorias na área de JavaScript. Os principais focos são depuração e desempenho. Alguns pontos que merecem destaque são:
-Nova API de depuração – As ferramentas de depuração do Firefox passarão a contar com um novo objeto, o Debug, que já está sendo especificado. Além disso, será possível realizar a depuração remota. Isso significa, por exemplo, depurar páginas em dispositivos móveis a partir de um computador comum.
-Melhorias na desalocação de memória – O algoritmo de desalocação automática de memória (garbage collection) usado no Firefox suspende o processamento JavaScript durante a busca por objetos fora de uso. O tempo consumido nessa atividade (em torno de 100 ms, caso haja muitos objetos) se torna perceptível, por exemplo, em animações. Este é talvez o maior problema de desempenho do navegador atualmente. Para resolvê-lo, a ideia é desalocar memória com mais frequência, usando algoritmos mais sofisticados (ex.: coleta de lixo incremental e geracional).
-Inferência de tipos e otimização de código – O componente do navegador que gera código nativo a partir de JavaScript será melhorado para identificar, sempre que possível, os tipos das variáveis através de análise estática de código. Isso poupará o tempo gasto com verificações de tipos durante a execução do programa. A nova versão do compilador (chamada IonMonkey) também usará essas informações sobre tipos para realizar otimizações de código que dependem delas.
O investimento em desempenho vai contribuir com a meta da Mozilla para o Firefox, de sempre responder a ações do usuário em no máximo 50 ms. Além das atividades relativas a JavaScript, existem ainda vários outros objetivos para 2011. Eles abrangem melhorias em acessibilidade, conexão, DOM, gráficos, vídeo e layout de páginas.
Foi anunciada a versão beta da linguagem Eclipse Xtend 2. A Xtend é uma linguagem de programação baseada na linguagem Java, com tipagem estática, que, ao contrário da maioria das linguagens que rodam na JVM, não gera bytecode, mas sim código Java.
Conforme apresentado por Sven Efftinge, um dos criadores da linguagem, em seu blog, a linguagem Xtend tem como objetivo ser uma solução melhor para a implementação de injeção de dependências; também se adequa bem à geração de código. A Xtend foi baseda na XText, uma linguagem primariamente voltada ao desenvolvimento de outras linguagens.
As principais características da atual versão da XTend são:
- Inferência avançada de tipos, que praticamente remove a necessidade de declaração de tipos;
- Suporte completo ao uso de tipos genéricos (Generics);
- Implementação que permite o
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
Lançada oficialmente em novembro de 2010 a WEB-03 é uma empresa que tem como objetivo gerenciar e produzir uma rede de websites monetizáveis, principalmente na area de TI.
Veja abaixo alguns números da web03:
+10 milhões de pageviews/mês;
+1 milhão de usuários/mês;
+500 mil cadastrados em nossa base de usuários.
A WEB-03 já nasce grande, contendo os sites abaixo:
www.devmedia.com.br: O maior portal para desenvolvedores de software em português.
Possui mais de 400.000 cadastrados e seis milhões de page view por mês. Possui diversos serviços online tais como cursos, vídeos, ofertas de emprego, etc.
www.javafree.org: um dos maiores fóruns sobre Java do Brasil. Com diversos artigos e uma ativa comunidade de usuários, atinge mais de quatro milhões de page views por mês [site adquirido em junho de 2010].
www.linhadecodigo.com.br: Um dos maiores sites sobre desenvolvimento de software em português. Milhares de artigos, vídeos, empregos e muito mais [site adquirido em novembro de 2010].
www.mrbool.com: portal for software developers, in english. several articles and more than 600 video tutorials published, and growing up.
É um orgulho para a WEB-03 poder nascer já contando com sua visita; Obrigado por ser usuário dos nossos sites!
Nos dias 3 e 4 de junho em São Paulo, acontecerá o .Net Architects Days, uma conferência nacional sem fins lucrativos focada principalmente na arquitetura de software na plataforma .NET. A data final para submissões de palestras (e outras ideias) é 16 de maio, e as inscrições já estão abertas.
O objetivo do DNAD (o D inicial vem de "DotNet") é, segundo a organização do evento, oferecer uma "visão avançada de padrões, práticas, técnicas e ferramentas que permitem o desenvolvimento sustentável de um aplicativo". Os palestrantes são figuras conhecidas do .NET Architects (um grupo para discussão de arquitetura de software), do mercado e da comunidade em geral, incluindo arquitetos, MVPs (Microsoft Most Valued Professionals) e outros especialistas.
"O objetivo na seleção dos palestrantes tem sido escolher entre desenvolvedores com experiência prática de mercado", disse ao InfoQ Maurício Aniche, que faz parte da equipe de organização. E acrescentou:
"Como o foco deste evento é menos tecnologia e mais arquitetura de software, estamos indo a fundo em alguns temas importantes, como SOA, arquitetura emergente e carreira. Será uma oportunidade para o aprofundamento em assuntos que normalmente parecem complicados, mas que os palestrantes vão buscar deixar simples."
O .NET Architects Days não é um evento exclusivo da comunidade .NET. Este ano haverá a presença de palestrantes de outras áreas, como Java, Ruby e NoSQL, pretendendo-se trazer assim uma visão técnica mais ampla e complementar. Uma grade preliminar de palestras já está disponível.
Uma iniciativa de programadores em Arduino pretende fazer com que a programação fique ainda mais acessível para quem quer começar a brincar com a plataforma. Com uma interface sensível ao toque e com ferramentas “Arraste e Solte”, eles fizeram com que criar um programa para um sistema qualquer fique bem mais simples.
O Minibloq (blog.minibloq.org) é uma iniciativa de programadores argentinos para a criação de um interface gráfica de uso livre para placas Arduino e algumas outras.
No YouTube (goo.gl/EVjcg) há um curto vídeo mostrando alguns exemplos de linhas de programação que podem ser inseridas em um programa por mei
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
Mesmo com a ascensão do Chrome, o Firefox ainda mantém uma base respeitável de usuários. Para muitos desses, a maturidade das extensões, que permitem personalizar o navegador em níveis nos quais os concorrentes sequer imaginam chegar, é o grande diferencial.
Essa liberdade cobra um preço: desempenho. Segundo a própria Mozilla, cada extensão instalada aumenta, em média, em 10% o tempo que o Firefox leva para ser aberto. Usando a boa e velha matemática, com dez extensões instaladas, cenário bastante comum entre usuários do navegador, o tempo para abri-lo dobra.
E piora. A média é de 10% de atraso, mas há casos, ou melhor, extensões que extrapolam em muito esse valor, chegando a, sozinhas, aumentar em mais de 70% o carregamento do Firefox. Para essas, a Mozilla tem uma péssima notícia: elas estarão presentes num ranking que parece mais um hall da infâmia.
Dê um pulo na página
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
Foi apresentado no keynote no MIX o IE 10 Platform Preview 1. No meio de todo o alvoroço sobre as melhorias de desempenho, um ponto importante ficou aparentemente esquecido: o que a Microsoft realmente quer dizer com "HTML5 nativo"? Estamos falando basicamente de aceleração de hardware? Achamos que não.
O comunicado à imprensa divulgado no blog do IE enfatiza o uso de padrões, mas indica alguns objetivos de longo prazo nos três primeiros parágrafos (ênfase acrescentada pelo autor):
"O IE 10 Platform Preview 1 é o primeiro passo na concretização da nova onda de melhorias visando suporte nativo ao HTML 5. Sites com HTML5 rodam melhor quando rodam nativamente em um browser que seja otimizado para o sistema operacional do computador ou dispositivo.
Construímos o IE9 a partir do zero para que o Windows ofereça o melhor da experiência do HTML5 de maneira nativa em assim a melhor experiência web em ambiente Windows. O IE 10 continua no caminho do IE 9, usando diretamente o que é fornecido pelo Windows e evitando abstrações, camadas e bibliotecas que interfiram na velocidade dos sites e na qualidade da experiência do usuário.
Somente o Windows 7 com o IE9 oferece, hoje, uma experiência de web e HTML nativos. A abordagem de tirar proveito do que o sistema operacional oferece - de recursos gráficos nativos, às jump lists - maximiza o desempenho, a usabilidade e a confiabilidade. A melhor experiência com o HTML5 é nativa ao SO, para que sites passem pelo menor número de camadas de conversão. Essa melhor experiência permite que sites utilizem o mesmo HTML, CSS e scripts entre diferentes navegadores, respeita o tempo dos desenvolvedores e permite que sites com HTML5 não sejam tratados como se usassem tecnologias instáveis."
Note-se que jump lists não têm nada a ver com a aceleração de hardware ou o desempenho em geral. O que parece estar acontecendo neste caso é uma tentativa de utilizar o HTML5 como forma de construir aplicações nativas no Windows. Jump lists são apenas uma pequena demonstração de uma série de novos recursos em desenvolvimento.
Para tentar prever o que está por vir, é necessário entender o que diferencia uma aplicação nativa de uma aplicação web e depois retirar dessas funcionalidades o que já é contemplado pelo HTML5. Considere o exemplo de um editor de texto para web. Precisaríamos das seguintes funcionalidades:
1. Edição de texto 2. Formatação 3. Fontes 4. Carregar/salvar arquivos em unidades locais/rede 5. Carregar/salvar arquivos na web 6. Verificação ortográfica e gramatical 7. Lista de itens recent
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
O Greenfoot é um software livre que ensina crianças a programar celulares, através de joguinhos, que combina um framework para desenvolvimento em Java com um ambiente de desenvolvimento integrado, onde a parte visual é trabalhada através de jogos.
Ele foi criado na Inglaterra, na Universidade de Kent, com o intúito de desenvolver a lógica em crianças a partir de 5 anos. Hoje ele é utilizado por vários locais no mundo e até em cursos de ensino superior. Alguns países como Espanha, Itália, França, China e até mesmo o Brasil, já possuem o tutorial do Greenfoot traduzido para a sua linguagem nativa.
O melhor de tudo é que para escrever código no Greenfoot não é necessário um computador potente, ele é leve e roda até naqueles computadores que já estão indo para a sucata. Muitas escolas, que hoje não tem equipamentos sofisticados, podem usar seu laboratório de informática com máquinas bem simples, reforçando o desenvolvimento educacional de seus alunos a partir do Greenfoot.
A utilização do Greenfoot na educação é realizada principalmente através do desenvolvimento de jogos, porém pode ser utilizado para o desenvolvimento de aplicações em geral, desde que estas possuam uma parte gráfica.
Por isso, é um software fácil de ser utilizado e dinâmico. Em sua interface gráfica, podem ser criados e colocados objetos que representam um mundo. Esses objetos podem adquirir papéis diferentes, como: mundo, ator do mundo ou simplesmente um objeto do mundo. Esses objetos possuem algumas ações pré-definidas e estas podem ser programadas e ampliadas.
O material do Greenfoot é muito bem documentado, porém, em sua maioria, os textos são fornecidos apenas na língua Inglesa. Desafio: Quase todos os documentos ainda não possuem tradução para o português.
A proposta de trabalho do DFJUG para nossa comunidade é trazer o Greenfoot para as escolas e telecentros brasileiros. Imaginem como isso iria ajudar crianças que já nascem com a habilidade natural de ”mexer” em computadores, celulares e outros equipamentos eletrônicos, aquilo que a psicologia chama talento para a análise lógico-simbólica? Elas estariam desde pequenas em contato com as novas tecnologias e reforçando o desenvolvimento de seu raciocínio lógico.
O DFJUG convidou a colega Luciana Pereira de Araújo, de Blumenau (SC), para coordenar a comunidade interessada em participar desta importante e bonita atividade. Nossa proposta é comunitariamente trabalharmos d
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
Recentemente, dois grandes projetos anunciaram que irão começar a usar o Git. O primeiro dos dois a fazer o anúncio foi o Glasgow Haskell Compiler, também conhecido como GHC. Depois foi a vez do Eclipse anunciar que irá espelhar os seus repositórios no Git.
A equipe do GHC fez uma longa análise entre vários sistemas de controle de versão distribuídos, antes de optar pelo Git. Segundo a equipe, a escolha se resumiu ao grau de suporte disponível e também à flexibilidade que o Git proporciona aos desenvolvedores. Além disso, a velocidade e o bom suporte existente no Windows justificaram ainda mais a escolha, de acordo com a equipe.
Na última semana, a equipe do GHC fez a migração final para o Git. Essa mudança é notável se considerarmos que antes o GHC uti
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
A Noelios Technologies anunciou a versão 2.1 M3 do framework open source Restlet, projeto que foi criado em 2005 como uma alternativa à Servlet API da plataforma Java EE. Ao contrário dos servlets, os "restlets" não são específicos ao protocolo HTTP e podem ser chamados programaticamente. Além de na própria Java EE, o framework Restlet pode ser usado em aplicações Java SE, em sistemas baseados no Google App Engine (GAE) e no Google Web Toolkit (GWT), e em aplicações para Android.
Mais detalhes sobre as mudanças na nova versão:
- Atualização para o GWT 2.2, também lançado recentemente, que trouxe o novo editor visual de interfaces GWT Designer e o suporte experimental a HTML 5.
- Novo conector para o protocolo SIP, adaptando o framework Restlet para aplicações de voz sobre IP (VoIP), como foi feito com a própria Servlet API na JSR 116.
- Nova extensão para o Google Secure Data Connector (SDC), que permite a integração entre sistemas hospedados no Google App Engine e em servidores internos protegidos por firewall.
Conforme o roadmap do projeto, os objetivos para as próximas versões incluem suporte para a web móvel e o desenvolvimento de plug-ins para o Eclipse, além de novos exemplos para a documentação, entre outras melhorias.
A UML provê diversos diagramas para modelar sistemas de software. Cada um desses diagramas é adequado para uma determinada situação e visão de software. O livro “UML: guia do usuário” [1], aborda todos os diagramas UML de forma didática e exemplificada. Ele é uma boa referência para o leitor que deseja se aprofundar no estudo de modelagem de software.
Neste artigo o foco será o diagrama de classes da UML, que é um dos diagramas mais importantes da UML. Ele apresenta as estruturas estáticas do sistema, que são as classes, os relacionamentos, atributos e métodos de cada classe. Ele pode ser utilizado tanto na fase de análise dos requisitos (representando conceitos do mundo real relevantes ao sistema) quanto na fase de projeto (modelando artefatos de código que serão implementados em alguma linguagem de programação do modo como estão representados no diagrama).
Nas seções a seguir, apresentaremos suas características, demonstrando como modelar neste diagrama os conceitos relacionados aos sistemas que desenvolvemos e, em seguida, como implementar o que modelamos no diagrama de classes utilizando a linguagem Java.
Fundamentos: Classes, Atributos e Métodos
O elemento fundamental do diagrama de classes é, obviamente, a classe. Uma classe é representada por um retângulo dividido verticalmente em três seções que contêm, respectivamente, o nome, os atributos e os métodos dessa classe. A Figura 1 mostra como representar classes em UML.
No diagrama da Figura 1 foi modelada a classe Usuario, que possivelmente representa usuários do sistema em questão. Usuario é uma classe concreta, ou seja, pode ter instâncias diretas. Caso se queira representar uma classe abstrata (em Java utiliza-se as palavras-chave abstract class), deve-se colocar o nome da classe em itálico ou associá-la ao estereótipo<<abstract>>, colocando-o acima do nome da mesma. Estereótipos são utilizados também para declarar interfaces, as quais serão abordadas mais adiante.
Estereótipos: Um estereótipo é um dos mecanismos de extensão da UML, que permite que um desenvolvedor crie uma nova categoria de elementos – no caso deste artigo, classes, porém estereótipos podem ser aplicados a vários outros elementos da UML.
A nova categoria pode definir propriedades ou maneiras de utilização específicas, geralmente ligadas a um domínio em particular, que são associadas automaticamente ao elemento que recebe o estereótipo. Por exemplo, as extensões da UML para aplicações Web propostas por Conallen [5] incluem estereótipos relacionados com a plataforma Web, como <<screen>> para telas, <<input form>> para formulários, e assim por diante.
Estereótipos podem ter um ícone ou representação gráfica associada. Nestes casos, é possível representar que um elemento pertence a um determinado estereótipo utilizando tal ícone ou representação gráfica, além da forma padrão que adiciona o nome do estereótipo entre os símbolos “<<” e “>>” acima do nome do elemento.
Métodos e atributos possuem modificadores de acesso que definem a visibilidade destes elementos por parte de outras classes do sistema. Tais modificadores são representados no diagrama pelos símbolos ~, +, – , e #, que devem ser colocados antes dos nomes dos métodos/atributos. Estes quatro símbolos representam os seguintes modificadores na linguagem Java:
·Default ou package-private (privativo ao pacote): representado pelo símbolo ~ (til) e conhecido como package em UML. Não há palavra-chave associada em Java e é utilizado quando o modificador não é especificado. Ex.: o atributo CPF da classe Usuario;
·private (privado): representado pelo símbolo – (menos). Ex.: o atributo nome;
·protected (protegido): representado pelo símbolo # (cerquilha). Ex.: o atributo idade;
·public (público): representado pelo símbolo + (mais). Ex.: o atributo RG.
Existem algumas características dos modificadores de acesso que devem estar em mente ao se criar um modelo. Os membros (atributos ou métodos) marcados como privado só podem ser acessados por métodos da mesma classe. Dessa forma, para outra classe acessar um membro privado é necessário invocar um método não privado declarado na mesma classe que chame esse membro internamente. Utiliza-se o modificador private para restringir o acesso desse membro por outras classes.
Neste ponto já é possível ver alguns dos benefícios do paradigma OO citados na primeira parte desta série de artigos: se uma classe A só pode manipular os atributos de uma classe B através dos métodos de B, então dizemos que os atributos de B estão encapsulados. E se a classe A só possui conhecimento dos métodos da classe B e não conhece os detalhes de sua implementação, então dizemos que A e B são fracamente acopladas.
Os modificadores de acesso
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
Todas as histórias contadas pelo ser humano partem dos mesmos 36 arquétipos dramáticos. É o que defendeu Georges Polti em seu livro “L’art d’inventer les personnages”. No cinema não é diferente e agora o Iphone lança um aplicativo para encontrar semelhanças entre os filmes criando uma rede de conexões entre eles.
Trata-se de um novo aplicativo para IPhone chamado Movies Mobile, criado pela New England Complex Systems Institute. O invento cria uma rede de relacionamento entre 500 filmes selecionados pelo site IMDB e permite que o usuário explore as conexões, similaridades e curiosidades entre eles, como um cientista examinaria ligações de genes ou proteínas. Segundo o site Appolicious pelo aplicativo é possível indicar seus favoritos, ler resenhas e marcar os filmes que você ainda não viu.
“O mais impressionante não pé o mapa por si só, mas o nível de possibilidades de exploração da interface” disse o presidente do Instituto ao Yaneer Bar-Yam à Wired. O aplicativo custa 0,99 dólares no site do Itunes. -->">