Continuing my interest in all things Wicket, some months before Christmas I found an open source project called Brix CMS, currently hosted on Google Code. It seemed like a more agile fit for my needs regarding content driven websites, with high value placed on componentisation. Additionally the project owners are committers for Wicket, and have put a very well organised framework together in Brix, easily extensible, and very powerful.
I have bashed some sites together using Brix already for a range of clients for my company, and have been pleasantly surprised with how I have been able to apply the framework to so many different domains.
It is early days yet, but the discussion lists are picking up a little, and the roadmap looks promising. As a tool, it certainly fits my needs so I will be following it with great interest. Documentation is sparse but improving, and much of what you need to do to extend Brix is fairly intuitive.
Leveraging Wicket and Jackrabbit seems to provide such power and flexibility, I find it hard to go back to the ways of JSF or even worse Servlets and XSLT as some of my company's projects use. Cocoon with XSLT yes, Servlets with XSLT please no... no... no.
I am having a little difficulty getting my head around integration testing with Brix, the ability to test wicket pages in isolation is something I am missing, but hopefully I will find a way.
Showing posts with label Apache. Show all posts
Showing posts with label Apache. Show all posts
Sunday, February 08, 2009
Friday, August 01, 2008
Cocoon 2.2, Spring and Database Integration
Well, it seems I spoke too soon in my last post where I said...
'therefore, you can do anything you like with technologies like Hibernate, marvellous..'.
While Cocoon 2.2 integration with Spring is watertight.. integrating with the right versions of Spring libraries outside of the default ones, and with Hibernate or JPA is not straight forward. Furthermore, as has always been the case, while the documentation for Cocoon is slowly growing in terms of quantity, and quality, it is still far behind many other projects. I had big issues getting any solution to work in terms of writing to or reading from the database, and saw, that many others have apparently had the same problems. In many cases, I saw strange hacks to get things working, and lets face it, users want to see a solution work without strange and ugly hacks.
Changing topics, Cocoon Forms has frustrated me recently, while I have always admired its powerful capabilities, I do not like the way it just seems to 'brake the flow of an application, requiring different matchers, and templating technologies. I realy wanted to enable the componentisation of forms under my own widget system, where forms could just be embedded in a simple manner. I ended up hacking my application to such a deep level that I decided I was better of just using the 'Form is the whole World' approach as per usual. Perhaps someone else has a solution around this?
Anyhow, thats enough of my thoughts on these two subjects, I will get back to them both next time.
'therefore, you can do anything you like with technologies like Hibernate, marvellous..'.
While Cocoon 2.2 integration with Spring is watertight.. integrating with the right versions of Spring libraries outside of the default ones, and with Hibernate or JPA is not straight forward. Furthermore, as has always been the case, while the documentation for Cocoon is slowly growing in terms of quantity, and quality, it is still far behind many other projects. I had big issues getting any solution to work in terms of writing to or reading from the database, and saw, that many others have apparently had the same problems. In many cases, I saw strange hacks to get things working, and lets face it, users want to see a solution work without strange and ugly hacks.
Changing topics, Cocoon Forms has frustrated me recently, while I have always admired its powerful capabilities, I do not like the way it just seems to 'brake the flow of an application, requiring different matchers, and templating technologies. I realy wanted to enable the componentisation of forms under my own widget system, where forms could just be embedded in a simple manner. I ended up hacking my application to such a deep level that I decided I was better of just using the 'Form is the whole World' approach as per usual. Perhaps someone else has a solution around this?
Anyhow, thats enough of my thoughts on these two subjects, I will get back to them both next time.
Sunday, February 03, 2008
Touching base on Maven and Cocoon
I blogged a while ago on a new technology (to me), Maven, and one I am familiar with... Cocoon, now here is a quick catch up on both topics.. combined. I am now using both Maven and Cocoon, in the form of Cocoon 2.2, which I am experimenting with for the first time. The modular approach for builds that maven represents appeals to me, and Cocoon is an old favourite in my development toolkit, yes it still gives me a warm glow inside, and truthfully I have not yet experienced anything as good in terms of architecting an elegant web platform.
I intend to rewrite my company website using this set of tools, and have another project to work on simultaneously, the former is purely a publishing project, something I have experience in, the latter is a database intensive operation, something I am not comfortable with in terms of Cocoon. I have still not seen any beginner (best practice) samples for developing DB powered webapps with Cocoon.. specifically Cocoon 2.2, the search goes on. If I do find any, I will be sure to post them as a follow up to this.
In terms of my experience so far, this Maven Cocoon 2 combination has a fair overhead, particularly if you are not familiar with the concept of build tools such as Apache Ant, and Cocoon by itself is a large and complex platform. The joy is in watching your efforts rewarded with powerful automation, and an incremental, concise approach, allowing the developer to use lego blocks, reusing code, and expanding the boundaries confining any architecture elements of the system.
A word of warning though, as of right now, the chances of a successful build of Cocoon 2.2, without being forced to tinker with the system are slim, it is a frustrating experience, which perhaps only makes your eventual success (hopefully), all the more pleasant.
I intend to rewrite my company website using this set of tools, and have another project to work on simultaneously, the former is purely a publishing project, something I have experience in, the latter is a database intensive operation, something I am not comfortable with in terms of Cocoon. I have still not seen any beginner (best practice) samples for developing DB powered webapps with Cocoon.. specifically Cocoon 2.2, the search goes on. If I do find any, I will be sure to post them as a follow up to this.
In terms of my experience so far, this Maven Cocoon 2 combination has a fair overhead, particularly if you are not familiar with the concept of build tools such as Apache Ant, and Cocoon by itself is a large and complex platform. The joy is in watching your efforts rewarded with powerful automation, and an incremental, concise approach, allowing the developer to use lego blocks, reusing code, and expanding the boundaries confining any architecture elements of the system.
A word of warning though, as of right now, the chances of a successful build of Cocoon 2.2, without being forced to tinker with the system are slim, it is a frustrating experience, which perhaps only makes your eventual success (hopefully), all the more pleasant.
Tuesday, October 23, 2007
Maven, to use or not to use
I have looked at Maven as a possible approach to standardise the way I work with projects in the past, and have thought it has a great deal of promise, but two things have held me back from working with it... time, and some negative reviews from people I respect in the software development circles.
Now I am working in a small company, where in between projects there is scope to work on improving project platforms, engine rooms etc, and there is definitely scope to improve reuse of code. Added to this I am sick of checking jar files to source control, it seems a bit pointless.
So I grabbed myself a PDF to read through, and intend to beef up on Mavenesque ways over the next few weeks, lets see how it goes.
I will report back in a while.
Goes quiet, pondering, where's my cup of tea?
Now I am working in a small company, where in between projects there is scope to work on improving project platforms, engine rooms etc, and there is definitely scope to improve reuse of code. Added to this I am sick of checking jar files to source control, it seems a bit pointless.
So I grabbed myself a PDF to read through, and intend to beef up on Mavenesque ways over the next few weeks, lets see how it goes.
I will report back in a while.
Goes quiet, pondering, where's my cup of tea?
Monday, April 23, 2007
Leveraging powerful frameworks
I really feel that I need to give more back to the open source world.. after all I am benefiting so massively from a number of open source frameworks. In my new role, (6 working days in), I am required to set up a web platform which is extensible, efficient, reliable and usable, and using Apache, Cocoon, Dojo and the Hippo CMS I am able to do just that. The job is not over yet, but I am confident that my new company will be very happy with the end product. Thanks to the guys at Apache, Cocoon.Apache, Dojo and Hippo.
So how to give back, I suppose I just need to get more involved in the communities! Provide feedback, ensure any problems are reported, and help to get more exposure for the different projects.
I will be sure to post more on the results of working with these frameworks in the coming weeks.
So how to give back, I suppose I just need to get more involved in the communities! Provide feedback, ensure any problems are reported, and help to get more exposure for the different projects.
I will be sure to post more on the results of working with these frameworks in the coming weeks.
Monday, April 09, 2007
Dedicated Server with Gentoo, Apache and Webdav
Yep, still loving having my own dedicated server... and this time, I'm going to jabber about the virtues of Gentoo, Apache and Webdav.
I wanted to provide a place where my dad can store and backup his documents, so originally I considered SFTP.. not so easy, I then needed to educate on the nuances of file transfer with some special client application... Webdav steps in here as an easier alternative, drag and drop from a native windows interface.. Windows' own File Explorer.
On Gentoo.. which has arguably the best package management system, 'Portage', setting up Apache with Webdav was easy, very easy, there are plenty of howto's all available with a quick Google search.
So thats use number one for a dedicated server... use number two would have to be my subversion setup with Apache.. no more excuses, I should not be able to lose valuable work anymore.
I also get to make my code and libraries, and for that matter reference works available to me wherever I go if the internet is available. Handy!
I wanted to provide a place where my dad can store and backup his documents, so originally I considered SFTP.. not so easy, I then needed to educate on the nuances of file transfer with some special client application... Webdav steps in here as an easier alternative, drag and drop from a native windows interface.. Windows' own File Explorer.
On Gentoo.. which has arguably the best package management system, 'Portage', setting up Apache with Webdav was easy, very easy, there are plenty of howto's all available with a quick Google search.
So thats use number one for a dedicated server... use number two would have to be my subversion setup with Apache.. no more excuses, I should not be able to lose valuable work anymore.
I also get to make my code and libraries, and for that matter reference works available to me wherever I go if the internet is available. Handy!
Friday, November 10, 2006
I am setting up my own dedicated server, its fun for a geek!
As mentioned in my previous post, www.rossputin.org (down at the time of this writing) is moving to my new dedicated server, and this is opening up a whole new world to me, involving hosting my own DNS, when previously I could only work from the Apache stage onwards. I have always classified myself as a software developer/architect, so doing these sys admin type of tasks is new ground, but definitely informative.
Of course because this is my own server (well, shared with a colleague at work) and these websites are my own.. I am striving to crank the maximum performance possible out of them. Its good fun actually... benchmarking for speed and seeing exactly what kind of performance I can get out of them!
The server will be cranking out plain old html pages, and pages served from a Cocoon instance. I am going to list some benchmark results from both here. First up, with no caching.
Plain html
using Apache Benchmark with 100 consecutive requests, we get:
Requests per second: 1155.13
Time per request : 0.866
(fast as expected, its just html)
Home page of Cocoon App
same apache command:
Requests per second: 110.51
Time per request : 9.049
(not so fast, of course.. as expected)
So I am prepared to accept 110.51 requests per second in consecutive tests.
Now lets look at some more serious stress testing :-)
Lets look at concurrent requests...
ab2 -n 10000 -c 50 http://www.my-non-cached-website.com/
will run 10000 requests with 50 request concurrency :-)
The results on my cocoon instance behind apache are:
Requests per second: 172.98
Time per request : 289.045
Now once again, clearly this is fast enough for a hobby homesite.. by why make the server do any more than it needs to, why overwork Cocoon, content is hardly changing very often.
Lets plug the caching in and repeat the tests :-)
Same ab2 command... ab2 -n 10000 -c 50 http://www.my-cached-website.com/
Wow!!!!!!
Results on cocoon instance behind apache:
Requests per second: 1602.96
Time per request : 31.192
Sweeet!!! Apache is very cool.
Of course because this is my own server (well, shared with a colleague at work) and these websites are my own.. I am striving to crank the maximum performance possible out of them. Its good fun actually... benchmarking for speed and seeing exactly what kind of performance I can get out of them!
The server will be cranking out plain old html pages, and pages served from a Cocoon instance. I am going to list some benchmark results from both here. First up, with no caching.
Plain html
using Apache Benchmark with 100 consecutive requests, we get:
Requests per second: 1155.13
Time per request : 0.866
(fast as expected, its just html)
Home page of Cocoon App
same apache command:
Requests per second: 110.51
Time per request : 9.049
(not so fast, of course.. as expected)
So I am prepared to accept 110.51 requests per second in consecutive tests.
Now lets look at some more serious stress testing :-)
Lets look at concurrent requests...
ab2 -n 10000 -c 50 http://www.my-non-cached-website.com/
will run 10000 requests with 50 request concurrency :-)
The results on my cocoon instance behind apache are:
Requests per second: 172.98
Time per request : 289.045
Now once again, clearly this is fast enough for a hobby homesite.. by why make the server do any more than it needs to, why overwork Cocoon, content is hardly changing very often.
Lets plug the caching in and repeat the tests :-)
Same ab2 command... ab2 -n 10000 -c 50 http://www.my-cached-website.com/
Wow!!!!!!
Results on cocoon instance behind apache:
Requests per second: 1602.96
Time per request : 31.192
Sweeet!!! Apache is very cool.
Subscribe to:
Posts (Atom)
