The Remains of the Day

Wednesday, May 17, 2006

Google Web Toolikit

In another extension of Google - Yahoo rivalry, as I gather it, Google unveils its own AJAX implementation toolkit dubbed Google Web Toolkit. Yahoo open-sourced its Yahoo User Interface Library, a couple of months back, providing the Web Development community with powerful tools for developing the so-called Web 2.0 generation of applications.

Google Web Toolkit is a server-side Java Framework that will add AJAX functionality to your Web pages, dynamically generating the respective HTML – JavaScript Code for the AJAX implementation. Upon this framework , Google have built their own famous Web apps, such as Gmail, Google Calendar, Google Maps etc.

Thanks guys !

GWT features

Google Web Toolkit Features

* Dynamic, reusable UI components
Create a Widget by compositing other Widgets. Lay out Widgets automatically in Panels. Send your Widget to other developers in a JAR file.
* Really simple RPC
To communicate from your web application to your web server, you just need to define serializable Java classes for your request and response. In production, GWT automatically serializes the request and deserializes the response from the server. GWT's RPC mechanism can even handle polymorphic class hierarchies, and you can throw exceptions across the wire.
* Browser history management
No, AJAX applications don't need to break the browser's back button. GWT lets you make your site more usable by easily adding state to the browser's back button history.
* Real debugging
In production, your code is compiled to JavaScript, but at development time it runs in the Java virtual machine. That means when your code performs an action like handling a mouse event, you get full-featured Java debugging, with exceptions and the advanced debugging features of IDEs like Eclipse.
* Browser compatible
Your GWT applications automatically support IE, Firefox, Mozilla, Safari, and Opera with no browser detection or special-casing within your code in most cases.
* Interoperability and fine-grained control
If GWT's class library doesn't meet your needs, you can mix handwritten JavaScript in your Java source code using our JavaScript Native Interface (JSNI)

Tuesday, April 18, 2006

Easy Ubuntu

EasyUbuntu is an easy to use script that gives the Ubuntu user the most commonly requested apps, codecs, and tweaks that are not found in the base distribution

The program will install commonly requested both free and non-free packages. It aims to run on both ubuntu and kubuntu while supporting all the three architectures Ubuntu supports - x86, PPC and AMD64.

Multimedia

* Enhance video player: Install a better multimedia motor (totem-xine replace totem-gstreamer)
* Free Codecs: Add Support for playing mp3 and other non-free formats
* Binary Codecs: Add support for proprietary video and audio formats (w32codecs)
* libdvdcss: Read commercial and encrypted DVDs
* RealPlayer: A proprietary software to read Real audio and video streams
* MIDI: Add support for playing midi files

Web

* Flash: Enable the Macromedia Flash plugin
* Java: Enable the Sun Java plugin (Java 1.5)
* Videos: Enable viewing videos embedded in webpages
* Firefox icon: restore the official Mozilla Firefox icon
* Firefox forms: install nice buttons integrated with GNOME

Archives

* RAR: extract and create RAR archives
* ACE: extract ACE archives
* 7-Zip: Extract 7-Zip archives

System

* Repository list: Main, Universe, Multiverse and PLF (replace your previous sources.list
* Fonts: Install Microsoft and other nice fonts
* DMA: Enable Direct Memory Access to improve DVD reading
* Num Lock: Enable the Num Lock at system startup
* KDE/QT integration: QT/KDE apps with a GNOME look'n'feel (work in progress)
* Ctrl+Alt+Del: Windows-like shortcut to run the system monitor
* Nvidia: install the official driver to enable 3D on Nvidia graphics cards
* ATI: install the official driver to enable 3D on ATI graphics cards

Voice Over IP

* Wengo: a free Voice Over IP software (work in progress)
* Skype: the most popular VoIP software

Tuesday, February 14, 2006

Web 2.0 for the masses

Yahoo has released its innovative JavaScript code library, open-sourced, with web developer goodies as seen on a Web 2.0 social app near you.

First, they have released Yahoo! User Interface Library, which is a BSD Licensed UI Library full of various JavaScript components that let you add some dynamic UI features in your web app / site. It's a small easy-to-use framework for building AJAX applications.

Number two, they have released the so-called Yahoo! Design Patterns Library, with implementation secrets (and example code coming up) of various "Web 2.0" features, such as field auto-completion etc.

Yahoo is eventually trying to standardize their UI, for your web site to be "integrated" with the famous search engine / portal. Smart move.

Tuesday, January 17, 2006

Oracle QA

A new site on Oracle Database related Questions & Answers, is gathering some interesting queries on various categories such as DBA issues, HTMLDB, SQL, Database Tuning etc.
Even supports RSS feeds that updates regularly

Thursday, January 05, 2006

Firefox P2P Extension coming up

Around the Blogsphere there is talk that a new Firefox Extension will be the next big thing that happend to Firefox popular browser... after Firefox itself. The new extension, to be released soon, seems to offer colaboration and media file sharing between users, while you can see your sharing friends on-line status, as in IM. Another trigger to piracy flamed discussions or just another usefull tool? Check out the AllPeers Screen Shots

Tuesday, December 13, 2005

Sun's own Technical Tip Article on AJAX & Java Technologies

Web 2.0 enthusiasts will find Here a very nice walkthrough on the AJAX programming paradigm along with Java Technology.
The Technical Tip assumes Java on the Server and GlassFish (Java EE 5)

The article starts with an overview of AJAX and proceeds with an "auto complete" Google-Suggests-like example of HTML input field auto completion. Provides all pieces of code for the client and the server side, including Xml HTTP Request init with cross browser support, and a step-by-step guide for running the sample.
Mind you that GlassFish is only requried for JSTL's sake only--- if you want J2EE 1.4 (i.e. Servlet 2.4, you must include JSTL jar libraries manually)

It's nice to finally have a vendor of this magnitude, providing some insight on this smash-hit Web technology in a single article, after all the scattered orgs and frameworks around.

Friday, November 18, 2005

Production Simulation Database Environments

I have been debating with software developers and more importantly, with System and Database Administrators that a heavy-duty Database-centric IT Department should maintain Four (at least!) database environments; One for Production, of course, one for UAT (User Acceptance Test), one for development and one for Production Simulation! i.e. a fully blown production-like database, periodically updated from production (off-line) that has the same hardware characteristics and data volume, as the real production system

This particular environment becomes handy when software development is over with, production rollout is coming up and quality assurance has to take place. It is common in database development that programs, especially SQL queries perform and behave differently between development and production environments. The development servers are usually scaled-down cheaper machines, and so are UAT environments. The talk-back I usually get from SA's and DBA's is of course cost of ownership. Not all IT Departments can afford to buy and maintain double (or triple in case they have redundant, fault-tolerant environments) database servers, as both hardware and maintenance/administration high costs are involved.

It might be the case some times that a production Oracle RDBMS system appears to execute queries in different query plans, when using for example the CBO (Cost Based Optimizer). Developers need to have the exact same execution plan in their development RDBMS in order for exhaustive test and query optimization to take place in the production's environment terms. As the famous Ask Tom Oracle Service suggests, simply copying the production statistics is not always the right approach to the issue, although it is technically feasible (using dbms_stats to import/export stats).

Another strong point made here, on the fact that a production simulation environment must exist on every database site. The point is that even if application developers had the same execution plan in their dev environment, they wouldn't have the same volume of data to test upon anyway. A query, for example, might execute in light-speed on a table of 1,000 rows in dev environment, using rules and an appropriate index. The same code on prod env with a table of 1,000,000 rows of production "real" data might have exactly the opposite effect, resulting in a hectic first-day after rollout.