Showing posts with label gwt. Show all posts
Showing posts with label gwt. Show all posts

Sunday, June 20, 2010

Best of this Week Summary 14 June - 20 June 2010

Sunday, June 6, 2010

Best of this Week Summary 30 May - 6 June 2010

  • Google Web Toolkit vs. Smart GWT: Which should you choose as front-end? Start immediately with Smart GWT, or start with GWT and pick SGWT components when needed? Some insights here.
    Related to that, you might want to check Vaadin: "Vaadin is an open source web application framework for rich Internet applications. In contrast to Javascript libraries and browser-plugin based solutions it features a server-side architecture, which means that the majority of the logic runs on the servers. Ajax technology is used at the browser-side to ensure a rich and interactive user experience. On client-side Vaadin is built on top of and can be extended with Google Web Toolkit. Vaadin utilizes Google Web Toolkit for rendering the resulting web page. While Google Web Toolkit operates only client-side (i.e. a browser's JavaScript engine) – which could lead totrust issues – Vaadin adds server-side validation to all actions. This means that if the client data is tampered with, the server notices this and doesn't allow it.
    Historically, Vaadin has been compared to Echo and ZK frameworks that use similar of server-side programming model. The server-side APIs are quite similar providing both events and GUI components, but the client-side (i.e. web browser) interaction differs in the way that Vaadin uses Java programmed GWT widgets, while ZK is jQuery based, and Echo has its own implementation. Currently, the most frequently compared frameworks include Adobe Flex, Google Web Toolkit, Apache Wicket and ICEfaces."

  • A new open spec collaboration has started: OExchange, which is an open protocol for sharing any URL with any service on the web. Bigger parties involved are LinkedIn, Microsoft, Google.

  • A new way of phishing: TabNabbing - phishing by switching background tab content. Discovered by Firefox's creative lead Aza Raskin. Biggest challenge seems to get the malicious Javascript on a site the user goes to.

  • Google announced a partnership with VMWare (and thus SpringSource and thus Spring) at I/O by adding its (GTW) widgets to Spring and deployment to the VMWare cloud. In marketing speak: "This is VMware and Google's view of the power of using Spring along with Google's presentation widgets to get apps started in hours, delivered in days, and deployed in minutes". Below it's shown in a diagram:



  • The iPad isn't without "errors" in its usability (UI) according to Jakob Nielsen. For example: cross-app UI experience is inconsistent, and for some reason almost no app supports scrolling and shows information only per page.

  • "An overview of how to design websites and optimise them for Maemo, iPhone, Android, and a variety of touch and non-touch devices based on S60 on Symbian OS. After reading the document, you will have the basic knowledge you need to start developing mobile web pages that provide cross-browser-compatible content in a user-friendly manner. Furthermore, with the tips and advice contained in the document, you can avoid making design choices that could eventually lead to a dead end or poor design, thus saving time in implementing and debugging features that will not work".

  • Show Slow: an open source tool that helps monitor various website performance metrics over time. It captures the results of YSlow and Page Speed rankings and graphs them, to help you understand how various changes to your site affect its performance

Sunday, April 11, 2010

Best of this Week Summary 5 April - 11 April 2010

Sunday, March 15, 2009

Best of this Week Summary 09 March - 15 March 2009

  • A table-based quick review of the following RIA frameworks: GWT 1.5, Laszlo 4.2, pure Javascript and Flex 3.2.

  • A short introduction on how ActionScript 3 differs (and not) from Java.

  • A wiki constructed with over four dozen architects: 97 things every software architect should know. Also now available as a book. It includes advice such as:

    • Don't Put Your Resume Ahead of the Requirements (Nitin Borwankar)

    • Chances Are, Your Biggest Problem Isn't Technical (Mark Ramm)

    • Communication Is King; Clarity and Leadership, Its Humble Servants (Mark Richards)

    • Simplicity Before Generality, Use Before Reuse (Kevlin Henney)

    • For the End User, the Interface Is the System (Vinayak Hegde)

    • It's Never Too Early to Think About Performance (Rebecca Parsons)


  • An introduction to Object Oriented CSS.

  • Sample chapter from Thomas Erl's latest SOA Design Patterns book, and an interview with him. He "talks about the main benefits of having a pattern catalog, SOA and Web services, the current state of SOA, the difference between SOA and service orientation, and the role of patterns in SOA adoption".

  • A series of five articles on setting up a Java Wicket project and implementing a frontend with it.

  • Handy piece of (alpha) software to test IE8 RC1, IE7, IE6 and IE5.5 on Vista and XP. Note that it looks like Microsoft is releasing IE8 this coming week, so get ready...

Sunday, February 8, 2009

Best of this Week Summary 02 February - 08 February 2009

  • In SOA lessons learned for Web 2.0 "two experienced SOA architects look at the new world of Web 2.0 technologies with a critical eye and present five best practices that can help you be more successful in adopting Ajax, REST, and other Web 2.0 technologies as part of your SOA."

  • A quick comparison between Echo2 and GWT. Both enable you to create a rich internet application with only Java using a component-based approach. Wicket is also component based, but requires still to work with HTML; not necessarily a negative thing! For example, how will you split the work between the user interface designer and developers with Echo2 and GWT?

  • A nice extensive summary of Model Driven Development misperceptions and challenges. Five challenges and five misconceptions in total.

  • A whitepaper named "Centralized Service-Oriented Architectures without ESB" which shows how to create service-oriented architecture in a Google-like way, that is services around huge data repository, but without ESB. It is based on experience of the writers in data warehouses, Wiki and telecommunication systems. Thus, proposed is not really an ESB, but an architecture that's more like a centralised repository with distributed caching. Of course this comes with its own set of pros and cons, as mentioned in the whitepaper.

Sunday, January 11, 2009

Best of this Week Summary 29 December - 11 January 2009

  • Interesting comparison whether and when to use SOAP or REST.

  • OpenSocial now has Java, PHP, Ruby and Python client libraries available.

  • A few weeks ago, PKI which uses MD5 as cryptographic hash function, has now officially been broken at the hackers convention Chaos Communication Congress 2008. Six Certificate Authorities still give out MD5-signed certificates as mentioned in the article. Since 2004 it is already known that MD5-collisions can be created for different data. Therefore, certificates should be issued with at least SHA-1 encryption. Here's a summary of what an MD5 collision is and what Mozilla and Microsoft issued as advisories. Additionally some (other) SSL issues are described.

  • Nice summary of lessons learned during a project using GWT, Axis and JPA. Some more comments here.

  • Paper by Kate McKinley (a researcher at iSec Partners, a San Francisco security firm) on the privacy protection mechanisms of FireFox, Chrome, IE and Safari. Conclusion: "We find current browsers are unable to extend tracking protection to third party plug-ins such as Google Gears and Adobe Flash. Some of these require no user prompting under common configurations and even expose tracking data saved with one browser sites visited by a different browser. [...] Safari on Windows fared the worst of all in these tests with respect to private browsing, and did not clear any data at all, either before entering or after exiting the private mode. On OS X, Safari’s behavior was quirky; in no case was the HTML 5 database storage cleared before or after private browsing.".

Saturday, January 3, 2009

My clients are getting thicker and thicker: MVC implementation shift

Last week I stumbled over this interesting article on the potentially changing Model View Controller architecture implementations. (Sidenote: here's the more subtle distinction between MVC1 and MVC2 described. And here's an article on the ambiguity of the term and pattern MVC.)
An example logical diagram of MVC2 is shown below:


For quite some years, the general practice was to generate HTML as result of the View, with the browser rendering it and being the thin web client. These days though, more and more the web client is getting heavier ("fatter") because of all the Javascript being used for AJAX, SPI and, in general, more logic on the web client.
The article takes a look at the different approaches to MVC implementations:

  1. the HTML-only approach;

  2. the HTML+Javascript "basic" approach; some of the Model's "business logic" is duplicated on the client;

  3. the "AJAX" approach; partial views can be updated, the view consists of multiple HTML fragments, Javascript creates the View, not the application server;

  4. and the full-blown Javascript-only ("a la gmail") approach; Javascript in the browser creates the views, near-complete responsibility for the Model business rules in the web client (browser), the web client would be the Controller.

The approaches range from, at the one extreme end, the definitive "thin client", and at the other extreme end, the definitive "thick client"." Example frameworks that can easily facilitate the last option are Google Web Toolkit (Java to Javascript) and Pyjamas (Python to Javascript). Below GWT's architecture diagram is displayed. Note the (relatively) limited application server procedures, part of the Model, preferably only performing basic validation, security, etc.


The new MVC2 diagram for the above mentioned fourth approach would look something like this:

Included in the article is also how you could split up work in a team between people working on the View and Model parts.

I do not completely agree with the statement in the beginning of the article that says "The Web client takes care of keystrokes and mouse movements: the Web browser application itself is the Controller". I'm reading this as: the browser is the controller. Though, when you look at the first picture, that is not what the Controller is supposed to be.
But, in general the whole potential movement of going to thick clients is an interesting one to keep an eye on.
Other pros for thicker Javascript-based clients (not mentioned in the article) are:
  • Easier distribution of new versions than in the old days with fat clients like Visual Basic, where you had to make sure all clients got updated;

  • Easy opening up of your SOA webservices. The fat client could directly access them;

  • Easier mashup possibilities at the View layer via Javascript;

  • Potentially a large improvement in scalability: the client processing power is used as much as possible, the application server only performs several basic checks;

  • The Javascript generator/builder takes care of browser compatability.


Several cons are though:
  • Potentially quite significant longer page loading times when the Javascript all has to be loaded at once;

  • If not designed correctly, there could be significant extra network traffic;

  • Being dependent on the Javascript generator/builder when a browser is (not anymore) supported (though an opensource framework allows you to build it yourself if really needed).

Saturday, December 13, 2008

Best of this Week Summary 8 December - 14 December 2008

  • Spring's Web Flow 2 now lets you use JSF as view technology. It addresses a couple of the existing JSF issues and already some features only present in JSF 2.0.

  • Microsoft (yes yes, don't stop reading immediately ;-) has published a How-To Design Using Agile Architecture guide which "will help you start the process of designing your application. It discusses the six main steps you should follow, and then discusses the issues involved in making logical choices. It also provides checklists to help you ensure that the proposed design will meet your requirements", including patterns, best practices and agile considerations. This is a quick summary of the guide.

  • A tiny bit off-track, but still interesting to point out: of course you know Google's GWT, in which you can create a Javascript web front-end application in Java. But now this is also possible in Python (recently releasing version 3) with Pyamas! Pretty cool!

  • Talking about software architecture, how would you document that correctly? Here's a bunch of good tips trying to answer that. It is a good high-level overview of what you should document in an application architecture. Focus is on UML 2.0, but what should be in the documentation is valid for any notation format.

  • Here's the first list (and maybe last :-) I'll post on looking back @ 2008: on overview of what happened with Java in 2008.

Saturday, September 27, 2008

Best of this Week Summary 22 September - 28 September 2008

Sunday, December 9, 2007

Best of this Week Summary 03 December - 09 December 2007

  • Interview with Bruce Schneider, Internet security guru on security (duh), privacy, electronic voting, encryption, passwords and more. One of the ways to attack identity theft is to not rely on authenticating the person, but on authenticating the transaction, as credit card companies do. Another thing he mentions is to *write down your passwords*, which is contradictionary to what you read everywhere; but he says, just put the paper in a safe place like your wallet! And because you write it down, you will more likely pick a strong password.

  • Summary of this week's held Google Web Toolkit conference "Voices that matter".

  • Nice inside view on how BT uses social software like RSS, Wiki, Podcasts etc. on their intranet.

  • Pattern specification of the requester side caching pattern and its implementation.
    The requester side caching pattern is one of mediating the interaction between one or more clients and one or more data providers. The mediation consists of holding data items that have been produced by the provider(s) and using them to support requests from the client(s).

  • Finally the OpenID 2.0 specifications have been made final and released!

Saturday, June 9, 2007

Best of this Week Summary 03 May - 09 June 2007

  • An interview with writers of new book about REST. One free chapter for download. Interesting is the interview with the writers were they explain why they think REST is great and (when) preferable above WS-* (SOAP).
  • An overview of nine free virtualization environments. Plus one free spreadsheet to compute the TCO of virtualization.
  • Interest points made about what Google Gears does not yet support out-of-the-box, like synchronization strategies. But as mentioned already a little bit in the article, the correct synchronization strategy depends on the application you are building. So maybe Gears could (should?) have contained already one or two simple syncing strategies. Also, I think saying it replaces one problem with another is a not really correct. I'd say Gears is a starting point in providing a full offline library/framework solution, but it does not solve all problems at this point in time.
  • The writers of the book "GWT in Action" answered a couple of questions on their impression is on GWT after a year.

    Most important points made:
    - Regarding debugging: most of the time you don't need to go into the generated Javascript,
    - The great fact that you can re-use all your Java knowledge and tools,
    - That for simple apps it would still be too heavy-weight (overkill),
    - How GWT tries to make the generated Javascript as little as bloated as possible,
    - That the generated Javascript code can be output in pretty, more readable Javascript,
    - A GWT application can mix Javascript and Java (so it is not that "crippled" as it seems),
    - There are wrappers available for Scriptaculous, JSCalendar etc,
    - Javascript files are provided per browser type, instead of one big file that handles all browsers,
    - Changing locale can require you to switch to a dynamic approach, losing GWT stripping,
    - Modularization can be improved; now you have to always download all modules that your application uses.