9
Software Developer Newsletter Header
CPTTM software developer newsletter issue #19, Kent Tong, Editor in Chief

Dear Software Developers,

This CPTTM Software Developer newsletter is to bring useful news to you, software developers in Macau, for references without obligations, so that you can do your jobs easier and better! Hope you like it. if you'd like to unsubscribe or recommend your friends to subscribe, just email me at kent@cpttm.org.mo. Old issues are available here.

Topics in this issue:

Statistics on agile development 

A company has conducted a survey on agile development on 722 respondents. Over 85% of the people say that agile practices have increased their time-to-market, increased productivity and reduced software defects and over 60% say that they have reduced costs. In addition, over 80% of those using agile practices consider their development projects successful or very successful while less than 30% of those non-agile consider their  projects this way. The full report is here.

To become agile, you may consider joining our Agile software planning & requirement analysis course.

Easy database access with JPA

With JPA you can easily load Java objects from a database or save them. For example, you just annotate your Java class like:

@Entity
public class Book {
@Id
private Long id;
private String isbn;
private String title;
private Date publicationDate;
}

Then you can save a book with a single line:

	Book b = ...;
EntityManager em = ...;
em.persist(b);

To load all books whose publication dates are earlier than Jan 1, 2007, you can:

	EntityManager em = ...;
Query q = em.createQuery("select b from Book as b where b.publicationDate < :d");
q.setParameter("d", new GregorianCalendar(2007, 0, 1));
List books = q.getResultList();

In addition, JPA has some powerful features not found in plain SQL:

  • Association: If a Book object refers to an Author object, saving/loading a Book will save/load the Author automatically.
  • Inheritance: If a Book has subclasses such as EBook and PrintedBook, they can also be saved/loaded using the code above. That is, loading Books will correctly load EBooks and PrintedBooks too.

To learn how to setup JPA and use these advanced features, join our Reducing your database access effort with JPA & Hibernate course. It has course fee reimbursement.

Reloading changed Java classes automatically

What if you could change your Java code in a web application and the changed class is immediately picked up by Tomcat without reloading the whole application? Now you can do that with a (commercial) tool called JavaRebel.

Functional languages getting serious?

In the previous issue I mentioned an interesting language called Scala which combines OOP and functional programming and is primarily running on the Java platform. On the .NET side, Microsoft has official support for a similar language called F#. Microsoft is also working on a Visual Studio plugin for F#. Similarly, for Scala, you can get the latest Eclipse Scala plugin (beta) today which supports content assist and syntax highlighting. I've tried it and it is quite usable.

Free tool from Microsoft to detect XSS bugs

I've seen so many web sites in Macau suffering from XSS security problems which allows hackers to deface them easily. To make sure your site is not one of them, you should really check out this free tool from Microsoft if your site is written in ASP.NET. It's a Visual Studio plug-in that analyzes your code to find XSS problems.

Upcoming courses for software developers

Course code Title Start date Duration (hours) Fee (MOP) Remarks
CM269-11-2007-C JSF, Wicket and AJAX 2007/11/29 42 1280 This is the 2nd intake. The 1st one was very popular! So hurry!
CM192-11-2007-C Reducing your database access effort with JPA & Hibernate 2007/11/07 24 870
  • Learn JPA & Hibernate in details.
  • Enjoy up to 25% fee reimbursement.
CM289-11-2007-C Agile software planning & requirement analysis 2007/11/05 6 230
  • Learn to become a system analyst.
  • Due to lack of instructor, I may have to teach this course myself.
  • Enjoy up to 75% fee reimbursement.
CM290-11-2007-C Using JUnit and Selenium to perform automated software testing 2007/11/19 21 820 Enjoy up to 75% fee reimbursement.
CM291-12-2007-C Using CVS and Subversion for version control 2007/12/10 9 350 Enjoy up to 75% fee reimbursement.
CM168.2-12-2007-C PHP and MySQL 2007/12/12 79.5 2080

In addition, there are some courses your kids may enjoy:

Course code Title Start date Duration (hours) Fee (MOP) Remarks
CM275-12-2007-C Computer games DIY for the youth 2007/12/02 32 980 Enjoy up to 75% course fee reimbursement

Feedbacks

Any questions, ideas or experiences to share? Contact me at 28781313 or kent@cpttm.org.moWe also have two other newsletters: CIO newsletter and Network administrator newsletter, your friends may like to subscribe.

Until next time, 

Kent Tong

CIO Newsletter Footer