Carcast #1 – Tools for development of rich Internet applications

This is my first attempt to podcast. I did this recording while driving the car. After riding a bus for several years, I ‘ll have to drive the car to my current client for a while. To minimize waste of time I ‘ve been listening to other people ‘s podcasts for a while, and now I decided to record my own. If you hear a clicking sound somewhere on the background, this means that I ‘m either changing lanes or making turns.

The first podcast is about your software choices for developing rich Internet applications. These are some relevant links:

RIA: State of the Union

RAD components for Flex/Java development

If this podcast will be well received, I ‘ll continue recordings and will consider recording my conversations with other people who have/want something to say on enterprise software related subjects.

Here ‘s the MP3 file of the podcast (it ‘s about 30Mb and 30 min long). Any feedback is greatly appreciated, especially if it made your commute a little better.

Turning Your Flex/Java Application into a RAD Project

While using Adobe Flex for development of the front end portion of your J2EE applications slowly but surely become a reality, many enterprise managers are still waiting for development of Flex ecosystem that would include a pool of professional developers as well as third-party components making Flex-related projects more productive.

Short learning curve, variety of Flex technical conferences and training seminars quickly address shortage of professional Flex developers.

Last year, Adobe evangelists have created an online Flex component exchange where individuals and teams from all around the world started to offer their free and commercial components.

A new community site myflex.org is yet another step in further evolving Flex ecosystem.

This is a place that has been created to allow third party vendors offer their plugins and components for sale, and the first four components are ready to convert your Flex/Java application into a Rapid Application Development (RAD) project:

Clear Data Builder ndash; this Eclipse plugin is a commercial version of an open source DaoFlex code generator. It takes away complexity of writing Java code for communication with relational databases. All Java and Flex artifacts are created automatically based on your SQL Select statement. You do not have to know Java to create end-to-end Flex-Java-Database CRUD application in minutes.

Fx2Ant ndash; this Eclipse plugin instantly translates the settings of your existing Flex Projects into ANT build scripts, so that you can build your modules, libraries and applications outside of Eclipse and create larger builds integrated with J2EE projects. What takes weeks on even a mid-size project, can be done in seconds with Fx2Ant. While generating the build script, Fx2Ant applies additional size-optimizing techniques that help to modularize development and cut the download time of enterprise Flex applications.

Fx2Doc ndash;this plugin allows you quickly build and organize the documentation for your project. You can upload your documentation to the corporate or the community server, so that it becomes shared by other developers.

Log4Fx ndash; this component provides a number of configurable implementations of log targets and an interactive control panel. You can target your log information to Eclipse IDE, local or remote server and other destinations.

Given the time savings that these plugins bring to any project, their prices are nominal. You can download documentation and free trial versions of these components. A trial version of ClearBI, a very powerful but simple in use Web reporter is also available.

While development of the front-end for enterprise applications in Flex is faster than in Java, using these components is a step toward a serious reduction of time to market. The above plugins were written using Java, XML and XSLT, but no knowledge of these languages is required. On the other hand, advanced users can customize XSLT templates to ensure that these plugins generate code or build scripts as per specific project needs.

The Web site myflex.org has been developed in Flex so Flash Player is required. Note the buttons on the right that allow you to hide the Web site “s header and/or switch to a desktop mode. The latter allows this Web site to “break free rdquo; from the Web browser frame. This mode should remind the users that rich Internet applications can be treated as desktop applications delivered over the Web.

Two sacred cows – Ajax and Paris Hilton

Last Monday I was participating in the rich Internet application panel that has been broadcasted live from Times Square. The recording of this session is available. Unfortunately, none of my comments on Ajax made it to the recording (they were mainly negative). So do not be surprised hearing Coach Wei answering my comments, which you ‘ve actually never heard. No big deal, you can hear my raw unedited comments on current rich internet application technologies in my podcast at this URL .

AJAX is one of the most searchable technical words today. One of the most popular searches in the non-technical world is the name Paris Hilton.

Forget Ajax, what really bothers me is the fact that Paris Hilton is prematurely out of jail “because of an unspecified medical problem “. Money talks in the USA. “Under the new agreement, Hilton would be confined to her home for 40 days “. This sucks big time!

Update: Paris is back in jail, and for more details on the “unspecified medical problem ” listen to the podcast #2.

Groovy and Grails deserve more attention from Java community

Yesterday, Princeton Java Group hosted two presentations -Real World Groovy and Getting Started with Grails by Andrew Glover and Jason Rudolph. Both are excellent and very enthusiastic speakers. The slides from the Grails part are available over here .

Groovy is good scripting language, which deserves a lot more attention from Java community. There were several presentations on Groovy and Grails at JavaOne and the rooms were packed, but I do not understand why Sun did not pick Groovy as a scripting language for rich Internet applications? Why not create a GUI framework of Groovy components from scratch (no Swing allowed) and marry it with the upcoming Consumer JRE (Groovy already runs on JRE)?

Grails was inspired by Ruby on Rails, and it also uses this smart principle of convention over configuration ndash; the project structure is always the same. Development of a basic Web CRUD application is a matter of minutes and you do not need to write these tedious methods that any DAO object has to have. It “s easily integrated with Spring. Grails has its own way of defining relations between classes (has many, belongs to) but it also supports Hibernate ORM framework.

Thank you No Fluff Just Stuff for sending these excellent speakers to Princeton, and if you live in the area, attend this symposium in August.

Ill be participating in live webcast from Time Square

Sys-Con.TV has invited me to participate in the live TV broadcast “RIA Shootout “. This panel will discuss variety of tools and techniques available for developing rich Internet applications. If you are not sure if RIA is for you or what software platform is the best fit for your needs, this panel may give you an overview of what ‘s available today. At the end of the show, we ‘ll be answering questions from the virtual audience, but if you miss the live show, its recorded version will be published at sys-con.tv some time later.

I ‘ve been to this studio before – it ‘s the most professional TV place I ‘ve been so far. You can see a little behind-the-sceens video from one of our previous events (I wonder where Jeremy got this yellow tie). The studio is located in TIme Square (Manhattan) right across the place where ABC shoots its “Good morning America “. David Letterman ‘s place is located several blocks from there.

Today, I have a little pimple on my left cheek, but you won ‘t see it tomorrow, because my face will be prepped by a makeup girl right before the broadcast. But this will my only little lie in tomorrow ‘s show. As to the rest, I ‘ll be speaking openly and freely delivering my opinion on RIA (if you care) as of June 4, 2007 1PM EST.

This is a free event and you can register at http://web2.sys-con.com/read/375328.htm .

Hackers are cowards and terrorists

Last month, Estonia dismantled the monument to a Soviet soldier-liberator . Russia plays an offended party saying that they liberated tiny Estonia from German Nazis-invaders. The problem is that Estonia believes that Russia is also an invader that that forced them to be one of the republics of the USSR. Virgin Putin condemns this act . The mayor of Moscow, Saint Luzhkov demands the boycott of Estonia. Somehow they “ve forgotten that monument removal in Russia itself became as simple as taking a leak. After destroying thousands of churches, they turned around and rebuilt them and removed thousands of monuments to their own leaders.

But this does not bother me as much as the news that Russian hackers commited 128 cyber attacks against Estonia government Web sites, banking, and other computer systems. I “m sure that Russian population supports these coward hackers feeling proud that their country produces these terrorists. Yes, they are terrorists that are trying to satisfy their ego by helping their motherland to punish infidels. Recently their colleagues, some criminals from an Arab country has destroyed an innocent Web site javarss.com . They strike weak and unprepared Web sites and this makes them as bad as any terrorists that kill kids in a shopping mall. I ‘m waiting till a new breed of suicide hackers will appear in the cyber space: destroy a Web site and kill yourself.

Russia broadcasted images of young people protesting against the monument removal, but they “d never publish a comment stating that at least half of these young adults are not even sure why they should be that angry and condemn Estonia.

Russia, the country of hypocrites is seriously fucked up.

Adobe gears toward Google Gears

Something new is cooking in the Google software pot. It “s called Google Gears, which is a new way to create offline Web applications.

“Google Gears (BETA) is an open source browser extension that enables web applications to provide offline functionality using following JavaScript APIs: store and serve application resources locally, store data locally in a fully-searchable relational database, run asynchronous Javascript to improve application responsiveness rdquo;.

They made this announcement during Google Developers Day in Sydney, Australia.

One of the major features of upcoming Adobe Apollo is support disconnected Web applications, and Adobe “s Kevin Lynch announced that Google Gears will be available in Apollo. Adobe Flex applications already use the space on the client “s disk for storing instances of any objects (this is called local SharedObjects), and turning this disk space into a fully searchable RDBMS sounds pretty exciting to me. While some people sitting on fast Internet connection lines may not see benefits of working offline, most of the world population is still using slow lines. And even if you have fa ast connection, having some data on your local disk may help if you work with enterprise applications that move megabytes of data over the wire.

Last year Sun Microsystems have included a client database Java DB in Java 6, which would be more useful if Java offered a competitive Web client VM. This situation won “t change for at least a year (we are expecting a small footprint Consumer JRE next year). It ‘s been a year since Java 6 has been released – has anyone heard of applications that use Java DB? At least I did not.

I wonder why Sun and Adobe do not collaborate? Sun is moving aside with new JavaFX toy, but it “s a little too late. May be they should work on a Java-to-ActionScript compiler that can be converted to bytecode for Flash Player? I ‘m sure David Temkin from Laszlo Systems will be happy to help with this.

No wonder that Google is where it is, and what Sun has on the desktop? As noted writer Isaac Babel wrote many years ago, Sun has “spectacles on his nose and autumn in his heart rdquo;.

ClearBI Web reporter for Flex/Java applications goes to public beta

An Eclipse plugin version of Web reporter ClearBI (a.k.a. FlexBI) is available for public Beta testing. ClearBI is a business intelligence engine that allows software developers automate report generation process, and end users can customize reports (grouping, filtering, export to Microsoft Excel et al.) in Flash Player.

Other than Flash Player, ClearBI does not require any additional software install on the client side. At the time of this writing, ClearBI is the only professional reporting solution on the market of rich Internet applications developed using Adobe Flex and Java.

ClearBI is available in two versions: ClearBI Plugin and ClearBI End-User:

bull; ClearBI Plugin allows a software developer create and customize a new report in Eclipse IDE. This report can be integrated into any Flex application by including an extra MXML and recompiling the main application. The end users will be able to work with the report (sorting, filtering, grouping, export to Microsoft Excel, et al.), but won “t be able to save this customized report.

bull; ClearBI End-User has all the functionality of the plugin version, and it also allows the end users create reports from the universe of the data fields without need to install any software other than Flash Player. The end users can create, customize and save reports in the centralized database server without any help from the IT department.

You can download the beta version of ClearBI plugin at http://www.myflex.org. Create an account and request the trial license for ClearBI. Download the ClearBI User Guide that contains installation instructions. We are actively working on the User Guide and will upload the newer version of this doc every other day.

ClearBI plugin comes with Clear Data Builder (a.k.a. DaoFlex), and you ‘ll need to download its User Guide as well.

Please send all the comments or bug reports at info at faratasystems.com .We really appreciate your input.

Ten tips on dealing with offshore software developers

In the perfect world, you can find local resources for your project. But in the USA selecting programming as a profession is not as appealing as it used to be 10 years ago, and you may have to hire an offshore team. Below is a list of tips for a rookie development manager that has to work with the offshore software developers.

1. If your outsourcing partner offers you a pre-staffed offshore team, most likely you are screwed. A typical team in any country (USA included) operates under 80/20 rule ndash; only 20% are delivering. Do not accept a team just because it “s ready. Build the team yourself.

2. Put every candidate through at least the same vigorous interview process as you practice with your local candidates. You “ll be surprised, but some US firms would go easy on the offshore team members just because the team was given to them from the above.

3. Do not leave your office until you know what the offshore team will be working on tomorrow.

4. Do not let the local geek manage an offshore team ndash; geeks are interested in cool techniques and coding only. They do not really care that spending a week on finding the most efficient solution jeopardizes the project deadlines.

5. Cut the losses quickly ndash; if you hired a new offshore member and he did not deliver within the first two weeks, let him go. Cutting the umbilical cord sooner saves money (actually a lot of money).

6. Try to use offshore teams for fixed-price projects only. This will allow you to better predict the final cost of the project, and if the project will not be delivered to your specification, you do not have to pay for the poor job. Time and material projects is a good option if you just want to keep a particular individual around, because you know that s/he has good skills (for example, production support, multiple small projects). Fixed-price projects require more work from your side during the initiation of the project ndash; you “ll have to actually take the time and think what you are planning to develop, create a functional specification that reflects the final product. Now, if you made a mistake and want to change your spec down the road, the offshore team can hold you liable and ask for the budget increase or the scope reduction.

7. Do not use the same team on the new project just because you “ve worked with these people. Their technical skills may not match your new requirements. Remember, the offshore team is a consulting firm, they are not your employees and you do not have to use them for all new projects.

8. When you give an assignment, make sure that the other side understood exactly what had to be done and by when. You may get the “Yes, Sir rdquo; answer, but when the delivery time comes, you “ll realize the other party did not even understand what had to be done. Another scenario is when you give an assignment, the other party decide to do more than you asked, which leads to increased scope and missed deadlines.

9. Before agreeing to pay the requested hourly rate to an offshore person, consider hiring a senior year CS student from a local college ndash; the rate will be lower and the quality can be better if you find the right student.

10. If your outsourced project failed, and you are trying to find who to blame for it, look in the mirror. Do not blame the offshore team.

Adobe Flex – public training in New York

Up till now, most of the time we ‘ve been teaching Adobe Flex by invitations from our corporate clients. But since the Flex market really picks up in New York, we decided to run public classes as well to accommodate the needs of smaller businesses that just want to train one or two developers.

Since the blogging genre allows some room for a self promo, here it is.

Our instructors are not those fly by night trainers that would teach you by reading aloud someone ‘s manual in the classroom. We spend most of our time working on the real-world projects that include Adobe Flex, Java, and a plethora of other technologies. We can offer you Adobe Certified Flex training, where we use original Adobe courseware and labs enriched with live discussions of the real-world issues that developers face daily. Last week, I ‘ve been teaching a class to a large group of Java developers of a Fortune 100 firm, and in addition to covering the training materials – I ‘ve spent at least two hours discussing the proper ways of designing their first Java/Flex projects.

We are the ones who write books, and articles. Besides being experts and published authors, our instructors speak at conferences, teach seminars and have been taught programming at such prestigious schools as New York University and Columbia University.

We offer several ways to get you trained in development of the rich Internet applications with Adobe Flex:

1. A typical week of training at your site consists of two Adobe Certified courses:

Flex2: Developing Rich Client Applications (3days) and Flex2: Data Communications (2 Days).

2. Customized Flex training as per your firm ‘s request. In addition to Flex we can teach a Java class as well.

3. Mixed public training on weekends. In two consecutive weekends (4 days) we ‘ll deliver the certified class Flex2: Developing Rich Client Applications and one day of custom training discussing the proper ways of starting your Flex/Java project. The next public training will take place in New York City on July 21, 22, 28 and 29 of 2007. Tuition for this course is $1495 USD.

4. One day hands-on Flex boot camps for developers around the USA, and the closest one is scheduled in New York on June 24, 2007.

5. One hour lunch-and-learn on-site session (New York and New Jersey) giving an overview of what ‘s happening in the rich Internet application arena in general, and how to properly utilize Adobe Flex as a front end to your robust server side application written in other languages.

For more 2007 training sessions and other public appearances see http://flexblog.faratasystems.com/?p=220