Tuesday, April 15, 2008

Monday, April 14, 2008

10x Software Development

Numerous studies have found 10:1 differences in productivity and quality among individuals and even among teams. This blog contains Steve McConnell's thoughts about how to move toward the "10" side of that 10:1 ratio.

Technical Debt


Code Complete: A Practical Handbook of Software Construction (Paperback) - June 2004 2 nd edition - great reviews ..

Thursday, April 10, 2008

Continuous integration - CI tools

http://staf.sourceforge.net/ -- Salesforce.com uses this and this STAF is top choice in the article below

Functional Testing Tools, the Open-Source Wave
By Edward J. Correia

Last week, I wrote about “The Forrester Wave: Functional Testing Solutions, Q3, 2008,” a recent report that evaluated the six leading test-tool vendors offering manual and automated testing along with test management in a single solution. Qualifying vendors also earned at least US$10 million in annual revenues.

To contrast, this week I’ll present some open-source alternatives to those sometimes pricy products. To be fair, I should also mention that several companies, including AutomatedQA, MKS and Original Software—not to mention Microsoft—also offer solutions in this space.

There were a few ways I could have done this. I decided to visit the one Web site I knew of that contained the most information about the greatest number of open-source tools for software testers, and that's opensourcetesting.org. Using a few simple searches, I compiled lists of some of the more interesting tools for automated testing, manual testing and test management.

I found just one tool project—Salome-TMF—that offers all three capabilities sought in the Forrester report (more on Salome later). The remainder of today’s tools provide the capabilities in various combinations, but for all, the price is right.

Automated Testing
Topping the list was the Software Testing Automation Framework, also known as STAF. This multi-platform, multi-language function testing framework features reusable components such as process invocation, resource management and logging; an execution engine; and a GUI monitoring app. It’s built on Python and XML.

HtmlTestCase is a unit testing tool that consists of classes to simplify automation of HTML function testing. Intended for QA staff members that are slightly technical, tests can be specified using a high-level API.

If you’re versed in Perl and looking to automate IE app testing, you might try Win32::IEAutomation. This object-oriented tool, still in early development, treats all methods as user actions, and it is said to support the testing of complex apps, even those employing dynamic frames and pop-ups.

Automate the Windows GUI with pywinauto, a Python package that’s easy to use and requires no pre-recording or screen capture. It even comes with a screencast to show you how.

Systir stands for System Testing in Ruby. Not to be confused with a tester for Ruby code, this tool was written in Ruby for writing system-level tests in a domain language. If in the product description you have to explain what it’s not, I suggest a different name.

Faban is a project from Sun for developing and running benchmarks. It has two major components: the harness and the driver framework. The harness automates the running of server benchmarks. There’s also a Web interface to launch and queue runs, and functionality to view, compare and graph run outputs.

The Simple Web Automation Toolkit, or SWAT, allows QA engineers to automate Web application testing. IT includes a C# library that provides an interface for different Web browsers and components to integrate with FitNesse.

Manual Testing
Doit: Simple Web Application Testing is a scripting tool and language for testing Web applications that use forms. It can generate random or sequenced form fill-in information, report results (into a database, file or stdout), filter HTML results and compare results to previous results, without having to manually use a Web browser. It uses a console-based Web client tool (like Curl or Wget) to send and receive HTTP requests and responses respectively.

The Eclipse Test and Performance Tools Platform (TPTP) provides performance testing of HTTP applications, JUnit testing and manual testing. TPTP is a mature project with a thriving developer community. The project provides extensible framework and services on which developers can build test and performance tools to precisely suit their needs.

Test Management
If you're using Bugzilla, you might want to try Testopia, a plug-in for Mozilla's bug tracking system. Though it was originally designed for tracking test cases, it's generic enough to track any aspect of the development process. It also allows the integration of bug reporting with test-run results.

"Be-monster not thy feature, wer't my fitnesse." Shakespeare's King Lear was apparently the inspiration behind FitNesse, a wiki, Web server and testing framework that allows teams to collaborate on test specification and execution, and document creation.

Salome-TMF can create and execute manual or automatic tests, track results, manage requirements and defects, and produce HTML documentation. It works with Abbot, Beanshell and JUnit to define automatic tests, and with Bugzilla and Mantis to manage defects. Salome-TMF also is extensible.

Doubtless there were tools I missed simply because their descriptions or keyword tags lacked the terms I used. So if I missed your favorite, e-mail me. Maybe I’ll get another report out of it.


Share this link: http://www.sdtimes.com/link/32583



-----------------------
Continuous integration describes a set of software engineering practices that speed up the delivery of software by decreasing integration times. It emerged in the Extreme Programming (XP) community, and XP advocates Martin Fowler and Kent Beck first wrote about continuous integration near the turn of the millennium.

CI Feature Matrix:There are many Continuous Integration systems available. This page is an attempt to keep an unbiased comparison of as many as possible of them. The goals are:
* Make it easier to choose an appropriate CI tool for your project.
* "Healthy competition aid" for the people involved in the development of these various CI systems.

Which open source CI tool is best suited for your application's environment?
A comparative review of four open source continuous integration tools
- By John Ferguson Smart, JavaWorld.com, 11/01/06
* Cruise Control
* Continuum - The official Maven 2 CI tool
* Luntbuild
* Hudson
Automation for the people: Choosing a Continuous Integration server

Automated Smoke Tests With Selenium, Cargo, TestNG and Maven - See nice 8 step process
- The tools we use for this are:
1. Maven: The build tool we use
2. Selenium Remote Control: A package which lets one programatically control a browser, mimicking the actions of a real user
3. Cargo: A package which lets one programatically control a server
4. TestNG: A test framework
Taking Screenshots with Selenium - see user comments at the end of post



Practical Applications of Agile Web Testing Tools

Notes on Selenium testing


ReviewBoard: open source code review tool

TRAC - Software project management and bug/issue tracking system

Welcome to the Trac open source project. It is Integrated SCM & Project Management tool ( Software Configuration Management SCM )

Trac is an enhanced wiki and issue tracking system for software development projects. Trac uses a minimalistic approach to web-based software project management. Our mission is to help developers write great software while staying out of the way. Trac should impose as little as possible on a team's established development process and policies.

It provides an interface to Subversion, an integrated Wiki and convenient reporting facilities.

Trac allows wiki markup in issue descriptions and commit messages, creating links and seamless references between bugs, tasks, changesets, files and wiki pages. A timeline shows all project events in order, making the acquisition of an overview of the project and tracking progress very easy.

asr Note: what I like
1/ easy user privillege grant , delete
2/ SubVersion code browsing
3/ built-in wiki
3/ dynamic Filter add/delete while views bugs - this should be the feature that can be implemented in any query based system ( even with Flex system )

SubVersion
The goal of the Subversion project is to build a version control system that is a compelling replacement for CVS in the open source community.
SubVersion growth
- Commits are truly atomic.:No part of a commit takes effect until the entire commit has succeeded. Revision numbers are per-commit, not per-file.
- asr note: If Auct gaint has this atomic commits along with pulling a snapshot just with one user check-in at a time (making other wait for a minute and inform with a Chat session when second user gets turn ) . Then it can build just for that user changes on a server . This way every checkin will have it's own build , it may look expensive but compared to build failure cost ( detect , inform developer and fix 3 hours $600 cost ) having 5 servers with virtuvalization doing this job not costly


login with Demo / Demo

Spring team uses TRAC , check these pages:
- this layout of white and green links looks good, try to use this layout get reqd css etc..
- at the bottom of page you have edit button, you can try to change any page to see How easy is Wiki..
- TitleIndex
- see this Wiki page , when you click on the Table of Contents at the top right it shows nice edit for TOC

Trac hosting services

Ruby Rails project using TRAC code diff:
http://dev.rubyonrails.org/changeset?new=adapters%2Finformix%2Flib%2Factive_record%2Fconnection_adapters%2Finformix_adapter.rb%408320&old=adapters%2Finformix%2Flib%2Factive_record%2Fconnection_adapters%2Finformix_adapter.rb%407982
- New Bug Ticket

HTML template system - Clearsilver

Clearsilver is a fast, powerful, and language-neutral HTML template system .
In both static content sites and dynamic HTML applications, it provides a separation between presentation code and application logic which makes working with your project easier.

Who is using it:Here are some examples of websites and applications built today using ClearSilver. The host programming language is also listed .

Clearsilver Compared: vs. PHP, ASP, JSP

How does Clearsilver compare with XML/XSLT?

asr Note: 1) Orkut is using it with Java backend. See if any open source project using this with Java to look at code.
2) good software like TRAC is using it , google groups uses it.
3) google hired ClearSilver author after using it in google groups. Auct gaint missed this kind of hiring industry hand-on coding experts and relying on in-house engineers for innovation/next Gen architectures(v4). This authors should have found solution to dynamic content ( for L10n) and java back end data for this Auct huge site. Now hundreds of engineers strugle every day to fix bug/do enhancements by spending twice the requried time ( compared to good designed system likes of ClearSilver )day in day out for years

Wednesday, April 9, 2008

Latest Development Platform



Add to above list the 'MyEclipse' tools work bench( pulse tool )
10x-software-development

Introduction to the UML 2.0
- asr: I personally believe Product Managers ( PMs) should express their PRD in UML 2 diagrams that way any programmer in the life of 5x ( 5 times ) the development of the software can refer to the specifications.

Crude Oil, Gasoline Climb to Records on U.S. Inventory Decline

April 9. 2008 Crude oil inventories fell 3.15 million barrels to 316 million last week, the Energy Department said. A 2.3-million- barrel gain was forecast, according to a Bloomberg News survey. Metals futures also rose as the dollar fell against the euro, and gasoline pump prices reached a record average $3.343 a gallon.

``This reaction to the DOE numbers suggests that the supply and demand fundamentals are still important,'' said Adam Sieminski, Deutsche Bank's chief energy economist in Washington. ``It's not just the speculators that are driving prices higher.''

``Speculation is the main reason driving up oil prices,'' Qatari Energy Minister Abdullah bin Hamad al-Attiyah said today in Beijing. ``OPEC so far doesn't have anything on the agenda for the informal meeting in Rome.''

OPEC Meeting

The Organization of Petroleum Exporting Countries will hold its next formal policy-setting conference in September. Many OPEC ministers will hold informal discussions during a conference in Rome on April 20-22. The group's 13 members produce more than 40 percent of the world's oil.

``OPEC has lost control of the oil market to institutional investors who are looking for a sanctuary from the weak dollar and slowing economy,'' said Richard Chimblo, manager of global business development at Calgary-based Genoil Inc. ``I believe the bubble will break and prices are going to fall to the $85 area before the winter heating season.''

Oil's 81 percent gain during the past year ( asr: APR 2007- APR 08?) is the second biggest among 19 commodities on the Reuters/Jefferies CRB Index, trailing only wheat, which doubled. Rising global demand for raw materials and a weakening dollar have led to record prices this year for raw materials including corn, rice, gold and platinum.

Thursday, April 3, 2008

RIA FLEX SilverLight Adobe AIR

Rich Internet application predictions for 2008

Rich Internet application predictions from the experts

_________________________________________
Who is using FLEX
FLEX customers

Christophe Coenraets - he seems developing good apps with Flex , see good user comments
Live Help / Call Center Application with Flex and BlazeD

Using Flex with Spring

ACCELERATE4PHARMA?

http://labs.adobe.com/showcase/air/salesforce.html


_________________________________________

http://flex.org/

Component Explorer
http://www.adobe.com/support/documentation/en/flex/

Programming ActionScript 3.0
Flex Builder 3

Welcome to BlazeDS! BlazeDS is the server-based Java remoting and web messaging technology that enables developers to easily connect to back-end distributed data and push data in real-time to Adobe® Flex™ and Adobe AIR™ applications for more responsive rich Internet application (RIA) experiences.


The Adobe® AIR: Browser vs. desktop
The Adobe® AIR™ runtime complements the browser by providing the same application development and deployment benefits while adding desktop integration, local data access, and enhanced branding opportunities. An emerging design pattern for rich Internet applications (RIAs) is to deliver a browser-based version of an RIA in the browser for all users and an RIA on the desktop for more active users.

- This page has examples that covers every thing. -- use these along with Flex Builder 3 IDE download ( stand alone not Eclipse Plug-in )
Adobe AIR Sample Apps
- screens http://www.bhira.net/pages/stockq.php

-----------------------------
- ActionScript 3.0 Cookbook: Solutions for Flash Platform and Flex Application Developers - asr: seems Good ready to use problem solution book .
- Each code recipe presents the Problem, Solution, and Discussion of how you can use it in other ways or personalize it for your own needs, and why it works. You can quickly locate the recipe that most closely matches your situation and get the solution without reading the whole book to understand the underlying code. Solutions progress from short recipes for small problems to more complex scripts for thornier riddles, and the discussions offer a deeper analysis for resolving similar issues in the future, along with possible design choices and ramifications. You'll even learn how to link modular ActionScript pieces together to create rock-solid solutions for Flex 2 and Flash applications.

When you're not sure how ActionScript 3.0 works or howto approach a specific programming dilemma, you can simply pick up the book, flip to the relevant recipe(s), and quickly find the solution you're looking for.



From Java to Flex
- 0. Flex handles all the translation between Java and ActionScript classes.
- 1. The simplest use allows a Java developer to expose Plain Old Java Objects (POJO's) as back-end services via a simple configuration. Objects are transferred to the client in a compact binary format called AMF3 and converted to ActionScript 3.0 classes, which is far more efficient in the transferring and rendering time than other implementations, like XML. Combining Data Services with the popular Java POJO-based frameworks, like Hibernate and Spring, creates a truly powerful combination for building enterprise applications.

- 2. LiveCycle Data Services ES deploys in a Servlet/J2EE container and provides significant server-side infrastructure to Flex applications. Data Services offers a number of features, including remoting, publish/subscribe messaging, and data management (client-server synchronization, paging, notification, Hibernate adapter, etc).

- Tree Map open source component -- look at source code very simple ..
- More Flash Open source project , click on the cloud elements to see details ..
- Flex for Java developers - has 1 hour online demo of app with JAVA & Flex
- You have code for Tree control, list for all programming UI control you need in application WOW
- All our dream Menu controls code is here
- Using action effects in a transition
- About Change transitions see example at bottom nice one
- Fonts in Flex - Flex Support all the CSS files ( see web for it ) , he is the author of Flex TreeMap
- Skinning Flex app , see they have Nice tutorial and app
- Ajax and Flex Data Loading Benchmarks


Rich Internet Applications with Adobe Flex 2 and JavaFlash + POJO = RIAs
- Chapter 4 of the book
anothr stock app with URLs - right mouse to see code ..

An ActionScript 3 class library.These are utility classes for use in any ActionScript 3 development;
- http://almiruncommonlib.riaforge.org/

Flex 2 Samples -- last update 2008/02/15
- go to gridFilter and do view source
--------------------------------