Thank you for visiting! If you liked the site, please add a bookmark, else add a critical comment! Would you like to visit Greece? Traditional Greek flag This real estate site is only available in Greek! The holy mountain

Monday 19 July 2010

Comments on Applied Numerical Analysis, by Curtis F. Gerald, Patrick O. Wheatley, 3rd Edition

On the bright side, the text is well written in American English with few typographical errors. Its text is full of worked examples, figures, graphs and tables with actual results of approximations. The problems at the end of each chapter help the reader to become familiar with the techniques, in a practical way. There are also computer programs for the reader, to practice, that is reusable source code in c, FORTRAN and for other tools, common nowadays, such as Maple, etc.
On the dark side, there are no proofs of theorems, which are of theoretical interest, especially to the mathematicians.
All in all, the book is a huge success, now at the 7th edition, suitable for engineers, or readers fond of the practical view of mathematics.

Comments on Numerical Solution Of Partial Differential Equations: Finite Difference Methods, 2nd Edition by G.D. Smith, Oxford Press

On the bright side, the text is very well written, in British English, with a few spelling errors. It is quite clear and moderately easy to follow. In addition, the text is full of figures, graphs and worked examples.
On the dark side its second edition, (1977) which I have studied, has no unsolved exercises, problems or any questions to reinforce learning and apply the theoretical techniques. Moreover, the book is not accompanied by any program or source code for tools such as Matlab or Mathematica.
All in all, the book is a success, now in its 3rd edition. Its main readers should be mostly students of mathematics, but not of engineering.

Tuesday 13 July 2010

Getting the current date in your model layer

Besides the standard way of getting the current date as a String, one could come across the need of inserting in a database table column of date datatype. Thus, the well known code snippet won't be suitable:

 DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
 
 java.util.Date date = new java.util.Date();
 
 String datetime = dateFormat.format(date);
 
 System.out.println("Current Date Time : " + datetime);
 
In case you use ADF business components for your Model project, you get the 
current date in a slightly different way. Consider for example the following code snippet,
from an adf business components, employees entity object: 
 
import oracle.jbo.domain.Date;
...

              
protected void doDML(int operation, TransactionEvent e) {
                if (operation == DML_UPDATE) {
    ...
               histStartDate = row.getEndDate();
              /*Check whether end date equals current date*/
              if (histStartDate.equals(new Date(Date.getCurrentDate()))){
                  System.out.println("End date equals current date!");
                  }
      
In case you need to convert  oracle.jbo.domain.Date to java.util.Date, please consult this:

http://forums.oracle.com/forums/thread.jspa?threadID=2185902&tstart=15

or

http://www.ecotronics.ch/webdesign/javadate.htm
  

Finally, in case you prefer EJB's for your Model project instead, you might consider the following example:

/*Typical current date for DB inserts */
java.util.Date today = new java.util.Date();
java.sql.Date bidDate = new java.sql.Date(today.getTime());
/* public void setBidDate(Date bidDate)*/
newBid.setBidDate(bidDate);

Which is in a sense, the most paradox way of all, since in order to get the current date, you actually need to call getTime()!

References

More help about: using timestamps
http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html

Comments on Oracle XSQL, by M.Thomas

On the bright side, the text is well written, in American English, with a few spelling errors. It provides an introduction to PL/SQL, database design, Oracle Text for Oracle 9i, XML, including XSL, XPath and xsql, which is now considered obsolete(?). Its source code works and could be reused. On the dark side, the book is not an introductory level one, the chapters from the beginning to 14 are more reference like, until the true tutorial building of the web application begins. A javascript or java, introduction is missing, and the paragraphs about XPath are difficult to understand.
All in all, the book can be well used as a reference, provided that several corrections need to be made by the reader, in both its source code and text.

Monday 12 July 2010

JDeveloper 11g:Using Log4j in EJB projects

Apart from the usual web client interface, a EJB 3 application can be accessed also by a plain Java Standard Edition client. This post clarifies the use of Log4j in the latter form of client. To add the Log4j jar library, double click the project, so that the window of the image appears. As for web based (view) client J2EE projects you can read it here:

All that 's written there is still valid. I would like to add a couple of things. First, you need to create the log4j.properties file in the following path:
C:\...\Model\src\
A copy of the log4j.properties file is given here for your convenience:
# **Set root logger level to DEBUG and its only appender to A.
log4j.rootLogger=DEBUG, A
# ***** A is set to be a ConsoleAppender.
log4j.appender.A=org.apache.log4j.ConsoleAppender
# ***** A uses PatternLayout.
log4j.appender.A.layout=org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

Secondly, when it comes to EJB model projects, you need to add the following code in italics, in order to avoid the expensive use of System.out.println() in your client classes:
...
import org.apache.log4j.Logger;


public class PlaceOrderClient {
static Logger logger =Logger.getLogger("PlaceOrderClient");
/* instead of Logger logger = Logger.getLogger(this.getClass().getSimpleName());*/

public static void main(String [] args) {
try {
final Context context = getInitialContext();
PlaceOrder placeOrder = (PlaceOrder)context.lookup("ejb3inaction-Model-PlaceOrder#actionbazaar.buslogic.PlaceOrder");
if (logger.isDebugEnabled())
             logger.debug("Exercising PlaceOrder EJB...");
// System.out.println("Exercising PlaceOrder EJB...");

The full source code is available on OTN:

http://www.oracle.com/technetwork/indexes/samplecode/jdeveloper-adf-sample-522118.html 
and is given without any guarantee of support whatsoever.
 
Finally, in case you prefer working with Eclipse, the process is quite similar. See for example:
http://snippets.dzone.com/posts/show/3248
If you need more tips about appenders:
http://www.mobilefish.com/developer/log4j/log4j_quickguide_appenders.html

https://logging.apache.org/log4j/2.x/ 

Saturday 10 July 2010

Comments on CompTIA Project + Study Guide

On the bright side, the book is very well written (American English) and organized with only a hand full of misspelling errors. The text is easy to follow most of the times, is full of real life examples, case studies and questions. The book does much more than just prepare you fully for the exam. It gives useful advice on daily problems. Its preliminary assessment test is a standard procedure for all Sybex books, to guide the reader to the chapters covering the knowledge he is missing.
On the dark side, the schedule development techniques and the performance reporting tools paragraphs are rather complicated and difficult to understand. Moreover, the book is heavily text based with very few diagrams and graphs.
All in all, the book provides you with all you need to pass the exams. In addition, it can be used as a reference resource throughout your professional career.

Friday 9 July 2010

Comments on PeopleSoft Developer's Guide for PeopleTools & PeopleCode, by Judi Doolittle

On the bright side, the text is mostly well written, having some spelling errors. It serves well as an introduction to the application suite offered by Oracle and Peoplesoft. The first part is very descriptive, full of screen shots, and delves into architecture details. There is also a very useful appendix for learning PL/SQL, and some COBOL .
On the dark side, the second part is only good for leisure reading, not for learning how to code. There are only two chapters of merely showing the structure of Peoplecode, without any tutorial, or exercises. Themes such as combining it with Crystal reports are missing. Its source code is not available, you have to type it! You can read more acid criticism by a more experienced reader at:
http://www.amazon.com/review/R15036IT6F1BI2/ref=cm_cr_pr_viewpnt#R15036IT6F1BI2
All in all, the book serves only as an introduction, you cannot use it to actually learn how to write code.

Comments on Object-Oriented Systems Analysis and Design, 2nd edition, by S.Bennet et al

On the bright side, the book is very well written, without spelling errors by academic stuff mainly, in British English.
The text is easy to understand and to follow most of the times, thanks to the examples of a couple of case studies provided.
The book is full with helpful diagrams, graphs, flowcharts, questions, exercises etc, to help the reader make a quick progress. It is not technology biased towards any I.D.E., or framework, presenting both Sun/Oracle and Microsoft alternatives. Its indexes are valuable as a reference to the professional as well.
On the dark side, one could use more solutions to the exercises and answer pointers appendix instead of having to pay more for them(as of 2nd edition!). More use cases would be welcome as well!
All in all, the book is a success, a best seller,as of now at its fourth edition, valuable both as an introduction to the student and the professional as a reference.

Thursday 1 July 2010

Comments on Beginning JavaServer Pages, by Chopra, Jones Li, Bell

On the bright side, the text is quite well written, with only a handful of misspellings for a 1252 pages huge book, as presented at its errata page linked here:
http://www.wrox.com/WileyCDA/WroxTitle/Beginning-JavaServer-Pages.productCd-076457485X,descCd-ERRATA.html
The source code of the book is complete, working (with the exception of the Struts chapter 19) and mostly reusable. The tutorial form of the text makes it easy to follow, so that you can practice further on your own, working on open source tools and frameworks, such as Apache ant, JUnit, JMeter, Hibernate, Tiles and the Tomcat web container.
On the dark side, the book does not delve into Servlets theory, nor does any use of any open source integrated development environment.
All in all, the book serves well the novice to intermediate reader, both as an introductory text at first and as a reference book in a later stage.

Tuesday 29 June 2010

Comments on Oracle JDeveloper 10g for Forms and PL/SQL Developers, by D.Mills, P.Koletzke.



On the bright side the text is well written without many misspellings. It has a tutorial format which is easy to follow, starting from chapter 9. The source code available from www.tuhra.com is compatible with all 10g versions of JDeveloper starting from 10.1.3, so that you can build the application presented, from scratch. Moreover, some use cases mentioned in chapter 15 are very useful and can be reusable in many similar user requirements.
On the dark side, the chapters up to 9 are a bore, purely theoretical. The 8th chapter, about bindings is tedious to read and not easy at all to understand. In addition,  some jsp pages are missing from the whole application, such as the jobs.jsp and the help page. Apart from that,  in page 329, there is a screen shot of an application page called reference.jsp, presenting a dynamic menu tree layout, which is very difficult to create on your own, via plain ADF. This highlight page is actually missing from the code too, as mentioned in the following link:
http://forums.oracle.com/forums/thread.jspa?messageID=2022769&#2022769
Apparently, the application page screen shot was created using JHeadstart, and not purely ADF. JHeadstart is an extension for JDeveloper which must be paid for. Furthermore, the whole chapter, 16, which is devoted to demonstrating, or rather promoting, JHeadstart is totally useless for the individual, open source developer. It could have been replaced by a more useful deployment guide to the Oracle Application Server (OAS) instead.
All in all, the book is not recommended unless you are forced to implement for an older J2EE environment. Besides, at the time of this writing the OAS, and JDeveloper 10g is being deprecated, its end of life is approaching and there is always a free online tutorial, if you still need to get started.

Further critical references concerning ADF:

Tales from the trenches by Dr. Dorsey. Coauthor of the JDeveloper 10g hanbook.

Comments on EJB 3 in action, by Debu Panda, Reza Rahman, Derek Lane

On the bright side, the text is most of the times crystal clear, easy to understand and follow the code creation from scratch. The helpful appendix of the book guides the reader to setup the Sun Glassfish application server in minutes, without any trouble. Such easiness really tempts to switch your java integrated development environment (IDE ) to Sun Netbeans. The database scripts given are for Oracle though, not for Derby. The source code of the book runs correctly out of the box with only an exception as mentioned here:
http://www.manning-sandbox.com/thread.jspa?threadID=37203&tstart=0
Apart from Glassfish, there are also many code versions, suitable for the older Oracle Application Server (oc4j),JBoss and weblogic 10.
On the dark side, the text is IDE neutral, the deployment is done using ant scripts. Many spelling errors also appeared in the text and the huge errata page at Manning site.
All in all, the book is highly recommended, I am looking forward to reading its newer, updated edition!

Thursday 24 June 2010

Comments on Heads first Servlets&Jsp 2nd Edition


On the bright side, the book is written in an unusual way, full of graphics and photos of an oriental martial arts movie, in an attempt to make reading the text, seem like fun. The book is full of exercises and questions to help the reader to memorize whatever is important for passing the exams. The text is clear, easy to understand most of the times, with the exceptions of the chapter about patterns and custom tag development. There also many typographical errors in the text and the questions as well. One should consult the huge error page at O'Reilly.
On the dark side, there is no hands on coding practice, the examples mentioned are deliberately simple, about cats and dogs, or outdated (struts) so that you can not easily reuse any source code from the book. This is no reference book either, as stated by its authors.
All in all, the book prepares you well for the Sun J2EE 1.4 exams, servlet v2.4, jsp v2.0, in a straightforward and funny way, but it certainly needed a greater update on older themes and addition of newer, such as jsf.

Tuesday 22 June 2010

Comments on Getting Started With Oracle SOA Suite11g, Heidi Buelow Manas Deb Jayaram Kasi Demed L'Her Prasen Palvankar


On the bright side, the text is very well written with so few spelling errors. Its tutorial form guides the reader smoothly, one step at a time. The majority of the chapters are short and concrete, the text is easy to understand and to follow, most of the times. It surely serves the reader well, as a hands on introduction, without getting deep into details. Its source code works!
On the dark side, the installation chapter, 4, needs some additions, clarifications and updates, since the newer versions always need patching and so on. The download links from o.t.n. also need an update. An inexperienced reader might spend a considerable amount of time and effort to get the SOA suite servers up and running. These two links could offer some significant help: http://forums.oracle.com/forums/thread.jspa?messageID=4210625&#4210625 and http://www.packtpub.com/article/installation-configuration-oracle-soa-suite-11g-1
All in all, the book offers a clear introduction in SOA and is recommended as a primer for newcomers to the SOA 11g world. An experienced soa 11g user might consider the book superficial, as no mention is made of advanced subjects, such as creating XML schema and reusing it.

Monday 21 June 2010

Comments on Oracle JDeveloper 11g Handbook, by D.Mills, P.Koletzke, A, R. Faderman



On the bright side, the text is well written with few spelling errors and a whole new chapter about deployment to the new standalone Weblogic server. Such a chapter did not exist in the older book for JDeveloper 10g. In addition, there is more information about using version control in JDev11g.
Its tutorial form beginning at chapter 16, is easy to follow, in order to create a complete application for your practice. Its structure resembles the step by step, successful training methodology providing end of chapter source code solutions, as used in Oracle University classes. Such hands on practice is not present in the newer "Fusion Developer's guide" by F.Nimphius et al. Furthermore, the full source code was available for download, as well as a dedicated forum for discussions of issues.
On the dark side, the source code and application were developed with an older version of JDeveloper 11g, some text about tags, labels etc, especially in chapter 21 about security, were not present in the newer versions. Thus, if you attempt to build yourself the application from scratch in the newer JDeveloper version 11.1.1.2.0, as I tried, you shall need a great deal of patience, since there were incompatibilities and bugs found, as mentioned further in the link: http://www.tuhra.com/ where you are to sign in with OTN, and publicly at http://forums.oracle.com/forums/thread.jspa?threadID=1030502 .
Moreover, the text of chapters before 16 is tedious to read, as several chapters are rather theoretical. Taskflows surely deserved a more practical approach and a do it your self add on, such as the hands on work by S.Muench, provided with his articles in Oracle magazine. There is no mention for alternative model technologies, such as JPA, EJB or POJOS throughout the book.
All in all, the book was well written and the source code given complete, as of the date of the release of JDeveloper version 11.1.1.1.0. Since then, a lot seems to have changed, older code has gone stale and a book published in December 2009 has been deprecated in only a number of months! Nonetheless, it  certainly remains still the best option for the beginners, for the time being. I am actually looking forward to a new edition, or even a reprint of the book, correcting all known errata and issues. 

Further critical references concerning ADF:

Tales from the trenches by Dr. Dorsey. Coauthor of JDeveloper 10g handbook.

Performance and scalability criticism  by several authors

Wednesday 16 June 2010

A brief introduction

I started initially a ForTran and pascal programmer, as a typical physics undergraduate student. During the 2 years of study for the postgraduate degree in Environmental physics and Meteorology, of the University of Athens, I switched to applying arithmetic analysis schemes in modeling of physical,  phenomena using parallel computing technologies, such as the C libraries of MPI and Sun Solaris.
I started using Oracle and Java, in 2003.
Since then, some more exams have been passed: Certified Oracle 9i DB Associate, Sun Certified Java Programmer for the 1.4 platform, CompTIA Project+ certified professional.
As far as previous experience is concerned, I have participated in large Greek and German public sector projects, having stakeholders such as the Deutsche Bahn, Bundesagentur für Arbeit, the Ministry of marine navigation, Ministry of economics and finance, Ministry of transport, national telecommunication organization (OTE group), the Greek Army and lastly the National Radio Television Council (ESR).
As far as the site content is concerned, every possible effort has been made to provide exact, accurate information. However, to err is human, hence  you are encouraged to report any errors or misspelling etc. Any source code is given without any warranty of any kind, and mostly refers to free code source of books, available online. If an author reports that his/her copyright has been hurt, I shall immediately  delete the code in question. Finally, the readers may reuse any code presented here, as long as they explicitly mention the origin of it, that is the blog URL.