The source of the spring in the little chapel. #chapel #springsource #spring #source #stwinefrideswell #holywell #holywater #holyplace #holy #healingwater #water #wales #northwales (at St Winefride's Well)

seen from India

seen from United States

seen from Singapore
seen from United States
seen from Vietnam

seen from Malaysia

seen from Malaysia
seen from Malaysia
seen from Malaysia
seen from South Korea

seen from Türkiye
seen from United Kingdom

seen from Maldives

seen from Germany
seen from United States

seen from Malaysia
seen from China
seen from China

seen from Malaysia
seen from United States
The source of the spring in the little chapel. #chapel #springsource #spring #source #stwinefrideswell #holywell #holywater #holyplace #holy #healingwater #water #wales #northwales (at St Winefride's Well)
#springsource #snow #trip #imereti #region #georgia #travellust #photography
The Spring Framework is the defacto Swiss Army Knife framework for Java. If you know Java, but don't know Spring, you don't *really* know
Javaコミュニティがあんまり活発じゃないとこで、未だにStruts使ってる人たちとかいるところで、SpringでRestなAPIのデモ見せたら反応良かったよー的なエピソードは分かったりもしますが、ココまで普段のカジュアルなフリートーク的な感じで話されると早くてついてイケなかったり、爆笑してるとこが全然笑えなかったり。。
んま、これ、2012年の1月のエピソードなのでちと古いのですが、Pivotalの事も聞きたいなー
↓JoshさんがVMwareの東京オフィスに来た時に参加した勉強会に参加した際のブログ
http://shinodogg.com/?p=4837
How Martin Odersky rewrote the rules of coding for a mobile world
#SuryaRay #Surya Next time you pull out your smartphone to use a popular application – whether it’s to price check items in a store, to tweet or to check your cloud-based calendar — you might thank Martin Odersky. Odersky is something of a superstar in the Java programming world. He wrote the most widely used Java C compiler, and now he’s the force behind the fast-growing Scala programming language. That language makes it easier for developers to code for “parallelism,” which is what allows tens of thousands of people to use an application at the same time without crashing it. In the pre-cloud, client-server era, you might have had a couple hundred – or maybe thousand – users hammering on a server-based application. But they accessed it from company-issued PCs, so programmers could assume a finite number of users and make sure they had enough server power and bandwidth to support that number. That all goes away in today’s world, where millions of people use popular applications at the same time. How many smartphone users hit Twitter during a major sporting event? Or on election day? Your guess is as good as mine. It is that scale that parallelism enables and that Scala helps makes easier to program. Why Scala? Up until a few years ago, to make applications perform better you installed a faster processor. But we’ve pretty much maxed out the speed limit for individual chips. So best way to get better performance now is to use chips with multiple cores, all operating at a high speed, and to spread the workload among them. Here’s an admittedly simplistic analogy: Instead of packing multiple tons of cargo onto a single huge freighter, you divvy the load up among an array of smaller boats that can move faster. The key is to have a captain who knows how to take advantage of that expanded fleet — or, to bring the analogy back to the tech world, an application that knows how to take advantage of those multiple cores. Instead of writing a program that runs on a single core, you have to write a program that’s smarter about deploying the workloads among many cores. “Single-core performance is running out of steam, and you need to parallelize everything,” Odersky told me in a recent interview. You do that through what’s known as functional programming. Ray Ozzie, the former chief software architect for Microsoft and no slouch when it comes to coding, likens functional programming to spreadsheets where each cell in the spreadsheet containing that formula acts as an independent processor working concurrently to keep the spreadsheet updated. It’s a parallel computing system enabled by functional programming, Ozzie says via email. Scala works with Java and compiles in the JVM, which is significant because many, many of the world’s enterprise applications are written in Java. It’s not a stretch to say there are millions of Java programmers (Oracle, which now owns Java, claims 9 million.) With Scala these programmers can keep using their Java libraries, frameworks and the JVM while also taking advantage of functional programming, which tends to be less verbose than Java code. That brevity leads to more compact, elegant software compared to older-style imperative programming. With imperative programming, variables can evolve over time, while in functional programming variables keep the same value. The notion of shifting variables poses a problem in a parallel process where one part of the program executes based on an older value that has since changed. Scala gains steam In September, Redmonk analyst Stephen O’Grady used data from Github and Stackoverflow to show Scala on its way to becoming a top-tier language, along with Java, Javascript, PHP, and Python. Other functional languages such as Erlang and Haskel have their admirers but their user base isn’t growing as fast, according to this data. Odersky, a professor at the Ecole Polytechnique Federale de Lausanne (EPFL) in Switzerland, is also co-founder and CTO of Typesafe, a San Francisco startup that promotes the use of Scala and related Akka middleware, especially in the enterprise. Typesafe customers include LinkedIn and the Dutch Border Patrol, which uses a Scala-based application to photograph every car coming into the country and quickly know — based on the license plate — whether to stop that car or not. Twitter and FourSquare are also Scala users. Odersky also teaches a Coursera class on Scala that drew an astounding 45,000 registrants. “I studied with lots of amazing people at MIT, but very few successfully cross that academic-to-business divide, and Martin has,” says Bill Kaiser, a partner with Greylock Partners, a Typesafe investor. Odersky’s ongoing interaction with students allows him to stay involved in what’s new in programming, adds Mark Brewer, CEO of Typesafe, who jokes that Odersky spends about 50 hours a week on Typesafe business and another 50 teaching. The programming pantheon Those two and others make the case that Odersky belongs in the same pantheon of programming gods as James Gosling, the father of Java itself; Niklaus Wirth, who wrote Pascal (and with whom Odersky studied); Anders Hejlsberg, of Turbo Pascal fame; and Bjarne Stoustrup, who wrote C++ and other languages. Rod Johnson, the co-founder of Springsource, now part of VMware, and now a director of Typesafe, says Martin “absolutely” belongs in this august company. “Considering prior art in each case, I would rate Scala as a more impressive — and original — achievement than Java or C# and on a par with C++,” Johnson says via email. “The way Scala successfully mixes functions and objects; the way in which it resolves the multiple inheritance problem; its effective type inference; and its interoperability with Java are all particularly impressive.” The next frontier Odersky said the explosion of mobile devices continues to challenge programmers. While new languages and tools like Scala helped, more needs to be done to deliver software that keeps up with the new hardware. For one thing, it needs to bet much easier for non-programming geniuses to both write and troubleshoot such software. “If you want to write a multi-threaded application now it’s still nightmarishly difficult. There are lots of mistakes that are hard to detect. We have to make programming these kinds of applications feasible for everyone, not just experts and that is very hard,” he says. For more on Odersky and Scala, check out this video of a talk he gave at Intel. Intel hosts Dr. Martin Odersky presenting Scala 2.10 from Typesafe on Vimeo. http://dlvr.it/2XynRt @suryaray
RESTful Webservices con Java (Jersey / JAX-RS) - Tutorial Uno
REST con Java (JAX-RS) usando Jersey
Este articulo explica como desarrollar RESTful web services en Java con JAX-RS implementacion de Jersey.
En este ejemplo se usara SpringSource Tools Suite(Eclipse Helios), Java 1.6, SpringSource TC Server and JAX-RS 1.1. (Jersey 1.4).
1. REST - Representational State Transfer
1.1 Informacion General:
En una Arquitectura REST tipicamente se tiene un REST server, el cual provee acceso a los Clientes REST que acceden a consultar, modificar un Recurso REST.
REST permite que los recursos sean presentados en diferentes tipos de datos, "text, html, xml, JSON". El Cliente REST puede generar una peticion de un tipo de dato via el protocolo HTTP.
1.2. HTTP metodos
Los metodos estandar HTTP usados en en REST son PUT, GET, POST, DELETE.
1.3. RESTFul webservices
Un RESTFul webservices es basados en metodos HTTP y en el concepto REST. Por lo general se define URI base para los servicios, los MIME-types sus soportes (XML, Text, JSON, user-defined,..) y un conjunto de operaciones (POST, GET, PUT, DELETE) que seran soportados. JAX-RS soporta la creacion de XML y JSON.
1.4. Java, REST and Jersey
Java define el estandar de REST via JAX-RS (The Java API for RESTful Web Services) en JSR 311 . Jersey : es la implementación de referencia de esta especificación. Jersey contiene basicamente el core server y el core client. El core client provee una libreria para comunicar con el Server.
JAX-RS usa anotaciones que definen las clases pertinentes de REST.
2. Instalacion
2.1. Jersey
Download Jersey de Jersey Homepage . extraer el zip y usar los JARS de la carpeta lib
2.2. STS(Eclipse) y STS Server(Tomcat)
Descargar
SpringSource Tool Suite STS server viene incluido en el STS.
3. Crear tu primer RESTful Webservice
Crear un nuevo proyecto "Dynamic Web Project" "WebServiceOne".
Copiar todo los jars de la carpeta lib de zip Jersey dentro de "WEB-INF/lib".
3.2. Java Class
Crear la clase domain.
package com.android.peru.wsone; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class WSOneAll { private String summary; private String description; public String getSummary() { return summary; } public void setSummary(String summary) { this.summary = summary; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } }
Crear la siguiente clase.
package com.android.peru.wsone;
import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @Path("/WSOneAll") public class WSOneAllResource { @GET @Produces( { MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) public WSOneAll getXML() { WSOneAll wsOneAll = new WSOneAll(); wsOneAll.setSummary("Este es mi primer WS."); wsOneAll.setDescription("JSON: Este es mi primer WS con XML, JSON"); return wsOneAll; } // This can be used to test the integration with the browser @GET @Produces( { MediaType.TEXT_XML }) public WSOneAll getHTML() { WSOneAll wsOneAll = new WSOneAll(); wsOneAll.setSummary("Este es mi primer WS."); wsOneAll.setDescription("XML: Este es mi primer WS con XML, JSON"); return wsOneAll; } }
3.3. Definir Jersey Servlet dispatcher
Necesitas registrar Jersey como servlet dispatcher para REST requests. abrir el archivo "web.xml" y modificar lo siguiente.
Tip
El parametro "com.sun.jersey.config.property.package" define en que package buscara las clases Web Service.
3.4. Run your rest service
Correr la aplicacion web en el STS Server. Probar tu REST service con la siguiente url: "http://localhost:8080/WebServiceOne/rest/WSOneAll"..
El Explorer debe mostrar:
xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <wsOneAll>
<description>JSON: Este es mi primer WS con XML, JSONdescription>
<summary>Este es mi primer WS.summary>
wsOneAll>
3.5. Crear un cliente
Jersey contiene una libreria REST client. Esta libreria es usada para testing o para construir un REST client en Java.
Crear una nueva clase Java "com.android.peru.wsone.client.WSOneClient".
package com.android.peru.wsone.client; import java.net.URI; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.UriBuilder; import com.sun.jersey.api.client.Client; import com.sun.jersey.api.client.ClientResponse; import com.sun.jersey.api.client.WebResource; import com.sun.jersey.api.client.config.ClientConfig; import com.sun.jersey.api.client.config.DefaultClientConfig; public class WSOneClient { public static void main(String[] args) { WSOneAllClient(); } private static void WSOneAllClient(){ ClientConfig config = new DefaultClientConfig(); Client client = Client.create(config); WebResource service = client.resource(getBaseURIWS()); System.out.println(service.path("rest").path("WSOneAll").accept( MediaType.TEXT_XML).get(String.class)); System.out.println(service.path("rest").path("WSOneAll").accept( MediaType.APPLICATION_JSON).get(String.class)); System.out.println(service.path("rest").path("WSOneAll").accept( MediaType.APPLICATION_XML).get(String.class)); }
private static URI getBaseURIWS() { return UriBuilder.fromUri( "http://localhost:8080/WebServiceOne").build(); } }
Thank you
Gracias, Espero sirva de ayuda a la gente que esta iniciando con Web Service, en especial REST.
David Motta B.
Announcing the Final Release of GWT 2.1
Sale el Release Final de GWT 2.1, anunciado en el blog oficial de GWT
"Desde hace varios meses, hemos estado trabajando duro para añadir las características y funcionalidad que se hizo una demostración por primera vez en Google I de este año / O. El objetivo de este comunicado ha sido para hacer más fácil la construcción de aplicaciones empresariales orientadas a web que se puede sacar el máximo provecho de la nube - el despliegue de cero, la ampliación instantánea, ahorro de costes, y la portabilidad que permite ejecutar su aplicación en una variedad de entornos en la nube, como el de Google App Engine, y VMware solución in situ, vFabric. Hace unas semanas mencionamos que estábamos cerca de envolver este proyecto, y hoy estamos felices de anunciar la disponibilidad general de estas herramientas."
En los que se destaca las caracteristicas principales:
Developer Tools for Business Apps
Google Web Toolkit SDK
Data bound views
Highly optimized communication layer
MVP support
Cell widgets
Spring Roo
Google Plugin for Eclipse
Better support for Maven projects
Speed Tracer
UI enhancements
Google Speed Tracer
App Engine
Spring Insight
Getting Started
Para iniciar la un mantenimiento veloz puedes usar Spring Roo and SpringSource Tool Suite, para ello debes descargar SpringSource Tool Suite y instalar el Google Plugin para Eclipse.
Una vez completado, inicia con unos comandos simples de Roo.
Por default generar una aplicacion con esta vista:
Ademas, el projecto generado por comandos podras importarlo com un proyecto Maven y personalizar y seguir desarrollando usando el IDE en este caso Eclipse o STS”.
Una vez importado puedes iniciar a correr la aplicacion “Run As->Web Application”
para que inicies la personalizacion usa esta guia GWT Developer Guides y Roo documentation.
Ademas hay un manual completo “Getting Started” Getting Started with GWT, Spring Roo, and SpringSource Tool Suite.
Download the Google Plugin for Eclipse or SpringSource Tool Suite to get started now!
Articulo publicado en : Google Web Toolkit Blog
GWT 2.1 RC1 con Spring Roo RC1 y SpringSource Tool Suite RC1 disponible
Anuncian la primera versión release (RC1)de GWT 2.1. producto del trabajo en conjunto con VMware y Spring Source, hay varias mejoras que hacen muy bueno de este release.
SafeHTML
Nuevo Editor framework que permite enlazar los DTOs con los UI
Activities/Places
RequestFactory
Cell-based widget APIs
GWT 2.1 RC esta disponible en Google Code download site y la version 2.1-SNAPSHOT en Google Maven Snapshot Repository.
Ademas, VMWare estara liberando Spring Roo RC1 y SpringSource Tool Suite RC1 con lo nuevo de GWT 2.1
via blog Google Web ToolKit
Ejemplo Spring Roo: maven, dojo toolkit, spring web flow y spring core
Spring Roo, herramienta de generación rapida de aplicaciones Java, en este ejemplo se usa Dojo Toolkit, Spring core, webflow, mvc, Apache Maven, y Hibernate. Pasos para iniciar un ejemplo
Descargar Spring Tools Suite(STS)
Configurar CLASSPATH para Spring ROO, y MAVEN
Crear un directorio via MS-DOS( mkdir [NombreProjecto]), luego entrar a la carpeta via DOS.
ejecutar en consola roo, para entrar a la consola de Spring Roo tal como se aprecia en la imagen.
Consola Spring Roo
5. Ejecutar los siguientes comandos:
hint
project --topLevelPackage pe.edu.upc.citas.clinicas
persistence setup --provider HIBERNATE --database HYPERSONIC_PERSISTENT
database properties list
entity --class ~.domain.Cliente
field string codigo --notNull --sizeMin 1 --sizeMax 10
field string nombres --sizeMax 128
field string apellidos --sizeMax 128
field number edad --type java.lang.Integer
field number dni --type java.lang.Integer
field date fechaNaci --type java.util.Date
test integration
controller scaffold ~.web.CitasController
selenium test --controller ~.web.CitasController
perform test
perform eclipse
quit
6. Luego Importar el proyecto con el ID STS(Spring tool suite).
7. Deployar en el Servidor SpringSource tc Server Developer Edition v2.0
8. iniciar el servidor
9. Entrar a la aplicacion http://localhost:8080/clinicas/clientes
Como se puede apreciar con Roo usted puede construir fácilmente aplicaciones Java completo en cuestión de minutos. Se diferencia de otras herramientas de productividad.