<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>Fermasoft.com</title>
<description>Pagine personali di Marco Ferretti</description>
<link>http://www.fermasoft.com/Site/BlogIt-Admin?action=rss</link>
<lastBuildDate>Sun, 20 May 2012 07:42:46 GMT</lastBuildDate>
<item>
<author></author>
<link>http://www.fermasoft.com/Blog/ECryptFs-has-a-home?when=2012-05-10T08:06:42Z</link>
<title>Blog / ECryptFs has a home</title>
<dc:date>2012-05-10T07:58:00Z</dc:date>
<pubDate>Thu, 10 May 2012 07:58:00 GMT</pubDate>
<description><![CDATA[<p>For the first time in the 7 year history of the project, eCryptfs has it's very own, dedicated home on the web at <a class='urllink' href='http://eCryptfs.org' title='' rel='nofollow'>eCryptfs.org</a>.
</p>
<p class='vspace'>eCryptfs.org now serves as the project's official portal to numerous resources, including: information <a class='urllink' href='http://ecryptfs.org/about.html' title='' rel='nofollow'>about</a> the project, <a class='urllink' href='http://stackexchange.com/search?q=ecryptfs' title='' rel='nofollow'>StackExchange</a> questions and answers, <a class='urllink' href='http://vger.kernel.org/vger-lists.html#ecryptfs' title='' rel='nofollow'>mailing list archives</a>, the <a class='urllink' href='https://plus.google.com/103860974668504356550' title='' rel='nofollow'>Google Plus</a> page, package <a class='urllink' href='http://ecryptfs.org/downloads.html' title='' rel='nofollow'>download</a> links for all major Linux OSes, pointers to the <a class='urllink' href='https://git.kernel.org/?p=linux/kernel/git/tyhicks/ecryptfs.git;a=tree;f=fs/ecryptfs' title='' rel='nofollow'>kernel</a> and <a class='urllink' href='http://bazaar.launchpad.net/~ecryptfs/ecryptfs/trunk/files' title='' rel='nofollow'>userspace</a> source code repositories, <a class='urllink' href='http://ecryptfs.org/support.html' title='' rel='nofollow'>support</a> resources, <a class='urllink' href='http://ecryptfs.org/documentation.html' title='' rel='nofollow'>documentation</a>, and <a class='urllink' href='http://ecryptfs.org/news.html' title='' rel='nofollow'>news</a>.
</p>
<p class='vspace'>The kernel sources continue to be hosted on <a class='urllink' href='http://git.kernel.org/' title='' rel='nofollow'>git.kernel.org</a>, and the user space sources and bugs hosted on <a class='urllink' href='http://launchpad.net/' title='' rel='nofollow'>Launchpad.net</a>.  We are now using <a class='urllink' href='http://stackexchange.com/' title='' rel='nofollow'>StackExchange.com</a> for questions and answers rather than Launchpad.
</p>
<p class='vspace'>A special thanks goes out to the original authors and developers of eCryptfs in the <a class='urllink' href='http://www-03.ibm.com/linux/ltc/' title='' rel='nofollow'>IBM Linux Technology Center</a> Security Team, the <a class='urllink' href='http://canonical.com/' title='' rel='nofollow'>Canonical</a> Kernel and Security Team, <a class='urllink' href='http://redhat.com/' title='' rel='nofollow'>Red Hat</a> and beyond, as well as all of the <a class='urllink' href='http://bazaar.launchpad.net/~ecryptfs/ecryptfs/trunk/view/head:/debian/changelog' title='' rel='nofollow'>contributors</a> to eCryptfs over the last 7 years.  <a class='urllink' href='http://gazzang.com/' title='' rel='nofollow'>Gazzang</a> commissioned the artwork and web design, and is sponsoring the web hosting of eCryptfs.org as a bit of a "thank you" to the eCryptfs community growing far and wide.  
</p>
<p class='vspace'>Sources 
</p>
<div class='vspace'></div><ul><li><a class='urllink' href='http://blog.dustinkirkland.com/2012/05/introducing-ecryptfsorg.html' title='' rel='nofollow'>Dustin Kirkland</a>'s blog
</li><li><a class='urllink' href='http://ecryptfs.org/about.html' title='' rel='nofollow'>ecryptfs</a> home page
</li></ul>
]]></description></item>
<item>
<author></author>
<link>http://www.fermasoft.com/Blog/Liferay-6-something-they-don-t-tell-you?when=2012-04-26T19:39:02Z</link>
<title>Blog / Liferay 6 : something they don't tell you</title>
<dc:date>2012-04-26T19:21:00Z</dc:date>
<pubDate>Thu, 26 Apr 2012 19:21:00 GMT</pubDate>
<description><![CDATA[<p>Today I just realized that Liferay 6 ships with a new filter and a new servlet ... the problem is that they both map to /documents/* ! The problem is that,if you have little fantasy like I do, you will add your document library portlet ( or document library display portlet ) in a page that maps to /documents !
If that worked up to the previous version (5.2.3) you will find that the new version breaks your installation ( if you have a layout like I did ).
</p>
<p class='vspace'>Here's what's in web.xml :
</p>
<p class='vspace'>the filter 
</p><pre class='escaped'>
    &lt;filter-mapping&gt;
        &lt;filter-name&gt;Auto Login Filter&lt;/filter-name&gt;
        &lt;url-pattern&gt;/documents/*&lt;/url-pattern&gt;
        &lt;dispatcher&gt;REQUEST&lt;/dispatcher&gt;
        &lt;dispatcher&gt;FORWARD&lt;/dispatcher&gt;
    &lt;/filter-mapping&gt;
</pre>
<p>and the servlet
</p><pre class='escaped'>
    &lt;servlet-mapping&gt;
        &lt;servlet-name&gt;Web Server Servlet&lt;/servlet-name&gt;
        &lt;url-pattern&gt;/documents/*&lt;/url-pattern&gt;
    &lt;/servlet-mapping&gt;
</pre>
<p class='vspace'>my page was ( I'll explain later why the past ) served at 
<a class='urllink' href='http://myserver/documents' title='' rel='nofollow'>http://myserver/documents</a> (obviously this is not the real url) and in that page there was the document library portlet.
</p>
<p class='vspace'>When I tried to click on a document the url that was called was <a class='urllink' href='http://myhost/documents/-/document_library/view/21794' title='' rel='nofollow'>http://myhost/documents/-/document_library/view/21794</a>
</p>
<p class='vspace'>If we analyze what happens in the servlet container, the filter is fired and then the servlet is fired ( I didn't actually debug/test this but that's what I expected to happen ) then everything should have been sent to the document library portlet and the file should have been served... <strong>should</strong>
</p>
<p class='vspace'>That was not the case and, up to this morning, I had no idea that the problem was the page name. 
To make a long story short, I tested, instead of using the friendly url 'documents', using the canonical liferay path : <a class='urllink' href='http://myhost/web/mycommunity/documents/-/document_library/view/21794' title='' rel='nofollow'>http://myhost/web/mycommunity/documents/-/document_library/view/21794</a> and magically the file was served ! 
What happened ? As far as I can tell : neither the filter nor the servlet was fired. 
This, to me, looks like a bug : I asked the <a class='urllink' href='https://www.liferay.com/community/forums/-/message_boards/message/13630691' title='' rel='nofollow'>liferay forum</a> for a confirmation bofore opening a big report but haven't received any reply up to now.
</p>
<p class='vspace'>I have, for the moment, resolved my issue by changing the 'friendly url' from documents to document_library so that now the url is <a class='urllink' href='http://myhost/documents_library/-/document_library/view/21794' title='' rel='nofollow'>http://myhost/documents_library/-/document_library/view/21794</a> and everything is back to normal .
</p>
<p class='vspace'>If you are willing to test/replicate the issue, please update the <a class='urllink' href='https://www.liferay.com/community/forums/-/message_boards/message/13630691' title='' rel='nofollow'>liferay forum</a> report so that the staff @<a class='urllink' href='http://www.liferay.com' title='' rel='nofollow'>liferay</a> can actually be aware of the issue an maybe come up with a better solutio/update of the documentation !
</p>
]]></description></item>
<item>
<author>Marco Ferretti</author>
<link>http://www.fermasoft.com/Blog/Install-ZFS-on-Debian-GNULinux?when=2012-04-18T08:33:25Z</link>
<title>Blog / Install ZFS on Debian GNU/Linux</title>
<dc:date>2012-04-18T07:52:00Z</dc:date>
<pubDate>Wed, 18 Apr 2012 07:52:00 GMT</pubDate>
<description><![CDATA[<p>This is a post on installing ZFS as a kernel module, not FUSE, on Debian GNU/Linux. Everything you are reading here already exist for getting this going, I just want to spread the word ...  in case you are unaware that it exists.
</p>
<p class='vspace'>The <a class='urllink' href='https://www.llnl.gov/' title='' rel='nofollow'>Lawrence Livermore National Laboratory</a> has been working on porting the native Solaris ZFS source to the Linux kernel as a kernel module. I believe that as long as the project remains under contract with the DoD there will be continuous updates. You can check what's going on at <a class='urllink' href='http://zfsonlinux.org' title='' rel='nofollow'>http://zfsonlinux.org</a>.
</p>
<div class='vspace'></div><h3>On Debian</h3>
<p class='vspace'>Step 1 : prepare the directories and download the sources  :
</p><pre class='escaped'>
mkdir ~/src/{spl,zfs}
$ cd ~/src/spl
$ wget http://github.com/downloads/zfsonlinux/spl/spl-0.6.0-rc8.tar.gz
$ cd ~/src/zfs
$ wget http://github.com/downloads/zfsonlinux/zfs/zfs-0.6.0-rc8.tar.gz
</pre>
<p class='vspace'>Step 2 :  install the dependencies for SPL, compile and make debs :
</p><pre class='escaped'>
$ sudo aptitude install build-essential gawk alien fakeroot linux-headers-$(uname -r)
$ cd ~/src/spl
$ tar -xf spl-0.6.0-rc8.tar.gz
$ cd spl-0.6.0-rc8
$ ./configure
$ make deb
</pre>
<p class='vspace'>Step 3 : install the dependencies for ZFS, compile and make debs :
</p><pre class='escaped'>
$ sudo aptitude install zlib1g-dev uuid-dev libblkid-dev libselinux-dev parted lsscsi
$ cd ~/src/zfs
$ tar -xf zfs-0.6.0-rc8.tar.gz
$ cd zfs-0.6.0-rc8
$ ./configure
$ make deb
</pre>
<p class='vspace'>If everything went fine, you have the deb files ready for install : 
</p><pre class='escaped'>
$ sudo dpkg -i ~/src/{spl,zfs}/*.deb
</pre>
<div class='vspace'></div><h3>On Ubuntu</h3>
<p>You can, of course, follow the installation path exposed above or you can simply use this PPA  <a class='urllink' href='https://launchpad.net/~zfs-native' title='' rel='nofollow'>https://launchpad.net/~zfs-native</a>.
</p>
<div class='vspace'></div><h3>Note</h3>
<p>The manpages get installed to /share/man/. You can modify your $MANPATH variable to include /share/man/man8/ or create symlinks :
</p><pre class='escaped'>
# cd /usr/share/man/man8/
# ln -s /share/man/man8/zdb.8 zdb.8
# ln -s /share/man/man8/zfs.8 zfs.8
# ln -s /share/man/man8/zpool.8 zpool.8
</pre>
<div class='vspace'></div><h3>Start playing with it</h3>
<p>Now, make your zpool:
</p>
<div class='vspace'></div><pre class='escaped'>
$ sudo zpool create test raidz sdd sde sdf sdg sdh sdi
</pre>
<p class='vspace'>It is stable enough to run a ZFS root filesystem on a GNU/Linux installation for your workstation as something to play around with. It is copy-on-write, supports compression, deduplication, file atomicity, off-disk caching, encryption, and much more. 
</p>
<div class='vspace'></div><h3>References : </h3>
<p class='vspace'><a class='urllink' href='http://pthree.org/2012/04/17/install-zfs-on-debian-gnulinux/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+pthree+%28pthree.org%29' title='' rel='nofollow'>Aaron Toponce</a>'s blog
</p>
<p class='vspace'><a class='urllink' href='https://www.llnl.gov/' title='' rel='nofollow'>Lawrence Livermore National Laboratory</a>
</p>
]]></description><dc:contributor>Marco Ferretti</dc:contributor>
</item>
<item>
<author>Marco Ferretti</author>
<link>http://www.fermasoft.com/Blog/Postgresql-load-csv-data?when=2012-04-04T09:54:16Z</link>
<title>Blog / Postgresql : load csv data</title>
<dc:date>2012-04-04T09:22:00Z</dc:date>
<pubDate>Wed, 04 Apr 2012 09:22:00 GMT</pubDate>
<description><![CDATA[<p>One of the most common action that one has to do with a database is to load data into it. Usually the data comes either in a dump/sql file or in <a class='urllink' href='https://en.wikipedia.org/wiki/Comma-separated_values' title='' rel='nofollow'>csv</a> format. Today I am going to brag about loading the latter format into a PostgreSQL database. 
The first thing to keep in mind is that PostgreSQL  is able to do it without magic .
The second thing to put attention on is which is the user who is connecting to the database to load the data. 
</p>
<div class='vspace'></div><h3>The easy pattern : you have superuser privileges</h3>
<p>In this scenario, the user is superuser ( postgres ) or is <em>inheriting</em> from the superuser role. If that's the case then all you need to do is open a psql shell and issue the command 
</p><pre class='escaped'>
 copy &lt;table&gt; from &lt;file&gt; with delimiter '&lt;delimiter&gt;' ;
</pre>
<p class='vspace'>where 
</p>
<div class='vspace'></div><ul><li>&lt;table&gt; is the name of the table that you want to populate with the data
</li><li>&lt;file&gt; is the path to the file that contains your csv data
</li><li>&lt;delimiter&gt; is the delimiter used in your csv file to separate the fields ( usually ',' or ';' )
</li></ul><p class='vspace'>The way you open a connection depends on what you are using : if you are using a gui ( such as pgAdmin ) you simply double click on the database that contains the table that you want to populate and then hit the SQL button in the toolbar. If you are using a console then you have to use pql command : 
</p><pre class='escaped'>
 psql -h &lt;servername&gt; -U &lt;username&gt; &lt;databasename&gt;
</pre>
<p class='vspace'>where 
</p>
<div class='vspace'></div><ul><li>&lt;servername&gt; is the name or ip address of the PostgreSQL server you are connecting to
</li><li>&lt;username&gt; is the username that you are using to connect
</li><li>&lt;databasename&gt; is the name of the database that contains the table you want to work on
</li></ul><div class='vspace'></div><h3>The not so obvious pattern : you are a regular user </h3>
<p>In this scenario you are connecting to the database via a user that has ( at least ) connect and insert privileges on the table that you want to populate. In this situation you cannot "simply" use the copy command telling postgres to get the data from a file because you need superuser privileges in order to import from a file . The work around here is to use stdin since everybody can use it !  This is going to limit the options a little but still ... 
Open a terminal and issue the commad : 
</p><pre class='escaped'>
cat &lt;filename&gt; | psql -U &lt;username&gt; -h &lt;servername&gt; &lt;database&gt; -c "copy &lt;table&gt; from stdin ;"
</pre>
<p>if you are on Windows system replace <em>cat</em> with <em>type</em>
</p>
<div class='vspace'></div><h3>Variation of the problem </h3>
<ul><li>The file contains different number of columns than the table does 
</li></ul><div class='vspace'></div><div class='indent'>Then you need to modify the copy command in order to specify the column names that you want to manipulate : 
</div><pre class='escaped'>
copy &lt;table&gt;(field1,field2, ..., fieldn) from ...
</pre>
<ul><li>The file contains headers : I don't want to import that too !
</li></ul><div class='indent'>Then you need to tell the copy command that the filed contains headers ! As simple as that : 
</div><pre class='escaped'>
copy &lt;table&gt; from [stdin|&lt;filename&gt;] with CSV HEADER;
</pre>
<ul><li>The file contains special characters : 
</li></ul><div class='indent'>You will have to identify the charset of the file and tell psql which charset to use when issuing the copy command;e.g. you are importing a file that has accents or umlauts (i assume you are already connected via psql) : 
</div><pre class='escaped'>
 \encoding ISO_8859_1  ;
 copy &lt;table&gt; from [stdin|&lt;filename&gt;] with CSV HEADER;  
</pre>
<p class='vspace'>If you want to deepen your knowledge of the powerful copy command here's the <a class='urllink' href='http://www.postgresql.org/docs/8.1/static/sql-copy.html' title='' rel='nofollow'>official documentation</a>
</p>
]]></description><dc:contributor>Marco Ferretti</dc:contributor>
</item>
<item>
<author></author>
<link>http://www.fermasoft.com/Blog/LibreOffice-Calc-collaborative-editing-prototype?when=2012-04-03T11:39:25Z</link>
<title>Blog / LibreOffice Calc collaborative editing prototype</title>
<dc:date>2012-04-02T19:51:00Z</dc:date>
<pubDate>Mon, 02 Apr 2012 19:51:00 GMT</pubDate>
<description><![CDATA[<p>The other day I came across this <a class='urllink' href='http://people.gnome.org/~michael/blog/2012-03-26-collaboration.html' title='' rel='nofollow'>this post</a> : it's a proof of concept of a real time collaborative spreadsheet that uses just open source technology. The idea is to make two spreadsheets talk to each other via telepathy protocol; this way  two or more person can work on the same spreadsheet and share the ongoing modification by only being on each other telepathy list.
</p>
<p class='vspace'><a class='urllink' href='https://www.youtube.com/watch?v=g7s1WBFSeXs&amp;feature=youtu.be' title='' rel='nofollow'>This video</a> shows the proof of concept in action.
</p>
<p class='vspace'>This proof-of-concept comes to you courtesy of Eike Rathke of Red Hat, Michael Meeks of SUSE, and Will Thompson of Collabora.
</p>
<p class='vspace'>What else can I say other than " looking forward to see it in action " on my box !
</p>
<div class='vspace'></div>
]]></description><dc:contributor>Marco Ferretti</dc:contributor>
</item>
<item>
<author>Marco Ferretti</author>
<link>http://www.fermasoft.com/Blog/Install-Mondrian-demo-on-linux-box?when=2012-03-30T06:19:17Z</link>
<title>Blog / Install Mondrian demo on linux box</title>
<dc:date>2012-03-28T08:12:00Z</dc:date>
<pubDate>Wed, 28 Mar 2012 08:12:00 GMT</pubDate>
<description><![CDATA[<p>Today we're talking about <a class='urllink' href='http://mondrian.pentaho.com/' title='' rel='nofollow'>Pentaho Mondrian</a> and how to deploy and create the demo suite on a linux box.
</p>
<p class='vspace'>I think the instructions I found online to be, at best, confusing. The best bet you have is going with the docs that come along the package ... but there are some mistakes there too .
</p>
<p class='vspace'>First things first .
I would suggest to download a separate tomcat instance for your tests then, when you're ready and satisfied with the configuration of your mondrian demo, deploy into your "production" tomcat/servlet container.
</p>
<p class='vspace'>For my tests and for the sake of these mini how-to, I have used <a class='urllink' href='https://tomcat.apache.org/download-60.cgi' title='' rel='nofollow'>tomcat 6</a>, <a class='urllink' href='http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html' title='' rel='nofollow'>Sun Jdk 6</a> and <a class='urllink' href='https://dev.mysql.com/downloads/mysql/' title='' rel='nofollow'>MySQL</a> ( installed using apt-get ).The other thing you need is the MySQL jdbc : download it and put it somewhere on your machine - I have a ~/libs/java dir where I store all my java libraries .
</p>
<p class='vspace'>Unzip and start tomcat and fire mysql; test that tomcat responds by looking at <a class='urllink' href='http://localhost:8080' title='' rel='nofollow'>http://localhost:8080</a> ( change the port if you modified the server configuration ) then  test that mysql is up and running by issuing <code class='escaped'> mysqlshow -u root mysql </code>.
Once you are sure you have everything installed, up and running you can <a class='urllink' href='http://sourceforge.net/projects/mondrian/files/mondrian/mondrian-3.3.0.14703/mondrian-3.3.0.14703.zip/download' title='' rel='nofollow'>download Mondrian</a> from SourceForge.
</p>
<p class='vspace'>Unzip your mondrian archive file somewhere. For my tests I used ~/devel/ETL. Wherever you unzipped your files you should have a tree that looks like this : 
</p>
<div class='vspace'></div><pre class='escaped'>
+-- demo
|   +-- access
+-- doc
|   +-- api
|   |   +-- mondrian
|   |       +-- calc
|   |       |   +-- impl
|   |       +-- gui
|   |       |   +-- validate
|   |       |       +-- impl
|   |       +-- i18n
|   |       +-- mdx
|   |       +-- olap
|   |       |   +-- fun
|   |       |   |   +-- extra
|   |       |   |   +-- vba
|   |       |   +-- type
|   |       +-- olap4j
|   |       +-- parser
|   |       +-- recorder
|   |       +-- resource
|   |       +-- rolap
|   |       |   +-- agg
|   |       |   +-- aggmatcher
|   |       |   +-- cache
|   |       |   +-- sql
|   |       +-- server
|   |       +-- spi
|   |       |   +-- impl
|   |       +-- test
|   |       |   +-- build
|   |       |   +-- clearview
|   |       |   +-- comp
|   |       |   +-- loader
|   |       +-- tui
|   |       +-- udf
|   |       +-- util
|   |       +-- web
|   |       |   +-- servlet
|   |       |   +-- taglib
|   |       +-- xmla
|   |           +-- impl
|   |           +-- test
|   +-- images
+-- lib
</pre>
<p>under the lib dir there's what you're looking for : mondrian.war.
Now, stop tomcat and unzip mondrian.war into &lt;TOMCAT_HOME&gt;/webapps . At this point you need to create the sample database for your mondrian installation. The Mondrian demo comes with a <strong>foodmart</strong> database ... in ACCESS ( OMG ! ) format. Thanks God they provided a plain SQL file that you can upload into your mysql ... not ! 
What they forgot to tell you is that : 
</p>
<div class='vspace'></div><ol><li>you have to create the schema yourself
</li><li>you have to create the user yourself
</li><li>the instructions don't work
</li></ol><p class='vspace'>Let's proceed : 
</p>
<p class='vspace'>open your mysql console ( as root ) and issue the following : 
</p>
<div class='vspace'></div><pre class='escaped'>
create database foodmart;
grant all privileges on foodmart.* to foodmart@localhost identified by 'foodmart';
</pre>
<p class='vspace'>the first line creates a schema 'foodmart', the second line creates a user 'foodmart' with password 'foodmart' that can do anything on the 'foodmart' schema when connecting from localhost.
</p>
<p class='vspace'>Now, exit the mysql root shell and test your new user : 
<code class='escaped'> mysql -u foodmart -p </code>
type 'foodmart' (or whatever password you chose) when promped and see if you can connect. If everything went fine you can now exit the console. 
</p>
<p class='vspace'>Now it's time to fill the demo database : go to &lt;TOMCAT_HOME&gt;/webapps/mondrian/WEB-INF and issue the command : 
</p><pre class='escaped'>
java -cp "./lib/mondrian.jar:./lib/olap4j.jar:./lib/log4j-1.2.8.jar:./lib/commons-logging-1.0.4.jar:./lib/eigenbase-xom.jar:./lib/eigenbase-resgen.jar:./lib/eigenbase-properties.jar:&lt;WHERE YOU HAVE UNZIPPED YOUR MYSQL JDBC&gt;/mysql-connector-java-3.1.14-bin.jar" mondrian.test.loader.MondrianFoodMartLoader -verbose -tables -data -indexes -jdbcDrivers=com.mysql.jdbc.Driver -inputFile=&lt;WHERE YOU HAVE UNZIPPED MONDRIAN&gt;/mondrian/demo/FoodMartCreateData.sql -outputJdbcURL="jdbc:mysql://localhost/foodmart?user=foodmart&amp;password=foodmart"
</pre>
<p class='vspace'>As I said before, I have my mysql jdbc library in ~/libs/java, change 
</p><pre class='escaped'>
&lt;WHERE YOU HAVE UNZIPPED YOUR MYSQL JDBC&gt;/mysql-connector-java-3.1.14-bin.jar
</pre> 
<p>into whatever suits your configuration. When you get the prompt again you're almost there : your database is created but you still need to configure your mondrian installation to use mysql ( by default it tries a jdbc/odbc bridge connection to the above mentioned Access database ) .
</p>
<p class='vspace'>Now, go to &lt;TOMCAT_HOME&gt;/mondrian/WEB-INF/ and change web.xml so that every instance of 
</p><pre class='escaped'>
&lt;param-value&gt;@mondrian.webapp.connectString@&lt;/param-value&gt;
</pre>
<p>is migrated to 
</p><pre class='escaped'>
&lt;param-value&gt;Provider=mondrian;Jdbc=jdbc:mysql://localhost/foodmart?user=foodmart&amp;#38;password=foodmart;Catalog=/WEB-INF/queries/FoodMart.xml;JdbcDrivers=com.mysql.jdbc.Driver;&lt;/param-value&gt;
</pre>
<p class='vspace'>Edit mondrian.properties ( same directory ) and change the variable mondrian.test.connectString
</p><pre class='escaped'>
mondrian.test.connectString=Provider=mondrian;Jdbc=jdbc:mysql://localhost/foodmart?user=foodmart&amp;password=foodmart;JdbcDrivers=com.mysql.jdbc.Driver;Catalog=/WEB-INF/queries/FoodMart.xml;
</pre>
<p class='vspace'>now you have to tell the same to the jsp pages : goto queries sub directory and change the following jsps :
</p>
<div class='vspace'></div><ol><li>arrows.jsp
</li><li>colors.jsp
</li><li>fourhier.jsp
</li><li>mondrian.jsp
</li></ol><p class='vspace'>so that the tag jp:mondrianQuery  looks like : 
</p>
<div class='vspace'></div><pre class='escaped'>
&lt;jp:mondrianQuery id="query01" jdbcDriver="com.mysql.jdbc.Driver" jdbcUrl="jdbc:mysql://localhost/foodmart?user=foodmart&amp;password=foodmart" catalogUri="/WEB-INF/queries/FoodMart.xml"&gt;   
</pre>
<p class='vspace'>now ... fire tomcat and open <a class='urllink' href='http://localhost:8080/mondrian' title='' rel='nofollow'>mondrian</a> demo page and enjoy !
</p>
<div class='vspace'></div><h2>the references</h2>
<div class='vspace'></div><ul><li>I found that the best bits of information for mondrian deployment are shipped together with the zip under &lt;WHERE YOU HAVE UNZIPPED&gt;/doc.
</li><li>In order to better understand what the <a class='urllink' href='http://jpivot.sourceforge.net/' title='' rel='nofollow'>jpivot</a> library ( shipped together with the mondrian demo ) was doing I found <a class='urllink' href='http://etl-tools.info/en/pentaho/jpivot-crosstab.htm' title='' rel='nofollow'>this page</a> from <a class='urllink' href='http://etl-tools.info/en/pentaho/jpivot-crosstab.htm' title='' rel='nofollow'>ETL-Tools.Info</a> as being of great use
</li></ul><p class='vspace'>Said that : happy cubing ! 
</p>
]]></description><dc:contributor>Marco Ferretti</dc:contributor>
</item>
<item>
<author>Marco Ferretti</author>
<link>http://www.fermasoft.com/Blog/A-new-eye-on-Einstein?when=2012-03-22T08:26:11Z</link>
<title>Blog / A new eye on Einstein ?</title>
<dc:date>2012-03-22T07:46:00Z</dc:date>
<pubDate>Thu, 22 Mar 2012 07:46:00 GMT</pubDate>
<description><![CDATA[<div><span class='lfloat'> <img src='http://new.alberteinstein.info/e-inside_files/pagein-but0_on.jpg' alt='' title='' /></span></div>
<p>The Hebrew University of Jerusalem has released 80,000 ( yes, you read correctly ) Einstein's scanned documents and made them searchable in the <a class='urllink' href='http://new.alberteinstein.info/database.html' title='' rel='nofollow'>Einstein Archive online</a> website they launched. 
</p>
<p class='vspace'>Don't hold your breath : it's not a collection of unpublished scientific work rather, quoting the site, a collection of <em>an Autograph, Calculation, Transcript or one of many other document types</em>. In other words you can find postcards or letters that have nothing to do with the scientist's work together with proper scientific work ( sorry for the horrible english :) )
</p>
]]></description><dc:contributor>Marco Ferretti</dc:contributor>
</item>
<item>
<author></author>
<link>http://www.fermasoft.com/Blog/A-Temporary-Form-Of-Democratic-Surplus?when=2012-03-16T08:45:46Z</link>
<title>Blog / A Temporary Form Of Democratic Surplus</title>
<dc:date>2012-03-16T08:00:00Z</dc:date>
<pubDate>Fri, 16 Mar 2012 08:00:00 GMT</pubDate>
<description><![CDATA[<p>I do not usually blog about this matters but this is something I care about. Two weeks ago ( March 1st ) there was an important vote in the  Legal Affairs committee (JURI) of the EU parliament : the weakening of a copyright law . 
</p>
<div class='vspace'></div><h3>Preamble .</h3>
<p>When a work has gone orphan, it means that it is effectively lost until the copyright monopoly expires, 70 years after the creator’s death. You can only hope that somebody has kept a copy illegally and copied it across new forms of storage media as they go in and out of fashion as the decades come and go, or it will be lost forever. 
</p>
<div class='vspace'></div><h3>What they claimed it happened</h3>
<p>in the JURI commetee is, quoting MEP Engström’s assistant - Henrik Alexandersson, “a temporary form of democratic surplus”.
You have to understand that the JURI commetee <em>has the responsibility of safeguarding the integrity and trustworthiness of the legal framework as a whole in Europe</em>. Are you still with me ? Ok. <strong>That committee counts 24 individual votes</strong>. This particular reform was rejected counting <strong>12 votes for reform and 14 against</strong> . Yes, that counts 26. If you also note that there was a person not voting you understand that if there were 12 votes for reform there must have been 11 against it and the reform should have passed. 
The other fantastic thing that is claimed to have happend two weeks ago was that, unfortunately, when this was done, along with formally requesting a re-vote, that re-vote was denied.
</p>
<div class='vspace'></div><h3>Conclusion</h3>
<p>What can I say ? I have checked out <a class='urllink' href='http://www.europarl.europa.eu/meetdocs/2009_2014/organes/juri/juri_20120301_0900.htm' title='' rel='nofollow'>the minutes and the docs about that meeting</a> on the EU website and honestly did not find anything, BUT <a class='urllink' href='http://falkvinge.net/2012/03/14/european-parliament-blocks-copyright-reform-with-113-voter-turnout/' title='' rel='nofollow'>according to Rick Falkvinge</a> there are eye witnesses : you might put enough pressure on him and they might come out in the open. 
</p>
<p class='vspace'><strong>IMHO</strong> : I can't honestly believe that something like that can happen ( I refer to the denial of a re-vote ) in a democracy. Someone might argue that we may not be in a democracy but have the illusion of it .
The point is that <strong>YOU</strong> have to commit : follow what's going on. Ask your representatives to share documents, minutes and everything that can possibly help you make up your own opinion.; put pressure  on your members of the parliament, let your voice be heard : it doesn't matter if we don't agree, just don't stay silent.
</p>
<p class='vspace'>my own 2 c.
</p>
]]></description></item>
<item>
<author>Marco Ferretti</author>
<link>http://www.fermasoft.com/Blog/Linux-backup?when=2012-03-15T14:08:10Z</link>
<title>Blog / Linux backup</title>
<dc:date>2012-03-09T08:12:00Z</dc:date>
<pubDate>Fri, 09 Mar 2012 08:12:00 GMT</pubDate>
<description><![CDATA[<p class='vspace'>Today I would like to share an old backup script that has been serving me for three years. It is not entirely the product of my brain : I have modified a script that I found on the internet that was created back in the year 2000.
</p>
<p class='vspace'>The script is pretty well commented and self explanatory : it creates a full backup on Sundays and an incremental backup the other days. Every beginning of month it creates a full backup. 
</p>
<div class='vspace'></div><pre class='escaped'>
#!/bin/bash
# full and incremental backup script
# created 07 February 2000
# Based on a script by Daniel O'Callaghan &lt;danny@freebsd.org&gt;
# and modified by Gerhard Mourani &lt;gmourani@videotron.ca&gt;
# modified by Marco Ferretti &lt;marco.ferretti@gmail.com&gt; on 16 Aug 2008

#Change the 5 variables below to fit your computer/backup

#COMPUTER=server				                                                                # name of this computer
PROJECTS="/home/marco/Projects/Workspaces /home/marco/Projects/Nitro /home/marco/Projects/Readytec"             # projects directory
CVS="/home/marco/dev /home/cvs"                                                                                 # CVS directory
DOCUMENTS="/etc /home/marco/Documents"                                                                          # documents directory
MAIL="/home/marco/.mozilla-thunderbird"				                                                # email
USERS="/home/bruno "                           	                                                                # users to fully backup
DIRECTORIES="$DOCUMENTS $USERS $PROJECTS $MAIL $CVS"                                                            # directoris that will be passed to tar
BACKUPDIR=/media/backup-disk/backup/archives	                                                                # where to store the backups
TIMEDIR=/media/backup-disk/backup/log		                                                                # where to store time of full backup
TMPFILE=/tmp/backup.local.tmp
TAR=/bin/tar					                                                                # name and locaction of tar
LOGFILE=/media/backup-disk/backup/log/backup.log                                                                # log file 

#You should not have to change anything below here
PATH=/usr/local/bin:/usr/bin:/bin
DOW=`date +%a`              		                                                                        # Day of the week e.g. Mon
DOM=`date +%d`              		                                                                        # Date of the Month e.g. 27
DM=`date +%d%b`             		                                                                        # Date and Month e.g. 27Sep

# On the 1st of the month a permanet full backup is made
# Every Sunday a full backup is made - overwriting last Sundays backup
# The rest of the time an incremental backup is made. Each incremental
# backup overwrites last weeks incremental backup of the same name.
#
# if NEWER = "", then tar backs up all files in the directories
# otherwise it backs up files newer than the NEWER date. NEWER
# gets it date from the file written every Sunday.


echo "`date` Starting backup backup script" &gt; $LOGFILE

# Monthly full backup
if [ $DOM = "01" ]; then
	echo "`date +%d-%b-%y` Starting montly full backup" &gt;&gt; $LOGFILE
        NEWER=""
#        $TAR $NEWER -cfj $BACKUPDIR/$COMPUTER-$DM.tar.bz2 $DIRECTORIES
#	$TAR $NEWER -cjf $TMPFILE $DIRECTORIES
#Version that creates one big file
#        $TAR $NEWER -cjf $BACKUPDIR/monthly/$DM-full.tar.bz2 $DIRECTORIES 
#Version that splits the file in 4Gb parts (DVD burn ready
	$TAR $NEWER cjf - $DIRECTORIES | split --bytes=4G -d - $BACKUPDIR/monthly/$DM-full.tar.bz2_
        #Remove the big file ...
	rm BACKUPDIR/monthly/$DM-full.tar.bz2
#	cp $TMPFILE $BACKUPDIR/monthly/$DM-full.tar.bz2
fi

# Weekly full backup
if [ $DOW = "Sun" ]; then
	echo "`date +%d-%b-%y` Starting weekly full backup" &gt;&gt; $LOGFILE
        NEWER=""
        NOW=`date +%d-%b`

        # Update full backup date
#        echo $NOW &gt; $TIMEDIR/$COMPUTER-full-date
#        $TAR $NEWER -cjf $BACKUPDIR/$COMPUTER-$DOW.tar $DIRECTORIES
        echo $NOW &gt; $TIMEDIR/full-date
        $TAR $NEWER -cjf $BACKUPDIR/weekly/$DOW-full.tar.bz2 $DIRECTORIES
#        $TAR $NEWER -cjf $TMPFILE $DIRECTORIES        
#	cp $TMPFILE $BACKUPDIR/weekly/$DOW-full.tar.bz2        

# Make incremental backup - overwrite last weeks
else
        # Get date of last full backup
#        NEWER="--newer `cat $TIMEDIR/$COMPUTER-full-date`"
#        $TAR $NEWER -cf $BACKUPDIR/$COMPUTER-$DOW.tar $DIRECTORIES
	echo "`date +%d-%b-%y` Starting incremental backup" &gt;&gt; $LOGFILE
        NEWER="--newer `cat $TIMEDIR/full-date`"
        $TAR $NEWER -cjf $BACKUPDIR/weekly/$DOW.tar.bz2 $DIRECTORIES
#        $TAR $NEWER -cjf $TMPFILE $DIRECTORIES        
#	cp $TMPFILE $BACKUPDIR/weekly/$DOW.tar.bz2                
fi
echo "`date` end of backup backup script" &gt;&gt; $LOGFILE
</pre> 
]]></description></item>
<item>
<author>Marco Ferretti</author>
<link>http://www.fermasoft.com/Blog/Ubuntu-s-upgrade-of-tomcat-breaks-your-configuration?when=2012-02-22T10:27:33Z</link>
<title>Blog / Ubuntu's upgrade of tomcat breaks your configuration !!!</title>
<dc:date>2012-02-22T10:02:00Z</dc:date>
<pubDate>Wed, 22 Feb 2012 10:02:00 GMT</pubDate>
<description><![CDATA[<p>Ubuntu has recently released an upgrade for tomcat 6. If you have installed webapps that need a particular configuration of heap or permjam or any parameter that you want to pass to catalina engine... well you'll have to rewrite your config since catalina.sh and your setenv.sh in /usr/share/tomcat6/bin are going to be overwritten.
</p>
<p class='vspace'>If you have, for example, <a class='wikilink' href='http://www.fermasoft.com/HowTo/Liferay523OnUbuntuDebian'>installed liferay</a> and upgraded it to version 6.0.6 you are likely to have problems my frieds; it took me a whole day to understand what was going ( literally ) tits-up in my server since i noticed an exception in liferay that I thought I already had fixed with the use of portal-legacy-5.2.properties. 
</p>
<p class='vspace'>Said that I would like to thank the guys at Debian and at Ubuntu for their great job ... and I can't help but ask them to pay a little more attention when they release upgrades that impact server releases of their stuff. 
</p>
<p class='vspace'>hope this helps someone out there
</p>
]]></description><dc:contributor>Marco Ferretti</dc:contributor>
</item>
</channel>
</rss>

