Showing posts with label html5. Show all posts
Showing posts with label html5. Show all posts

Monday, October 13, 2014

Digging Deeper - RequireJS and ES6 Modules

I was exploring RequireJS and ES6 Modules some more this weekend. Originally I started to explore how I can use richer domain objects (classes) as part of our AngularJS application that uses RequireJS for modularization. As part of that endeavor, using RequireJS looks like an interesting approach to inject classes into the application (Remember that AngularJS injects class instances ;-)

Here is a list of interesting resources that I came across.

RequireJS Basics

In order to get a refresher/introduction to RequireJS, I found Rob Dodson's RequireJS -- Embracing the Awesomeness of Asynchronous Modules quite nice:
Integrating AngularJS and RequireJS

Thomas Burleson's Angular and RequireJS from ng-conf 2014 was high on my consumption list. I think his explanation of how RequireJS relates to AngularJS was perfect.
I thought his code example was a tad on the complex side, though (Meaning I may need to revisit it ;-). For practical purposes, I then discovered Burke Holland's Requiring vs Browserifying Angular which I think is the nicest tutorial I came across:
The tutorial also underlines the point that using AngularJS and RequireJS is not for the faint of heart. It has its challenges. Maybe I need to look at Browserify?

One challenge I came across this morning for example,  is to make angular-masonry work with RequireJS. I was able to solve that challenge using this Stackoverflow posting:
Whats is coming with ES6 Modules

When looking at modules, it does not take long to come across ES6 Modules, the next hot thing coming our way as part of ECMAScript 6 (see Using ECMAScript 6 today)

First I watched Browser Package Management (by Guy Bedford):
He also has a nice blog post:

http://guybedford.com/practical-workflows-for-es6-modules

Another good video was Guy Bedford's talk: Package Management for ES6 Modules from JSConf2014:
What was interesting to learn, is that with SPDY, the bundling of web-resources won't be necessary anymore (eventually). See Multiplexing with SPDY and HTTP/2 for explanations:
So here is what is next for me...I need to look at the following projects and see how all this is usable today. Certainly looks fascinating being to use ES6 features right now, also keeping in mind that AngularJS 2.0 will use ES6 modules.

Wednesday, November 21, 2012

DevNexus 2013 - Feb 18/19 - Registration is Open


The Atlanta Java Users Group is delighted to announce that registration for DevNexus 2013 is now open. In order to reserve your ticket, please go to:


DevNexus 2013 will be held on Monday, February 18th and Tuesday, February 19th at the Cobb Galleria Centre in Atlanta, GA. We have already confirmed many wonderful speakers, representing the who's who in our industry. They will be covering a wide array of crucial technology topics such as:
  • Java and JVM Languages (incl. Clojure + Scala)
  • Cloud, Big Data and NoSQL
  • Web (HTML5, JavaScript)
  • Mobile (Android, Hybrid, Mobile Web)
  • Methodologies, Architecture, Tools and Security
In addition to providing great content for Java/JVM developers, DevNexus is an awesome networking opportunity. This event attracts Java/JVM talent from diverse backgrounds, be it large corporations, consulting organizations or independent technology connoisseurs. You will have an opportunity to discover what other development teams are using as their favorite tools and practices.

Why should you attend DevNexus 2013:
  • Best Value$195 Early Bird price (until Jan 15) for two full days of technology immersion and camaraderie (group+student discounts available).
  • Ask questions to world-class experts and fellow developers
  • Learn how to move your applications into the cloud 
  • Learn Agile Best Practices & Tools 
  • Learn more about core Java topics as well as other languages on the JVM
  • Learn more about building rich (mobile) web-application applications using HTML5
  • Hear about the latest developments from JBoss, SpringSource and Typesafe
We have already lined-up some impressive speakers, with many more to be announced in the upcoming weeks:
  • Jeremy Deane
  • Hans Dockter
  • Ben Evans
  • Mark Fisher
  • Neil Ford
  • Andrew Fuqua
  • David Geary
  • Wesley Hales
  • Stuart Halloway
  • Ken Kousen
  • Josh Long
  • Matthew McCullough
  • Pratik Patel
  • Reza Rahman
  • Nate Schutta
  • Venkat Subramaniam
  • James Ward
Fore more details regarding speakers please visit:


We would like to welcome 2 new DevNexus sponsors

Silver Sponsors

- eHire Labs - http://ehirelabs.com/
- AppDynamics - http://www.appdynamics.com/

Cocktail Hour Sponsor

- eHire Labs - http://ehirelabs.com/

We also would like to thank our other AJUG/DevNexus sponsors for their support in making DevNexus a success. 
We hope to see you all at DevNexus, and please register as soon as possible for this incredibly valuable event at:


(We have sold out early in prior years)

Wednesday, February 15, 2012

DevNexus 2012 - March 21-22 - Schedule Published


DevNexus 2012 is only 5 weeks away and will take place March 21-22. As of late, we have been super-busy organizing and confirming the best minds of our industry. We are happy to announce the preliminary schedule at


Again, this year will mark our biggest DevNexus conference event, yet! Compared to last year, we added 2 more tracks to the conference, bringing the total to 6 tracks. 30+ speakers will deliver 48 sessions equipping you with the critical knowledge to take your career to the next level. And if this is not enough, we have 3 wonderful keynote speakers as well:

  • Patrick Curran, Chair of the Java Community Process organization will present "Java User Groups and the Java Community Process: a winning combination"
  • Barry Hawkins, a veteran in our industry will present "How We Got Here, And What To Do About It", and we also are delighted to have
  • Ben Galbraith, founder of Ajaxian.com and now running mobile architecture and engineering at Walmart.com.

This year we will have an incredible breadth of topics. Besides covering core Java topics (e.g. Java 7+8, Joda Time, Guava) as well as JVM Languages (Groovy and Scala), we will also extensively cover Mobile topics (including HTML5). Furthermore, we will dive into Cloud related topics, covering Platform as a service (PaaS) providers such as Cloud Foundry, Google App Engine and Heroku. Here is a more comprehensive list of covered topics:

  • Core Java (Java 7+8, Joda-Time, Guava)
  • Spring (Spring 3.1, Spring MVC 3.1, Spring Integration)
  • JBoss (DeltaSpike)
  • Mobile (jQuery Mobile, PhoneGap, Android, Appcelerator Titanium)
  • HTML5
  • JavaScript (Node.js, jQuery), 
  • Cloud (Heroku, Cloud Foundry, Google App Engine)
  • Gradle
  • Groovy
  • Git
  • Scala
  • NoSQL (Neo4J, Cassandra)
  • Play Framework
  • Caching (EhCache  and JSR107)
  • REST
  • Continuous deployment
  • Talks on Agile Methodologies and Architecture

With this session line-up on the horizon, attending DevNexus should be a priority - This is also the South-East’s best, yet affordable, developer's conference!

We, the volunteers from the Atlanta Java Users Group would be delighted to see you all at DevNexus! Learn, network and have fun -

Please register today at: http://www.devnexus.com

We would like to thank our Sponsors that help us greatly to keep DevNexus super-affordable ($185 group-ticket / $200 regular ticket). We also welcome two new DevNexus Gold Sponsors:

  • SpringSource, a division of VMware
  • GCA Technology Services and Oracle University 

GCA Technology Services and Oracle University are thrilled to be sponsors of AJUG again this year. GCA specializes in Identity and Access Management (IAM) consulting and education. We partner with Oracle to provide industry leading solutions for user provisioning, role management, rights management, single sign-on, multi-factor authentication, governance and compliance. We deliver training for Oracle Solaris, Java, Oracle Identity and Access Management as well as other Oracle Applications and technologies. We believe that the blended approach by providing expert consultants who also educate our customers in the products we implement, allows us to achieve consistently positive results. Oracle's Java based IAM solutions lead the industry. Let us work with your team to create a training and IAM consulting solution that gets the results you want. Contact us at http://www.gca.net/oracle or 770-643-0443. We look forward to seeing everyone at Devnexus!

The DevNexus Gold Sponsors:

  • Terracotta
  • IntercontinentalExchange (ICE)
  • JBoss
  • The Intersect Group
  • GCA Technology Services and Oracle University
  • SpringSource, a division of VMware

Silver Sponsors:

  • Apex Systems
  • Anteo Group
  • 4t Networks

Cocktail Hour Sponsor:

  • MATRIX Resources

We are looking forward seeing you all in March!!!

Cheers,

Gunnar Hillert
President, Atlanta Java Users Group (AJUG)

PS:

If you have any question let us know at info at ajug.org and please follows us
on Twitter at http://twitter.com/devnexus for news and updates.

Monday, July 4, 2011

HTML5 WebSockets for JVM Developers

Anything related around HTML5 seems to be a hot button topic these days and lucky for me that I got an opportunity to take a deep dive into WebSockets. Thus, I will use this blog to post my findings over the next few days and I will present some simple code examples as well.

Anyway, WebSockets allow Servers to basically "push" data back to subscribed Browser clients in an effective manner instead of using workarounds such as long-polling. The WebSockets API is being standardized by the W3C (http://dev.w3.org/html5/websockets/) and the actual protocol is being defined by the Hypertext-Bidirectional (HyBi) working group (Part of IETF) - http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-09.

For further reading and to learn more about WebSockets in general, please also check out the following resources:
It turns out, though, that the only browsers, that support WebSockets out of the box right now, are Safari and Chrome. Wait - Firefox is not supported? Well, Firefox does support WebSockets but it is disabled by default due to security issues with the implemented draft version of the WebSocket protocol (Firefox 4+5). You can find more information about this here:
Nonetheless, if you're interested, you can re-activate WebSockets in Firefox 4 and 5 quite easily. Take a look at the following link for more information on how to do this:
Firefox 6 is supposed to bring back websockets support, albeit using a newer draft of the websocket protocol (hybi-07), which is not backwards compatible.

What about Web Servers?

Okay, so WebSockets look cool, yet with limited browser support. Furthermore, different webservers have varying stages of support for asynchronous messaging, with Jetty and Glassfish being the best options currently a provide native websocket support. It looks like Resin also has direct websocket support. See also:
Tomcat 7 currently does not support WebSockets, yet. Check out the following issue tracker entry to learn more about the current state of affairs in Tomcat 7:
What's next?

So, essentially what we want is some kind of framework that supports "graceful degradation": when available a suitable framework shall use websockets, but if not available, the framework should fall back to more traditional push work-arounds such as long-polling.

On the server-side, I am running Java, and therefore, I need a respective implementation on that platform. Choices, though, seem to be rather limited and I came up with the following list of options:
Just for reference, there seems to be quite some activity going on outside of Java:
My choice for now

Socket.IO looks like it has quite some traction but the default implementation is for Node.JS. There are Java implementations available but they did not seem to have much traction. jWebSocket actually looks promising but its licensing (LGPL) is too restrictive to me (My choice needs to be Apache license compatible ;-).

Out of the list above, I chose Atmosphere (http://atmosphere.java.net/). Atmosphere has pretty much all the features you would like to have incl. detecting server-side capabilities and using the best possible approach transparently. Atmosphere comes with a jQuery plugin that abstracts away the implementation details (same Api for using long-polling vs. websockets)

While Atmosphere comes with quite a few examples, they are interestingly mostly for JAX-RS and there are no examples for Spring MVC. Also, the documentations is rather limited but luckily you get very swift and helpful responses from Atmosphere mailing list.

In my next posting, I will provide a little example integrating Spring MVC and Atmosphere. So stay tuned.

Nevertheless, if you have other WebSocket recommendations and/or thoughts, please leave comments!

PS:

A funny thing, I just realized that Burr Sutter, a friend of mine and fellow AJUG board member wrote down his WebSockets research experiences as well. It is a small world. Go check it out at: