No início do ano a DClick precisou tomar uma decisão importante: com toda esta mudança no mercado precisávamos refazer o Holmes em HTML 5. Como tecnologia não é o problema, mas sim a solução, nosso time de produtos não só refez o produto inteiro em 3 meses, como também foi capaz de deixar o Holmes…
O novo Holmes faz mágica
Interação com Kinect
Interação com Kinect
A tecnologia está cada vez mais natural e intuitiva. As pessoas já usam o gesto e a fala para interagir com seus PCs e dispositivos; tais formas naturais de interagir com as tecnologias tornam mais fácil para aprender a operá-los. Neste contexto, trouxemos para a aula de robótica educacional, um sensor que é baseado na linguagem de interface de usuário natural, conhecido como Kinect. O Kinect é um sensor desenvolvido pela empresa Microsoft e a Prime Sense… continue lendo …
Responsive Web Design – RWD
Recentemente trabalhei em um projeto onde utilizamos o Design Responsivo e resolvi tratar desse tema tão importante, e a sua importância se dá não pela tecnologia empregada, mas sim, pelo caminhar do desenvolvimento da Web. Quando falamos em Web a primeira coisa que nos vem a cabeça certamente é um computador e a internet…

Identifica??o por radiofrequ?ncia ou RFID (do ingl?s “Radio-Frequency IDentification” ) ? um m?todo de identifica??o autom?tica atrav?s de sinais de r?dio, recuperando e armazenando dados remotamente atrav?s de dispositivos denominados etiquetas RFID.
Uma etiqueta ou tag RFID ? um transpondedor, pequeno objeto que pode ser colocado em uma pessoa, animal, equipamento, embalagem ou produto, dentre outros. Cont?m chips de sil?cio e antenas que lhe permite responder aos sinais de r?dio enviados por uma base transmissora. Al?m das etiquetas passivas, que respondem ao sinal enviado pela base transmissora, existem ainda as etiquetas semi-passivas e as ativas, dotadas de bateria, que lhes permite enviar o pr?prio sinal. S?o bem mais caras que do que as etiquetas passivas. (Wikip?dia)

Agora imagine um RFID aplicado em um cart?o fidelidade de um Shopping ou uma Loja como a FNAC por exemplo, e atrav?s de um sistema o vendedor com um tablet consiga ter em as ?ltimas compras, o t?cket m?dio, prefer?ncias e outras informa??es adicionais dos consumidores portadores desses cart?es e consiga dar um tratamento totalmente personalizado e pr?-ativo para cada poss?vel comprador.
Com algoritmos de intelig?ncia artificial o sistema poderia identificar se o consumidor estaria disposto ou n?o a comprar naquele momento. Quando a pessoa estivesse marcada como verde no sistema, ela estaria disposta a comprar, e quando vermelho apenas estaria pesquisando. Isso sinalizaria qual a melhor abordagem do vendedor para casa ocasia??o.
Hoje j? temos tecnologia suficiente para aplicarmos esse modelo em nosso dia-a-dia.
Confira o v?deo abaixo que demonstra como seria a aplica??o real desse sistema.
Agora que voc? viu, fica a provoca??o para voc? desenvolver esse sistema.
Mudanças para 2012

2012 será mais um ano de ascensão dos dispositivos mobile em todo o mundo. Mesmo que aqui no Brasil tudo seja mais lento, com preços mais altos, estamos seguindo em frente. Já temos frameworks javascript adaptados ? s telinhas, como o Sencha, ? e o jQueryMobile, além do Flex Mobile, claro. Outras tecnologias estão crescendo a cada dia, e a quantidade de informação que é “jogada” para nós programadores aumenta em um ritmo alucinante. Seguindo esta tendência, estamos também nos adaptando, e para que tudo fique bem claro ao leitor, decidi comentar as principais mudanças do site neste post.
Neste novo ano estaremos adotando algumas mudanças que visam melhorar a qualidade de nossas obras. As principais mudanças que estão por vir são:
1)? Fim do suporte por email: Nestes quatro anos de suporte por email, pude observar diversos prós e contras, e sempre tentei agradar a “gregos e troianos”. Nunca fiz nenhuma distinção de quem comprou ou quem não comprou meus livros, sempre respondendo as dúvidas em menos de 48 horas. Todo esse tempo foi um aprendizado enorme, e agora tenho a necessidade de “lapidar” este processo de suporte. Observei que muito das dúvidas dos leitores eram repetidas e que sempre respondia ? s mesmas questões. Observei também que, ? s vezes, dava prioridade a alguém que não tinha comprado um livro, e deixava “na fila” uma outra pessoa que tinha dúvidas relativas aos livros. Também cheguei ao ponto de responder 10, 15 e-mails por dia, tornando uma tarefa bastante trabalhosa. Neste contexto, estarei “movendo” o suporte para um fórum especial, aberto a qualquer pessoa e destinado a sanar dúvidas dos livros. Falarei mais deste fórum em um outro post, mas deixo claro que, para quem é leitor, terá como sempre o suporte 100% garantido.
2)? eBOOKs serão predominantes: Todo o processo de criação/distribuição de um ebook é perfeito aos olhos do autor se não fosse a pirataria. Realmente encontrar meus livros que consumiram várias horas de preparo e trabalho nos torrents por aí não é uma sensação boa. Mas eu quero acreditar que isso é possível! Eu quero acreditar que o brasileiro é gente honesta, que deseja pagar por um conteúdo útil sem ser “assaltado”. Por isso, em 2012, eu vou priorizar o desenvolvimento de eBooks, cobrando um preço justo, e com a meta de criar muito mais ebooks do que já foi criado atualmente.
3)? Flex não será prioridade: Nestes últimos quatro anos tenho me dedicado muito ao Flex. Fui o primeiro a escrever um livro sobre Adobe Flex no Brasil e desde então foram quase 10 livros abordando o tema. Sei que está chegando o momento em que eu terei que “dissipar” o meu conhecimento para outras áreas, pois o tema Flex já está bastante difundido, felizmente hoje em dia existe bastante conteúdo dedicado a cultura Flex e só não aprende quem não quer. Veja que, para quem escreve livros, as tecnologias saturam, mas não morrem. Este é o caso do Flex, o conteúdo está saturado, eu não tenho muito mais a escrever, por isso o foco será distribuído para outras áreas. O livro “Adobe Air em Ação” será o último livro a ser escrito para a tecnologia Flex, e não haverá mais edições previstas. O suporte continuará normalmente para quem comprou qualquer livro sobre Flex.
4)? Mobile será prioridade: Daremos certa prioridade ao desenvolvimento mobile, e dependendo de novas tecnologias que deverão surgir, estaremos pesquisando e publicando material sobre elas. Isso significa que determinados livros poderão conter menos páginas, por exemplo, 100, mas que expliquem um conceito ou tecnologia emergente.
5)? Tendências serão prioridade:? A rapidez com que uma tecnologia emerge abre uma lacuna de desinformação para nós tupiniquins. E a? idéia? é preencher esta lacuna com um livro. Por exemplo, ainda não temos um livro sobre SENSHA, muito menos EXTJS. Um livro sobre HTML 5, custa nada mais, nada menos que 73 reais. Nem temos um livro sobre a linguagem SCALA ou sobre DJANGO. Enfim, existe muito assunto para se escrever.
6)? Site flex.etc.br deixa de conter informações sobre os livros:? Todas as informações estarão no site danielschmitz.com.br. O blog flex continua, mas aos poucos deixará de ser atualizado.
Resumindo:
- Vamos publicar ebooks com qualidade e a preços atraentes, sobre diversos temas. Contamos com a aprovação de vocês, enviando críticas e sugestões, .
- Haverá um fórum dedicado ao suporte dos livros.
- Estaremos em breve publicando quais serão os primeiros eBooks a serem lançados e contamos com a sua opinião. Mande ideias !
Multiple Views com Spring Web MVC
Uma das vantagens de utilizar a arquitetura do Spring para implementar projetos Web, é fazer uso do Sprin-WEB-MVC. Quem já usou sabe que isso é uma vantagem a se considerar quando for feita a escolha das tecnologias e frameworks que serão utilizados no projeto.
Spring WEB-MVC é uma abstração poderosa para a camada de apresentação, tornando muito flexível o uso de diferentes tipos de tecnologias no frnt-end da aplicação.
Veremos uma dessas abstrações que ajudam a modularizar e simplificar nosso trabalho do lado do servidor: Views.
Conceito de Views
Toda requisição que segue para o WEB-MVC passa pelo DispatcherServlet do spring. A partir daí, o container se responsabiliza por delegar a chamada para o controller correto, baseando-se nas configurações de sua aplicação.
Depois que a chamada é tratada pelo controller, o spring manda a resposta correspondente atrelada a uma View. Uma View é um descritor da forma com que os dados vão ser apresentados na interface, podendo ser JSP, JSF, JSon, XML, etc., ou até mesmo uma forma de encapsular os dados específica da sua aplicação.
O poder das Views está justamente no fato de ser apenas uma descrição de como os dados serão apresentados, portanto desconecta-se completamente da aplicação, e pode ser aproveitada em outras ocasiões por outros sistemas.
Uma View no Spring nada mais é do que uma interface Java que descreve o tipo do conteúdo, e é responsável por renderizar a requisição:
|
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
/*
* Copyright 2002-2008 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the “License”); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an “AS IS” BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.springframework.web.servlet; import java.util.Map; import javax.servlet.http.HttpServletRequest; /** This class and the MVC approach associated with it is discussed in Chapter 12 of View implementations may differ widely. An obvious implementation would be Views should be beans. They are likely to be instantiated as beans by a ViewResolver. /** Note: This attribute is not required to be supported by all
/** Can be used to check the content type upfront, if not predetermined. /** The first step will be preparing the request: In the JSP case, in case of empty model) } |
Todo o código e JavaDoc está no projeto do Spring.
JSon e XML
Vamos criar um exemplo de controller com duas views diferentes: JSon e XML. JSon e Xml são os formatos mais comuns na Web, por isso vamos ver uma das maneiras de devolvê-las em nossos contrllers.
Não vou entrar no detalhe de como configurar os controllers da sua aplicação para funcionar com o Spring-WEB-MVC, pois não é o intuito deste post, e existe bastante documentação disponível na internet sobre o assunto.
A maneira que escolhi para o exemplo, foi deixar a resposta padrão da servlet como XML, e criar uma alternativa de view em JSon. Você pode configurar como quiser a ordem e o padrão de view da sua aplicação, essa escolha serve apenas para ilustar como lidar com os dois casos.
Comece criando alguma classe de domínio para servir de resposta do nosso controller:
|
1
2 3 4 5 6 7 8 9 10 |
Agora vamos criar um Controller para devolver nosso objeto de domínio:
|
1
2 3 4 5 6 7 8 9 10 11 12 |
@Controller
public class ExemploController @RequestMapping(“/exemplo/xml”) } |
Agora temos uma servlet que responderá por “
Vamos configurar agora nosso ‘empacotador’ de XML para torná-lo formato padrão da aplicação. No arquivo de beans do Spring crie os seguintes beans:
|
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
class=“org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter”>
bean=“marshallingHttpMessageConverter” /> > > > |
O que fizemos foi criar um “marshaller” de XML que usa o XStream para converter ‘de’ e ‘para’ XML. Também mapeamos nossa classe de domínio para o alias “exemplo”. Feito isso basta criar um bean que representa os conversores de mensagens do Spring, nesse caso ‘messageConverters’, e associar o conversor de XML nele.
Pronto! Agora que temos as configurações necessárias para criar XML, e anotamos nosso método do controller com ‘@ResponseBody’, o padrão do Spring será devolver o XML que representa a entidade de domínio criada:
|
1
2 3 |
> |
Para criar a view de JSon agora, vamos fazer de maneira diferente. Comece criando um bean em seu arquivo do Spring que representa a View de JSon:
|
1
2 3 |
class=“org.springframework.web.servlet.view.json.MappingJacksonJsonView”> > |
Note que precisamos da dependência do ‘Jackson’ no classpath do nosso projeto, que está disponível no site do projeto ou até mesmo no repositório do maven.
Agora em nosso controler, vamos adicionar a dependência da view que acabamos de criar, e adicionar o método que tratará a requisição em JSon:
|
1
2 3 4 5 6 7 8 9 10 11 12 13 14 |
Repare que não precisamos da anotação ‘@ResponseBody’, e que ao invés de devolver um ‘Exemplo’ estamos devolvendo o ModelAndView do SpringWEBMVC.
Para que a resposta chegue no formato correto, basta mandar a view de JSon que criamos junto com o ModelAndView, e o objeto de domínio. Dessa forma temos a resposta que esperamos:
|
1
2 3 4 |
“response”:
“nome”:”json” } |
Conclusão
Para a moda REST que está tomando força nos últimos tempos, as múltiplas views do Spring é uma ótima ferramenta para fazer parte dessa onda, e ainda prover diferentes maneiras de seu servidor se comunicar com diversos tipos de dispositivos e aplicações clientes, sem comprometer código com regras de negócio.
Espero ter sido útil, e qualquer dúvida, crítica ou comentário são sempre bem vindos.
Por @Gust4v0_H4xx0r
Quase tudo certo para Dominando Flex Mobile
Está quase tudo preparado para o lançamento do ebook Dominando Flex Mobile no dia 29 de novembro. Como prometido, o livro será lançado no mesmo dia que o Flash Builder 4.6 for lançado, que deve ser provavelmente agora no dia 29. Se houver atrasos perante a Adobe, nós atrasamos aqui também.
O ebook conterá 165 páginas. O preço será R$ 25,00. O formato será PDF, e vou testar o formato EPUB. Todos os exemplos do livro foram testados no Galaxy Tab com Android 2.2 e Adobe Air 3.0.
O que irei abordar:
- Introdução ao Adobe Flex
- Conhecendo o Flash Builder 4.6
- Arquitetura Flex Mobile, principalmente views
- Listas e ItemRenderers
- Componentes Flex Mobile
- Swiz para Flex Mobile
- SQLite
- Swiz + SQLite
- Integração com dispositivo (Gestos, Acelerômetro, GPS etc)
- Android/iOs Market
- Native Extensions
Flex SDK – É chegada uma nova era?
Olá pessoal Estou fazendo este post para comentar um pouco sobre esses anúncios sobre a continuação do Flex SDK pela comunidade, como a Adobe nos notificou na sexta-feira, dia 11, através deste post. A algumas décadas (isso mesmo, décadas), nós vemos o surgimento de novas tecnologias com a ideia de substituir as atuais, porque nossas [...]
Minha opinião atual sobre a “Morte do Flash”
Nesses ?ltimos dias a internet est? virada em um caos depois dos boatos e anuncio da “Morte do Flash” (descont?nuo do Flash Player para disposit?vos m?veis, leia-se smartphones e tables Android/RIM), todo um medo gerado pelo combo da not?cia com a demiss?o de 750 funcion?rios da Adobe (EUA e Europa)
Minha real opini?o ? a seguir:
No mais, os projetos continuam, novos desafios est?o surgindo, novas oportunidades de ganhar dinheiro continuam aparecendo constantemente, nada de mimimi, bora usar HTML5, e que tecnologia for…
Roubando a frase do @jandersonfc disse no final desse post: As tend?ncias s?o suas aliadas
“Tecnologia, Ferramentas e metodologia s?o o meio, dinheiro no bolso ? o fim”
Se voc? ainda est? preocupado sobre a tal morte do Flash no mobile, recomendo ler o post: Adobe desiste do Flash Player plug-in para dispositivos m?veis do @igorcosta e reflita no seu texto.
Agora se voc? j? estava jogando a toalha achando que o Flash j? era, se voc? estava fechando o “caix?o”, pode executar um rollback ai, pois ontem (10/11/2011) foi disponibilizado o novo Flash Player 11.1 e AIR 3.1. Tenha em mente que a plataforma Flash ainda ter? um bom tempo de vida. Motivo banal pelo qual n?o ir?o conseguir matar o Flash, digo que talvez esse mundo mobile tenha at? que readerir ao Flash : games, ainda mais agora com o novo suporte a acelera??o gr?fica e a 3D. Outro grande motivo, se “matarem” o Flash Player hoje haver? uma revolta mundial dos jogadores do jogos do Facebook e demais redes sociais, tamb?m sabemos que o HTML5 est? a anos luz de dist?ncia da maturidade e capacidade do Flash Player atual, ent?o o Flash Player n?o morrera.
Algo que eu tenho em mente, quando penso no assunto, eu lembro da mesma agita??o que foi na ?poca do Ajax, no final aqui estamos n?s usando o Flash ao invez do Ajax para desenvolver sistemas robustos. O HTML5 para sites e algumas outras coisas at? que j? tem como utilizar, mas creio que vamos chegar na mesma situa??o que nos deparamos a alguns anos atr?s e recorreremos a algo como o Flash que ? mais robusto para desenvolvimento de sistemas.
Algu?m me diz como ? que eu fa?o uma arquitetura organizada, com pacotes no JavaScript?
Algu?m sabe se existe alguma maneira de trabalhar com IoC no JavaScript?
Fora outras quest?es para as quais n?o tenho resposta de como fazer usando HTML5 + JS + CSS3
Lembrando que a compatibilidade crossbrowser do HTML5 ? um pesadelo [mobile] [web browsers teste] [demos teste]
N?o estou dizendo que sou contra o HTML5, mas hoje ele ainda ? muito imaturo para desenvolver, leia bem: sistemas
E como n?o devemos nos apegar a tecnologia alguma, muito menos rejeitar qualquer outra que o mercado est? aderindo, recomendo o HTML5 Rocks para quem quizer estudar o HTML5.
No mais, n?o se desespere com as not?cias que voc? l? na internet, mas mantenha-se sempre atualizado, pois quem escolhe que tecnologia voc? ir? utilizar no pr?ximo projeto, provavelmente ser? o seu cliente, pedindo se roda no iPad…
Veja também:
Desenvolvedor Flex






