November 8, 2006

Developer skills outlook for 2007 and beyond

You will find other articles relevant to this document in these sections:
Cameron Manderson @ 9:24 am

Having a flick onto BuilderAU this morning I read an article titled “Developer skills outlook 2007: What’s hot for employers?” which covered a fair few technologies. Namely mentioned amongst the mix was Java, C#, PHP, Web2.0 and Flex. Most the article and its interviews stresses the importance of mixing technologies to stay competitive and unique, and to constantly learning new technologies to spread your risk (in the sense of a technology you invest too much time into become obsolete).

November 7, 2006

Connection Pooling and Hibernate

You will find other articles relevant to this document in these sections:
Cameron Manderson @ 9:01 pm

Connection pools are a smart way of maintaining connections so that they can be reused when the database receives future requests for data. Reading through the Hibernate documentation, Hibernate explains that the connection pooling algorithm used as default by Hibernate is not adequate for production, and recommends the c3p0 open source database connection pool’er.

Hibernate’s own connection pooling algorithm is however quite rudimentary. It is intended to help you get started and is not intended for use in a production system or even for performance testing. You should use a third party pool for best performance and stability. Just replace the hibernate.connection.pool_size property with connection pool specific settings. This will turn off Hibernate’s internal pool. For example, you might like to use C3P0.

You can find the c3p0 project on Sourceforge from this URL: http://sourceforge.net/projects/c3p0

C3P0 is an open source JDBC connection pool distributed along with Hibernate in the lib directory. Hibernate will use its C3P0ConnectionProvider for connection pooling if you set hibernate.c3p0.* properties. If you’d like to use Proxool refer to the packaged hibernate.properties and the Hibernate web site for more information.

c3p0 is an easy-to-use library for augmenting traditional (DriverManager-based) JDBC drivers with JNDI-bindable DataSources, including DataSources that implement Connection and Statement Pooling, as described by the jdbc3 spec and jdbc2 std extension.

You can read about Connection Pooling on wikipedia, or read this documentation on how to configure hibernate to use c3p0.

As a note to PHP users, PHP creator Rasmus Lerdorf discusses about the lack of connection pooling in PHP (as well as all the other hard questions of PHP). People can check out SQLRelay as a way of helping implement connection pooling, but requires a server install.

SQL Relay is a persistent database connection pooling, proxying and load balancing system for Unix and Linux supporting ODBC, Oracle, MySQL, PostgreSQL, Sybase, MS SQL Server, IBM DB2, Interbase, SQLite and MS Access (minimally) with APIs for C, C++, Perl, Perl-DBI, Python, Python-DB, Zope, PHP, Ruby, Ruby-DBI, Java and TCL, drop-in replacement libraries for MySQL and PostgreSQL clients, command line clients, a GUI configuration tool and extensive documentation. The APIs support advanced database operations such as bind variables, multi-row fetches, client-side result set caching and suspended transactions. It is ideal for speeding up database-driven web-based applications, accessing databases from unsupported platforms, migrating between databases, distributing access to replicated databases and throttling database access.

November 6, 2006

JSP - Displaying Date/Time notes

You will find other articles relevant to this document in these sections:
Cameron Manderson @ 9:30 pm

Having a hunt I came across the article on JavaRanch about displaying Date/Time on JSP pages with a few different strategies. Displaying a date/time really needs to be localised for i18n (internationalisation) standards and needs to involve the Locale/getLocale().

JSP - linking to URL with additional parameters

You will find other articles relevant to this document in these sections:
Cameron Manderson @ 9:24 pm

Having a muck around with JSP’s with struts lead me across a scenario where multiple parameters need to be parsed through to another action. Although probably simpler to do using a manual link, using the html:link taglib is preferred so that we can change our servlet configuration/URL. When I investigated into the issue it appears that you need to parse across a HashMap in the pageContext, which involves some initial JSP tags - not very pretty. The other way of doing it is to use the c:url of the JSTL package if it is available to you.
You can read through the discussion thread here.

Google - careful to stop ‘kinks’ in its armor

You will find other articles relevant to this document in these sections:
Cameron Manderson @ 7:20 pm

With the purchasing of new technologies and business google has to be weary of openning the legal surface plane to potential lawsuits. Have a read of the article appearing on The Age titled Google lawyers fend off the YouTube lawsuits.

Mac OS X Widgets

You will find other articles relevant to this document in these sections:
Cameron Manderson @ 7:11 pm

I was having a quick explore into Dashboard Widgets today, and was suprised that the interfaces were created in HTML and CSS stylising, with PNG images.

Through JavaScript you can invoke various actions on the operating systems including system calls. This virtually allows you to communicate with any style of scripts installed on the computer, such as your PHP/Mac/C scripts, or communicate with XML provided by a REST webservice (say FLICKR for example). Your application could really take advantage of the AJAX style applications, affecting the DOM presentation to the user (DHTML), invoking JavaScript and performing asynchronous calls reading XML and the like.

From what I can gather it operates the same as a Safari browser, and it reveals access to the OS through a API object called “widget” that becomes available to your HTML page. Example: widget.system(”/bin/echo ‘my clipboard contents’ | /usr/bin/pbcopy”, null);
The structure of a Widget is a folder (with the extension of .wdgt) and importantly contains the basic files:

my_widget.wdgt
- Info.plist - XML/Properties containing basic properties of your widget, such as version, security requirements, placement of close buttons etc
- Icon.png - Represents the Widget
- Default.png - Represents the operating Widget
- my_widget.html - The HTML operating Widget - needs to be specified in your Info.plist
Widgets introduce dozens of potential applications, infact just as many as you can imagine with any web application.

For more information and a tutorial, checkout:

Apple Dashboard Tutorial 

ActionScript event handling using a Proxy

You will find other articles relevant to this document in these sections:
Cameron Manderson @ 6:58 pm

I came across a nice little overview of the Proxy pattern applied in event handling for ActionScript today, if you are looking at the way you handle your event/triggering in your AS classes have a look. http://www.person13.com/articles/proxy/Proxy.htm

November 5, 2006

Log4php - All your logging needs

You will find other articles relevant to this document in these sections:
Cameron Manderson @ 4:00 pm

People working with PHP applications should check out the PHP port of Log4j, the logger written originally for Java. We used to use this a long time ago with our Struts Java web applications, and the same functionality can be achieved using this, add it to your toolkit for your applications.

The port is provided by Apache and is available at the link: http://logging.apache.org/log4php/

November 3, 2006

Adobe Developer Seminar - Melbourne

You will find other articles relevant to this document in these sections:
Cameron Manderson @ 2:51 pm

I went to the Adobe Developer Seminar this morning to hear from Adobe on the two markets that they are chasing - designers and developers. The presentation covered Flash/Flash Light, the spry framework, flex and a touch on Apollo. Presented were a few examples of each of the technologies and a few different applications demonstrated being developed in both Spry and Flex frameworks.

The Seminar still seemed slightly sales oriented and lacked the real depth that I was hoping for, but as a discussion on emerging technologies and reviewing technologies it is always great. Seeing some flex app’s in demo as well as some of the server side stuff, like the Media Server were a good brief review, and we will be getting into some flex applications shortly.

They also were still hoping to push cold-fusion, but all they showed was a wizard that generated a flex app with a database managed by coldfusion, which they were pushing cold-fusion as quick because of this - but I have seen complete JEE apps build out with an ANT script at exactly the same speed ;-)

Browser Testing

You will find other articles relevant to this document in these sections:
Richard Lee @ 10:48 am

If you don’t mind waiting for 30 minutes or so checkout browsershots.org for a free online browser testing service ;) . Submit your site to various browsers, resolutions, colour depth with or without JavaScript or Flash and much much more!
FYI I have noticed screenshots are viewable by the public temporarily whilst in the “queue” and “recent screenshots” pages

« Previous PageNext Page »