Sunday, 24 January 2010

Good people

If you have the right attitude (teachable, very hard-working, honest, presentable) and you want to extend your skills in open source and web technologies then I need to hear from you.

Glen
Founder
Open Business Associates
The Management Consultancy for Open Source
E-mail: glen@openba.co.uk

Right now we have projects involving Jaspersoft, Infobright and Talend for business intelligence, analysis and reporting solutions. We have several active AJAX web development projects as well as new XML, web application and workflow projects.

And we have not even started pushing sales on the thin client, document management, ERP, and data migration campaigns yet. So be prepared to work very very hard, to play even harder and to be in at the start of a sector of the IT industry that is expanding rapidly.

Tuesday, 22 December 2009

Ajax Cross Domain

Cross domain ajax requests are important when building the new generation of web applications especially in a REST architecture.

Apache httpd supports .htaccess files but the information for Tomcat is a lot more sparse. Here is the solution to getting cross-domain ajax requests to work in a tomcat http environment:


You need to dowload the jar and put it in webapps/{your app}/WEB-INF/lib.
Then edit web.xml in your webapps/{your app}/WEB-INF and add in the following under the web-app element:
<filter> <filter-name>CrossDomainAjaxFilter</filter-name> <filter-class>com.cj.access.CrossDomainAjaxFilter</filter-class> </filter>  <filter-mapping> <filter-name>CrossDomainAjaxFilter</filter-name> <url-pattern>*</url-pattern> </filter-mapping>  
This is the simplest approach. The link has some additional options for more fine grained filtering. But it works out the box and is not difficult to implement - just difficult to find !

Happy Christmas all.


Wednesday, 9 December 2009

Integrated Thunderbird Email, Lightning Calendar and Google


Wow ! Mozilla has definitely come on. I have been using Thunderbird for over a year now.

I just installed Thunderbird 3 then added the latest nightly build of Lightning (Calendar) and then added the Google Calendar Add-on.

All in about 15 mins. All integrated and all working. Definitely a project to donate to.




Morning all

Christmas. and we are so busy at OBA. It puts a huge smile on my face to think back over the past year. I am even having a little partner - customer - vendor three way tensions just like a real supplier !! :-) But we will sort that out for the customer - letting them down is not an option.

Yesterday I shook hands on our first technical employee. Very excited about that.

Jaspersoft business continues to move. And Infobright business is starting to happen in the UK after Europa ran 4 days of calling into 110 leads for us.

Column databases certainly do change the mindset. I see so many customers taking ages to build relational data warehouses with 20 or 30 joins into a fact table or long snowflake chains and then thinking about bringing all that into a column database. If we have the choice, with Infobright we just put all the data (time dimensions included) into one table unless there is a good reason to do otherwise! It makes batch loading or adding new dimensions insanely easy. That keeps the ongoing costs of maintaining the data warehouse down and avoids complicated load scripts altogether.

On the other hand with Infobright we can quite happily also take on an existing snowflake schema. So we have a POC next week and I am expecting to have their queries running against the new warehouse in a day. We'll see - never can tell with a POC.

Infobright goes up to 30TB on a single server (it also does cold standby). After that we look at Greenplum for the moment.

<>




Thursday, 3 December 2009

Needing to load a new file into eXist DB from a web application.

So had to work out how to get it to work first with curl. After an hour of trying:
url -u admin:password -X PUT -d @dump.txt http://localhost:8080/exist/rest/db/kg2/employees2.xml

Saturday, 28 November 2009

Oh yes !











The SAAB Grifen JetFighter design is done in part on open source thin client technology specifically because of its ability to handle high performance graphics in a thin client.

Things like this get me excited about open source all over again.
Very very cool. Well done ThinLinc.

ThinLinc competes in the same space as Citrix and Microsoft Terminal Server. The product was designed by the same guys that came up with VNC, the graphical remote access solution for linux.

I have been working with Cendio supporting their Thin Client product 'ThinLinc' in the UK and this success is great news. This story shows how much open source has moved into the mainstream of business and that more and more companies trust open source to run their mission critical applications and still save money !

Wednesday, 25 November 2009

REST


1 am - I should be sleeping (or surfing).

The articles written on Authentication and Authorisation in a REST application seem to all point to the use of standard HTML authorisation i.e passing a username and password in the URL as the best solution. Or some variation e.g. using a hashed and salted keycode instead of a password. And then adding https to keep things hidden on the network.

All fine but it occurs to me (as things do at 1am) that if REST is about data (resources) rather than methods then the right place to protect that data is at the data level.

So I think that is what I will do. Set user, group and role security in the database and then just return an access denied error if someone requests something they cannot have.

Then the requesting client application can decide what to do with that. The reason this has been troubling me I think is that I am wanting to use AJAX to do all the front end stuff. In which case the screens are rendered generally before the data is loaded - although not necessarily (just that is normal practice at the moment).
The MVC controllers in things like Zend have been confusing me on this. I am not sure you need a controller with a REST application. The client is just calling URLs. Screen renderings are not secret and can be customised very quickly for the most part. The data is what I think I need to protect. So people will see the same screen but only the data that they are authorised to see on that screen. I think that might do nicely as a best practice.
If the screen itself needs to be secured then I suppose the screen becomes a REST resource and we secure that. But I don't have that problem right now.

Then, databases. I really want to use eXist. I think that an XML database is a very useful tool for handling the presentation of data for REST applications. And Adam Retter has written a very cool XML-SQL xquery plugin. So I can store data in XML or I can store it in a MySQL database and then let eXist query that database and return the results in well-formatted XML which it does by default. All very slick.

Hmm.