Everything Java Apache Geospatial Open Source. Hello Shinning Stars!!! Vincent Massol, Raphael Luta, Santiago Gala, Carsten Z.

Thursday, November 23, 2006

Emulating Windows XP on Linux using QEMU

Quoting the quickstart guide.

Create an virtual Harddrive

qemu-img create -f qcow windowsxp.img 3G

Install Windows XP

qemu -cdrom /dev/cdrom -hda windowsxp.img -m 256 -boot d

This command means to boot from the d drive using 256 megabytes of RAM. The -cdrom option indicates where to find the device.

Networking is configured by default and Windows XP should configure itself with DHCP.
OpenSuSE 10.1 Network Install on AMD 64 Athalon

Requirements

cdrom read write
network connection

Prepare the CD

Download, write, and boot from the miniiso.

Specify Resource

At the boot menu type,

install=http://ftp.opensuse.org/pub/opensuse/distribution/SL-10.1/

Sunday, November 19, 2006

Great News! Apache talks to Tomcat through the AJP proxy. Check out mod_proxy_ajp. To enable this great service add the following to your httpd.conf file.

ProxyPass /jetspeed ajp://127.0.0.1:8009/javacontext
Geospatial data units, commonly refered to as features, can be related to one another in one of three fundamental ways. Mutually exclusive meaning that there is no space common to both features, partially inclusive meaning that each feature overlaps the other but not entirely. They occupy space that is both common and unique to one another. And all inclusive meaning one feature si defined entirely within the bounds of the other. Points, lines and polygons can relate to polygons in this way. Yet lines can only intersect one another. Points can be part of a line and can be included in a polygon or be part of the polygons bound definition.

Thursday, November 16, 2006

I've been doing alot of security lately and I need to backup some derby databases from one machine to another. The backup strategy is simple create an compressed archive and copy it using a secure connection to another machine. I'm documenting the process here. I want to backup a directory found at /path/parent/data. And I want the archive to maintain the directory data so that when it is expanded it writes one directory data and all the contents below it.

cd /path/parent
tar czf /tmp/data-`date +%j`.tar.gz data

The archive name is created with a %j indicating the day of the year. Therefore maintaining a year of backups. The next year will start to overwrite previous backups.

Then we want to copy the data to a remote machine. A secure encrypted copy can be sent to the remote machine. But in order to incorporate this in a cron job the remote machine must accept a password-less connection. These are the steps to generate the key. Run ssh-keygen without providing a passphrase.

ssh-keygen -t rsa
scp ~/.ssh/id_rsa.pub remoteuser@remotemachine:.ssh/authorized_keys2

Now remote connections can be made without providing a password. Meaning the remote machine trusts the local machine.

Tuesday, November 14, 2006

OpenSSL

sudo openssl genrsa -des3 -out domainname.key 1024
sudo openssl rsa -noout -text -in domainname.key
sudo openssl req -new -key domainname.key -out domainname.csr
sudo openssl req -noout -text -in domainname.csr

Monday, November 13, 2006

Setting up an Apache2 SSL and SuSE 10 Firewall

Setting the SuSEfirewall2 to accept https connections requires a modification to /etc/sysconfig/SuSEfirewall2.

FW_SERVICES_EXT_TCP="ssh www 443 8888"

This definition allows the Internet to connect via ssh http https and a backdoor tomcat server. Apply the new rules with,

sudo /sbin/SuSEfirewall2 start

Configuring the Default SuSE Apache 2.2 SSL

Useful guides can be found in /usr/share/doc/packages/apache2. Check out README, README.QUICKSTART, README.QUICKSTART.SSL and README.SUSE.

Define a NameVirtualHost in /etc/apache2/listen.conf

NameVirtualHost www.example.com:443

Enable the ssl configuration by copying /etc/apache2/vhosts.d/vhosts-ssl.template to vhosts-ssl.conf (only files with the extension conf will be read). Change the line with _default_ as indicated below.





Create a Test Certificate

cd /usr/share/doc/packages/apache2
sudo ./certificate.sh

Restart Apache

sudo /etc/init.d/apache2 restart

Friday, November 10, 2006

Using Ajax Dojo Toolkit
  • The first difficulty was finding out what onClick event was being called when I clicked a checkbox. (Turns out to be some event listener addition)
  • Code that got things working:


dojo.event.connect(portletsTable, "updateEditor", updateEditor );
dojo.event.connect(portletsTable, "saveEntrySubmit", saveEntrySubmit );
dojo.event.connect(portletsTable, "clearAndDisableEditor", clearAndDisableEditor );
portletsTable.getNewEntryPrototype = getNewEntryPrototype;
var data = [] ;
##foreach($p in $portletPermissions)
//data.push( { name: "$p.Permission.Name", actions: "$p.Permission.Actions", roles: "$p.Roles", Id: $velocityCount } );
##end
data.push( { name: "Xin603 1", actions: "192.168.0.1", roles: "EF:E2:D5:6A:4B:44", Id: 1 } );
data.push( { name: "Xin603 2", actions: "192.168.0.2", roles: "55:E1:D2:7A:4B:44", Id: 2 } );
data.push( { name: "Xin603 3", actions: "192.168.0.3", roles: "55:A1:2D:A2:41:34", Id: 3 } );
portletsTable.js_masterdata = data;
portletsTable.js_type = "portlet";

Thursday, November 09, 2006

Debian Unstable
I've taken the leap into debian unstable territory. I needed a new version of gcc. Newer than 3.3.4. Stepping closer to the edge. The contents of my sources.list has changed to:

deb ftp://ftp2.fr.debian.org/debian/ stable main
deb-src ftp://ftp2.fr.debian.org/debian/ stable main
deb http://security.debian.org/ stable/updates main
p

Monday, November 06, 2006

MapServer - ODBC - OGR - Postgresql 7.4.7

I'll have to admit that this is not cutting edge mapping, but it is platform independent using php4, unixodbc, and apache. It works on Linux and works on Windows. The objective here is to get map plotting working. Scalability and security are assured by using a relational database.

OGR

OGR is a vendor independent geospatial data access library included with gdal.

Simplify Data

To illustrate properly map plotting of point data such as addresses we have set up a database table containing longitude and latitude data.

Map Server

Map Server is configured to read from the database and display custom icons for point data.

OGR Configuration





ODBC:postgres/password@pg


MappingPlot



wkbPoint



MapFile Configuration

The following configuration lets the user plot different icons given the value of icon_id. The layer will only display icons from the mapping_plot table where parameters_id is equal to 1. This is achieved using the FILTERITEM and FILTER keywords. Labels are shown from the tables remarks column.

LAYER
NAME "MapPlottingbob"
CONNECTION "conf/MapPlotting.ovf"
CONNECTIONTYPE OGR
STATUS ON
TYPE POINT
DATA mapping_plot
CLASSITEM icon_id
FILTERITEM "parameters_id"
FILTER "1"
LABELITEM "remarks"


CLASS
EXPRESSION "1"
SYMBOL "/home/phil/liveaxis/src/rose-0.3.7/graphics/crime.png"

STYLE
COLOR 0 0 0
END

LABEL
MINFEATURESIZE 40
MINDISTANCE 150
POSITION UR
SIZE MEDIUM
COLOR 0 0 255
END
TEMPLATE "templates/MappingPlot/MappingPlot.html"
END

CLASS
EXPRESSION "2"
SYMBOL "/home/phil/liveaxis/src/openaddress/src/plotting/icons/1.gif"

STYLE
COLOR 0 0 0
END

LABEL
MINFEATURESIZE 40
MINDISTANCE 150
POSITION UR
SIZE MEDIUM
COLOR 0 0 255
END
TEMPLATE "templates/MappingPlot/MappingPlot.html"
END

CLASS
EXPRESSION "3"
SYMBOL "/home/phil/liveaxis/src/openaddress/src/plotting/icons/2.gif"

STYLE
COLOR 0 0 0
END

LABEL
MINFEATURESIZE 40
MINDISTANCE 150
POSITION UR
SIZE MEDIUM
COLOR 0 0 255
END
TEMPLATE "templates/MappingPlot/MappingPlot.html"
END

HEADER "templates/MappingPlot/MappingPlot_header.html"
FOOTER "templates/MappingPlot/MappingPlot_footer.html"

END

Thursday, November 02, 2006

Setting the date on Linux

sudo date --set='+1 hours'

Tuesday, September 19, 2006

I am trademarking right now YouML! The idea is to create a yahoo google interface implemented in j2. Features are building applications from any ML.

Sqeezing Andromda 3 into Jetspeed 2 will help this effort.

What is a MDA?

An engine that enterprets the Universal Modeling Language (UML) and exposes a java datamodel to meta facades and templates.

What are meta facades?

Objects generated from a UML model describing a framework such as struts, ojb, jsf portlet, xml schema with xmlbeans, data backup and restore with ddlutils, etc. The meta facades describe aspects of the framework such as it's capabilities to display complex web interfaces.

This is one of the grey areas of Andromda. The default Cartriges don't generate jsf or struts only. But rather an Andromda developers framework or best practice for using such technologies. Anyway what's interesting is that the framework is yours to choose. But the reality is you have to write or modify Cartriges to achieve your MDA generated framework.

What is an object model?

An object model is a java model view to the framework.

What is an Repository?

The Repository is the underlying UML implementation. Eclipse Modeling Framework and Netbeans UML implementation are two examples of Repositories.

Getting familiar?

So the contents of the repository is the bizness inteligence, or process modeled in UML.

What is all this about?

It's about working fast! No, that's not true!

It's about thinking graphically. Developing in a graphic environment. Building bug free boiler plate code. You code the logic if you want. Configuration is achieved in the meta facades and object models. The user works with UML objects by assigning them stereotypes and tagged values which determine the framework implementation. That's enough for now. Try it www.andromda.org

Friday, September 01, 2006

Profiling, profiling, profiling. When a user connects to the Apache Portals Jetspeed enterprise portal the profiler will decide what he or she gets. The profiler uses rules and criteria in order to find a match based on user, group, role, language, media type, country, language.

The Profiler Valve invokes this process. First the criteria object is build defined by the keys: page, user, group, role, media-type.

There are only two default rule objects used by J2 out of the box. The StandardProfilingRule and the RoleFallbackProfilingRule. Both set up keys for the criteria stored in the database.

The database implements two tables, PROFILING_RULE and RULE_CRITERION. When applied the rules build a ProfileLocator which is used in the content negociation logic of the ProfilerValve. Implemenation to be verified.

The ProfileLocator object is like a super map full of keys and values. The key is the Criterion object. Currently reading implementation...

Administrators can see all the rules available but one has to know the keys, 'page', and 'menu' are the most common and are setup out of the box. Both users 'user' and 'jetspeed' are setup with the 'role-group' rule set to the key 'menu'. Their 'page' rules are different. 'role-fallback' and 'j2' respectfully. Their roles are set to 'user'.

The Profiler in conjunction with the Page Manager converts location keys into file system paths. Example,

path:/search/search-engine.psml:role:user:group:user:mediatype:html:language:fr

Is converted to,

WEB-INF/pages/_role/user/_group/user/_mediatype/html/_language/fr/search/search-engine.psml

A fallback mechanism is used to search for alternatives. The first file found is used to render the page,

WEB-INF/pages/_role/user/_group/user/_mediatype/html/_language/fr/search/search-engine.psmlWEB-INF/pages/_role/user/_group/user/_mediatype/html/search/search-engine.psmlWEB-INF/pages/_role/user/_group/user/search/search-engine.psmlWEB-INF/pages/_role/user/search/search-engine.psmlWEB-INF/pages/search/search-engine.psml

See the Profiler - Page Manager design documentation for a more detailed description.

What is Fallback? People say things like a Jetspeed Profile Rule fallback, meaning the rule will fallback if it does not find an exact match. This means that the rule will loop through a sequence of paths until it finds a file that meets the Criteria. See the above example.

Thursday, August 31, 2006

Things I've got to find.
The Tomcat access log. Found It! See the Tomcat valve documentation. It discusses the org.apache.catalina.valves.AccessLogValve

Friday, August 25, 2006


My tree would make a great layout decorator for Apache Portals Jetspeed.

Friday, August 18, 2006

I think that a very interesting feature of Jetspeed-2 is it's LDAP support. Support for the Apache Directory Server is provided in the distribution. And discusion on supporting other servers is starting on JIRA-491

Thursday, August 17, 2006

Installing OTRS 2.0.4 trouble ticket system on Fedore Core 4!

1. Download the RPM

[nagios@nagios noc]$ wget ftp://ftp.otrs.org/pub/otrs/RPMS/redhat/8.0/otrs-2.0.4-01.i386.rpm

2. Install RPM

[nagios@nagios noc]$ sudo rpm -ihv otrs-2.0.4-01.i386.rpm
error: Failed dependencies:
fetchmail is needed by otrs-2.0.4-01.i386

Resolve fetchmail dependency

[nagios@nagios noc]$ sudo yum install fetchmail

3. Start services

[nagios@nagios noc]$ sudo /sbin/service httpd start

I had problems with Fedora Core 4 and OTRS. This post saved me. It says to change all references to Apache to Apache2 in /etc/httpd/conf.d/otrs.conf

[nagios@nagios noc]$ sudo /sbin/service mysqld start

4. Set the password for the MySQL server

[nagios@nagios usr]$ sudo /usr/bin/mysqladmin -u root password 'new-password'
[nagios@nagios usr]$ sudo /usr/bin/mysqladmin -p -u root -h mydomain.tld password 'new-password'
Enter password:

5. Install the OTRS database

http://mydomain.tld/otrs/installer.pl

A warning message about permission write access to Config.pm was resolved by disabling SELinux with this command,

[nagios@nagios usr]$ sudo /usr/sbin/setenforce 0

6. Start OTRS service

[nagios@nagios noc]$ sudo /sbin/service otrs start

Sunday, August 13, 2006

I am doing some simple :) xml editing so I thought I would explore eclipse 1.2 xml support. So here we go with the Compound XML Document Toolkit http://www.alphaworks.ibm.com/tech/cxde

I'm using windows at the moment so I'm getting the all in one starter kit from the Web Tools project http://www.eclipse.org/webtools/ which depends on GEF and EMF.

Big download...

The installation of the Compound XML Document Toolkit was not successful but after an hour or two of using Web Tools xml editor I am satisfied to say that it provides good xml, xsl, dtd, and xml schema support. On the other hand my first wish would be to have a means of displaying the xpath a specific target location to any other place in the document. Visually determining an xpath such as the following is rather cumbersome,

XMI/XMI.content/UML:Model/UML:Namespace.ownedElement/UML:Package/UML:Namespace.ownedElement/UML:UseCase/UML:Namespace.ownedElement/UML:SignalEvent/UML:Event.parameter/UML:Parameter/UML:ModelElement.taggedValue/UML:TaggedValue/UML:TaggedValue.referenceValue/UML:ModelElement/XMI.extension/referentPath[@xmi.value='org.andromda.profile::presentation::WebFieldType::selecttextinput']

Thanks for reading...Keep coming back for more on UML editing.

Tuesday, June 27, 2006

This blog will present you with a common method for maintaining branches of an open source project. A concrete example would be when you take and modify an opensource project. Branches are maintained with diff files. The subversion command for diff is 'svn diff myDirectory'. Suppose you want to use an open source project to create your own website. Just keep a copy of the svn diff and send that to any machine that will be used to deploy the website.

Tuesday, June 13, 2006

For the second time I had a problem with javac on linux. You can not use the ~ char in the -classpath flag.