Thursday Jun 02, 2011

Cloud Computing Expo, New York City Java Meetup, SELF, Greenville JUG: Java EE 6 & GlassFish next week

Java EE 6 & GlassFish is swimming to New York City and South Carolina next week. Here is the schedule:


Running your Java EE 6 applications in the Cloud - Tuesday, Jun 7, 6:25pm
Schedule, Register


Learn Java EE 6 in a NetBeans-driven session
- Wednesday, Jun 8, 6:30pm


Java EE 6: More power with less code using NetBeans and GlassFish - Thursday, Jun 9, 6:30pm onwards

Java EE 6 Hackathon using NetBeans and GlassFish - Sunday Jun 12, 2011
Schedule (PDF), Venue, Register!

Where will I see you ? Or run with you ? :-)

Thursday Nov 04, 2010

OTN Developer Days 2010, New York City Trip Report

OTN Developer Days kicked off this morning in the heart of New York City in the Millennium Broadway hotel. About 200 developers attended 20 sessions + hands-on labs divided in four tracks - Server, Desktop, Mobile, and Embedded. I think that was a pretty good turnout knowing that this was a weekday and kept raining all day.

I delivered 2 sessions + 3 hands-on labs (yes, back-to-back) in the Server track. There were about approximately 80 attendees through out the day in the Server track. It was tiring speaking for pretty much the entire day but totally enjoyed the super interactive audience. The attendees were not aware to bring their own laptops so most could not try hands-on lab on their own. This will be fixed for subsequent events by including a reminder in the registration email. As a consequence I converted the hands-on lab sessions to code walk through where I built the entire sample and explained the code in detail. After initial hiccups the three hands-on workshops went smoothly. The workshops covered some of the key Java EE 6 technologies by building mini applications and combination of technologies was:

  • EJB 3.1 + JAX-RS 1.1
  • JSF 2 + CDI 1.0
  • Servlets 3.0 + JPA 2

The slides from the two sessions are available below:

Here is some feedback from the audience on the delivered sessions + workshops:

Arun Gupta puts on a fine presentation. The man has been doing this for a while; and he knows the technology and related material quite well. Good Job Arun!

I thought Arun Gupta did an excellent job with his presentations. He was very prepared with his examples and was able to offer supplemental materials for the content.

Mr Arun Gupta is knowledgeable and thorough presenter. Pace of the presentation is good.

Excellent presentation with audience involvement.

Arun is obviously very knowledgeable. He gives good intro level of detail to understand concepts, and can answer detailed questions as well. Arun is well spoken and open for question of all types.

Demo were well done and the walk through were helpful especially since I did not bring a laptop.

Arun Gupta = Excellent and Knowledgeable

Excellent presentation, hats up!

Great seminar, great instructor! Exceeded my expectation by a lot!

For fun, one of the feedback was ...

Just do this kind of FREE seminars on WEEKEND.

As always there is always is room for improvement so I take that feedback close to my heart as well. Thank you everybody for attending the session and providing the feedback!

And as always, some pictures ...

And the complete photo album:

If you are interested in attending in one of these workshops, check out the locations of OTN Developer Days worldwide.

2 down (Cloud Expo and OTN Dev Days) and 5 more to go (Oredev, Rich Web Expo, DegIgnition, CEJUG, JavaOne Brazil) in the next 5 weeks.

Where will I see you ?

Technorati: conf oracletechnet otn devdays newyorkcity javaee6 glassfish

Monday Apr 14, 2008

jMaki Webtop on GlassFish - Ajax World Keynote Video


jMaki Webtop is a light-weight Mashup Framework based on jMaki widgets. The webtop was demonstrated at Ajax World East 2008 keynote. The key features are:
  • Simple & easy to use (runs in browser)
  • Extensible (add your own widgets & gadgets)
  • Manageable (create users)
  • Persistent (Google Gears on the client, Database on the server)
  • Shared (read-only views can be shared with other users)
A 30-minute video of the Ajax World keynote session is available here and shows webtop in action :) The keynote deployed the webtop as a WAR file on GlassFish. A live PHP version of webtop is available at jmaki.com/webtop.

You can download the entire source code from the subversion repository and run it yourself.

Technorati: conf ajaxworld newyork glassfish jmaki

Friday Mar 21, 2008

Ajax World East 2008 - Day 2 Report


I delivered my Maki as an Ajax Mashup Framework talk and the slides are available here. Lots of attendees came by afterwards and told me that they enjoyed the demo. The talk showed how jMaki Webtop provides a lightweight mashup framework that runs in the browser. Here is a pictorial representation of the demo shown:

GlassFish jMaki Webtop

jMaki Webtop is basically a jMaki widget that can be embedded in a JSP or PHP page. This widget provides the framework for managing widgets and users, ability to persist the Webtop on client-side using Google Gears or server-side using backend database, layouts and other functionality. In JSP case, the widget uses JPA for performing all the CRUD operations with the back-end MySQL database. The resulting WAR file is deployed on GlassFish (can be any other Servlet container as well). If you are interested in a Java version of Webtop then the recommended path is:
  • Create services & widgets using NetBeans
  • Deploy them on GlassFish
  • jMaki webtop for widget deployment & customization
It really is an evolution of jMaki - using all the infrastructure that has built over 2 years. You can experience it yourself at jmaki.com/webtop which is running a PHP version of the app. See the coverage here. The code will be available soon!

I attended few more talks and took notes in some of them to share:
See below for notes from some of them.

Can we fix the Web ?

This was an early morning talk (7:30am) and I reached few minutes late. But it was basically talking about JavaScript vulnerabilities such as
  • Script injection
  • No difference between user & guest scripts
  • Scripts exempt from same-origin policy
  • No modularity (global access to everything on the page)
And also DOM vulnerability because every node in the tree has access to every other node. This lacks modularity and causes a potential security risk.
Doug recommended 3-step plan to fix the Web:
  • Safe JavaScript subset
    • JSLint.com provides a safe subset of JavaScript that removes all features that are unsafe or suspect such as no global vars or functions
    • Google Caja & Cajita provide a similar subet but they use transformation instead of validation
  • Minor browser improvements
    • Scripts are exempt from same-origin policy. This allows a dynamic <script> tag to make a GET request from a server. Instead use JSONRequest (part of json.org).
    • ES4 (the upcoming JavaScript standard) is not good enough because it maintains backwards compatibility and adds complexity.
  • Major browser improvements
    • Replace JavaScript & DOM in browsers. The approach is to start with JSLint and add safe features as required.
    • The Object Capability System (where objects are given explicit access to be used) needs to be enforced to make it secure.
In Doug's opinion, if the Web is not fixed then JavaFX, Silverlight & AIR (all vastly superior but lacking adoption) will displace the web.

The second talk was on Accelerate Ajax development with Appcelerator by Appcelerator CEO.

The talk started with a "not too long back" introduction of the technology space. Well, it started with 1991 and the timeline (and associated technology advances in that year) kept shuffling 1995, 1989, 2001 .... and so on. Jeff talked about how/why Tim Berners Lee invented WWW and covered a myriad of terms after that including but not limited to - Web 1.0, Netscape, Mosaic, marc Andreeeseen (sp?), Java, java Web Start, Applets, W3C, CGI, J2EE, JCP, C#, JBoss, SOA, JavaFX, Silverlight, AIR and many others. For a 50 minute talk, that was quite a long introduction.

After that introduction, he word "Ajax" was mentioned almost 30 minutes (8:51am to be precise) in the talk. And then the word "Appcelerator" was mentioned at 9:06am. Finally, I realized that I'm in the right talk ;)

Appcelerator like to pitch themselves as RIA + SOA company and allows true decoupling of the rich client from it's services. Their services is very similar to jMaki but they use event handling + Ajax + DHTML to achieve it. They also run on Ruby, PHP, Java and other languages.

All in all, it was a good walk through the memory lane!

The next one was REST & Ajax Reconciled.

The talk explained the basic concepts of REST - Resource, URI, Representation, URL & Methods (GET, PUT, POST & DELETE). It also explained the idempotency and safety of each method type. Overall a good decent introduction.

Then it explained the limitations with current web-based forms:
  • The URIs in the action attribute cannot be changed dynamically
  • Most browsers recognize only GET/POST methods
  • Limited ecodings - for example generating JSON encoding requires extra work.
It provided a REST framework checklist:
  • Does it have resource-based approach ?
  • Acknowledges existing of representation ?
    • need multiple of them
  • Solid engineering & community support ?
The three frameworks discussed in the talk were:
  • Apache Cocoon - based on XML pipelines & URL patterns, powerful but steep learning curve
  • RESTlet - Like Servlet for REST, good for existing model
  • Apache Sling - Based on JCR with server-side scripting support
The talk did not mention anything about Jersey which is turning out to be a great implementation and very well meets all the critieria mentioned above.

The speaker recommended Apache Sling with ┬Ájax for all REST + Ajax needs. But I'd strongly encourage you to have a look at Jersey. The JSON representation generated out of Jersey can now be directly consumed by jMaki as described here - a true combination of REST & Ajax :)

And then the last talk where I took notes is Understanding the Top Web 2.0 Attack Vectors. I'll provides notes from the last 5 slides of the talk which essentially captured the essence. These slides talked about fundamental issues with Ajax and described concerns and possible attacks in each issue. I'll need to understand some of these attacks better myself but at least I have a list to begin with :)

Here you go:
  • Client-side
    • Concerns
      • Transparency
      • Cross-domain communication
      • Exposed business logic (View Source)
      • Local & Offline data storage
    • Attacks
      • Cross-site scripting, DNS Rebinding
      • Business logic bypass
      • Variable tampering
      • Protocol hijacking
      • Function clobbering
      • JavaScript hijacking
  • Protocols
    • Concerns - new protocols on top of HTTP
      • SOAP
      • XML-RPC
      • REST
    • Attacks
      • Traditional
        • Man-in-the-middle
        • Spoofing
      • Recursive Payloads
      • Schema Poisoning
  • Information Sources
    • Concerns
      • Integrity
      • Transient
      • Diverse (RSS, Blogs, Email, ...)
    • Attacks
      • Untrusted content
      • Poisoned Cache (HTTP Response Splitting Vulnerability)
      • DNS Issues
  • Information Structure
    • Concerns - Variations of data structure
      • RSS
      • Atom
      • JSON
      • Serialized data
    • Attacks
      • Malicious injection
      • Parser implementations
  • Server-side Issues
    • Concerns
      • Architecture Weaknesses
      • Multiple languages & implementations
      • Increase & fragmented attack surfaces
      • Unknown request origin
      • Authorization & Authentication in complex environment
    • Attacks
      • Traditional
        • Information disclosure, Logical attributes, Denial-of-service
        • Command Injection
          • LDAP, SQL, XPath etc.

OpenAjax Alliance talk about Gadgets & Widgets was nice. The alliance is working on creating standards for widget metadata, communication across widgets and other similar tasks. The goal is to enable successful adoption of open and interoperable Ajax-based Web technologies.

Dave Ferraiolo (from OpenAjax) particularly expressed thanks to jMaki for deriving the first set of Open Ajax Data Model specs from jMaki data models.

That's it!

Check out some of the pictures:






The complete album is available at:


I had to leave at the end of Day 2 because of unfavorable health condition. But I'm glad at least I could deliver my talks :) Now I need to be back-in-shape before my upcoming trip next Tuesday!


Technorati: conf ajaxworld newyork glassfish netbeans ria sun web2.0 jmaki

Tuesday Mar 18, 2008

Ajax World East 2008 - Day 1 Report


Ajax World East 2008
started earlier today.

I delievered my "Web 2.0 Application development using jMaki" and the slides are available here. There were several demos shown in the talk (using NetBeans and GlassFish) and they are all accessible at the links mentiond below:
Several other related demos are available here. Luckily I could deliver without much hassle inspite of having a high fever and cough! I hope I can hold at least until tomorrow morning when the big preso is scheduled @ 11:35am.

Anyway I attended 3 more talks today and took notes to share:
See below for notes from each talk.

The first talk I attended was: Picking the Right Technology for Enterprise Rich Internet Applications. I got little late and the session was packed with attendees standing way outside the room so I joined them.
The session talked about AIR, Silverlight & JavaFX as three possible technologies for Enterprise RIA. Per the talk, here are the basic criteria for RIA tools requirement:
  • Seamless deployment on client
  • High penetration of runtime
  • Web browser independence
  • Fast client/server communication protocol
  • Robust security
Of course, this session was given in Ajax World so pros/cons of Ajax were dicussed:

Pros of Ajax Cons of Ajax
No deployment required Ajax apps are browser depdendent
100+ Frameworks 100+ Frameworks
Open Source, no need to purchase software license Expensive due to long cycle, skilled developers demand top rate
JavaScript is an interpreted language, entire source code can be viewed using "View Source"
Network communication speed is not optimizedf for Ajax requests

And then basically it talked about the three technologies and their pros & cons are well captured in the slides.

The second session I attended was Performance Tuning your Ajax Applications. This was an interesting session and I learned a few tricks. Interstingly we have implemented quite a few of these performance enhancements in jMaki already.

Improving the performance of Ajax applications require tuning the following parameters:
  • Number of requests
    • Reduce number of JavaScript files that are loaded. This is the most important since each request to the backend adds extra cost. Even when the scripts are cached, the browser still makes a request (unless Since-Modified header is set correctly).
    • Typical approaches are to concatenate the files at dev time or at runtime based upon request.
    • Dev time approaches
      • Ant - concat all JS files using <concat> task
      • Dojo - Run Rhino over all provide/requires and then concatenate the files
      • Command-line
    • Run time approaches - Concatenation happens depending upon the request. Cons are:
      • Server-side dependent
      • Makes it harder to distribute code
      • Server is loaded as concatenation happens on server (mitigated with caching)
      • Works for <15 JS files
      • Does not track dependency
  • Size of requests
    • Remove white spaces and comments (Packer, Dojo, YCompresser, SafeCompress, ShrinkSafe are some of the tools)
    • Shorten the variable names
    • Gzip the code
    • Semicolon is optional but needed if you remove EOL (careful when compressing the code)
      • Drastically reduces the file size (e.g. Apache XAP reduced the file size from 330 kb to 70 kb)
      • Lots of gzip tools
      • Need to put appropriate headers so that browsers recognize gzipped content
    • Coding Style
      • Single line "if" and "for" do not need "{ }"
      • Combine var declarations into a single var such as var x=1, y = 2;
      • Use JavaScript style object
  • Time of requests
  • Time of initial code completion
    • Minimize the time that is executed @ start up
    • Bring the data once the initial page is loaded
    • Show images telling users that something is going on
      • Distracts user from the time it's taking
  • Other tips
    • Don't write your own parser  - use the native parsers
    • "If" statement optimization
    • Use the native facilities like getElementById() or getElementByTagName()
    • Consider different approaches of DOM creation
      • Tail Recursion
      • Setting the value in innerHTML
    • Consider JSON over DOM for object graph traversal - JSON could be much faster
Similar tips can be used for CSS as well.

My third talk of the day was Performance Paradigm of a Mashup World.

This talk given by Vice President of Webmetrics and laid a special emphasis on "Collaborative Monitoring" for performance measuring any mashup. This process involves not only monitoring your own application, but also setting up agents that measure performance with other services being invoked in the mashup, their further partners and so on. It also talked about a layered approach of using:
  • Standard monitoring - HTML page load time, DNS request processing time, etc.
  • Pixel Mapping monitoring - required mainly for GUI intensive application
  • Web services monitoring - Used for partner monitoring
This was further clarified using a 6-step process:
  • Know your apps
  • Learn where the points are in your ecosystem
  • Measure your perspective
  • Monitor your APIs
  • Collaborate within your organization
  • Collaborate with your partners & customers
That's it!

Check out some of the pictures:


The expo hall opens tomorrow and Sun's booth is right between the ballroom and the main door to expo hall, can't miss us ;)

The complete album is available at:


The Internet connection at the Roosevelt hotel is painfully slow inspite of charging $14.95/night where as most of the "modern" hotels offer free wireless :(

Technorati: conf ajaxworld newyork glassfish netbeans ria sun web2.0 jmaki

Sunday Mar 16, 2008

Travel Schedule - Next 5 weeks

Here is my travel schedule for next 5 weeks:

Mar 17-21 Ajax World, New York Web Application Development using jMaki
Mar 25-26 The Server Side Java Symposium, Las Vegas Rails powered by GlassFish & jMaki
Mar 27 Developer Update, St Louis Westport DoubleTree, FREE event Open Source Web Services stack in GlassFish
Mar 28 Developer Update, Kansas City, FREE event Rich Internet Applications and GlassFish
Apr 16-19 FISL, Brazil Web 2.0 Application Development using jMaki and
Asynchronous Ajax for Revolutionary Web Applications

Stop by and say hello if you are present at any of the events. You'll hear about different GlassFish technologies:
  • How Metro provides enterprise-grade open source Web services stack for meeting all your needs
  • How jMaki allows you to create Rich Internet Applications
  • How Rails applications can be powered by GlassFish & jMaki
  • Asynchronous Ajax that allows you to scale your applications tremendously
  • And any other topic that you are interested in :)
Drop a comment if you are interested in a run or meal together ?

Technorati: conf glassfish metro webservices netbeans jmaki ajax newyork lasvegas stlouis kansascity brazil fisl ajaxworld tssjs
About

profile image
Arun Gupta is a technology enthusiast, a passionate runner, author, and a community guy who works for Oracle Corp.


Java EE 7 Samples

Stay Connected

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
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
   
       
Today