Saturday, December 4, 2010

Video of my AnkiDroid presentation at Roppongi Hills

Here is a video of my recent speech in Roppongi Hills about AnkiDroid. About 200 people attended, including a Japanese company who is considering reusing the code as a part of their educational offering. I licensed the slides under a Creative-Commons-Share-Alike license, so feel free to reuse or modify them and speak about AnkiDroid at other events!

Tuesday, November 16, 2010

Aggregation for Pentaho/InfoBright

Infobright is a column-oriented database, so it is efficient for Business Intelligence (InfiniDB is worth checking too). But my current BI project has 24 dimensions so I also needed aggregates to reach a good level of performance.

Infobright is usually more or less supported by most of the Pentaho suite, but sure not by the Aggregation Designer. I must be one of the first persons who tried, I have found many bugs and workarounds. It was a tough ride, but finally I have found a way to make it work, so here it is!

1) Open PAD and design your aggregate the usual way. Ignore the primary key errors.
2) When you're done, in "Export and Publish", execute the DDL.
3) Try executing the DML, but chances are it will fail. This is probably because Infobright does not support INSERT well.
4) So instead, click on "Preview" and copy-paste the DML SQL code.
5) Open PDI and create a "Table Input" step with the copied SQL's select-from-groupby portion.
6) Connect it to an Infobright Loader step that will write the data into the table created by the DDL.
7) Run the transformation. You can use cron and pan.sh to run it automatically every night.
8) Back to PAD's "Export and Publish", you would normally publish your updated schema, but it results in a NullPointerException.
9) So, export your updated schema
10) Open it with Schema Workbench, ignore the primary key errors, and publish from there.
11) That's all!

Tested with: pad-ce-1.2.1.RC1 biserver-ce-3.7.0.RC1 pdi-ce-4.1.0-RC1 infobright-3.4.2-0

Friday, November 5, 2010

Automatic report generation now possible in Pentaho Data Integration

Last Friday, Pentaho Data Integration (PDI) developer Matt Casters posted a preview of a new tool that allows Business Intelligence designers to include report generation (PRD) as a step of PDI. This is extremely useful, because the obvious step after ETL is often to generate reports.

Let's say a retail chain wants to send, everyday, to every shop manager, a report detailing this shop's performance and trends.
Imagine you have a data warehouse that contains all sales records, and a PRD report template. Then here is how to create a system that will automatically generate and send the reports everyday:
  1. Install the bleeding-edge PDI 4.1.0 RC1
  2. Add Matt's plugin as explained here
  3. Open PDI "Spoon" and create a new Transformation
  4. First, create a "Table Input" step to get for each shop it's code, name and email address.
  5. Second, create a minimal JavaScript step to compute the output's filename and set the PRPT file's name.
  6. Third, use the new "Pentaho Reporting step", and configure it to use your freshly computed PRPT and output filenames, as well as the shop codes.
  7. Finally, create an "Send mail" step and set it to use each shop's email address, putting the generated report as an attachment.
  8. Save and configure your cron to launch this transformation every night via the pan.sh command-line tool.

Tuesday, October 12, 2010

Presentation about AnkiDroid in Roppongi Hills

I will give a presentation at Hills Breakfast on Friday 10/22, 7h45, in Mori Tower, just at the left of the Goldman Sachs entrance.
I will be speaking about AnkiDroid and Open Source in general.

Last month's presenters were the Director of the Mori Art Museum and two Google managers.
My friend Yuko Mizutani of Mori Building Co. is organizing the event and invited me to give a talk. I first thought I would talk about ECM, but she figured out it would sound too much like an advertisement for my company, so I will be advertising Open Source instead!

Tuesday, August 17, 2010

Released AnkiDroid 0.4.1

I just released AnkiDroid 0.4.1, result of the collaboration of about 8 developers and tens of other contributors!

AnkiDroid will always be open source, but it is starting to get attention from companies as well: a Chinese company contributed the Simplified Chinese user interface. This version brings in a lot of new features:

First, the user interface has been translated by volunteers in 13 languages:
- Portuguese
- Swedish
- Romanian
- French
- Spanish
- Italian
- Simplified Chinese
- Traditional Chinese
- Catalan
- Russian
- Polish
- Greek
- German

Second, you can now download decks that have been made by other people. Hundreds of good-quality decks are available in a multitude of topics: sciences, law, languages, medicine, etc.

And lots of other improvements!
In Google's Android Market, search for "Anki".

Monday, July 12, 2010

Business Intelligence with Pentaho

Today I started a new BI (Business Intelligence) project, it had been a long time. It is my first time using Pentaho, an open source BI suite. Pentaho's website is a bit confusing about the various programs and their goals, so I lost some time trying to figure out before I found this nice guide. It explains how the BI server and the design tools work together, and how to use them. Also, Prashant Raju has a great guide that shows how to replace Pentaho's default HSQL database with a more powerful database such as MySQL or PostgreSQL. Infobright looks even more promising.

In other news, I just had a meeting with Liferay's CEO Bryan Cheung to talk about our strategy to make Liferay a success in Japan, and about Thursday's seminar, to which you are all welcome!

Friday, July 2, 2010

Organizing a Liferay seminar

We are organizing a seminar about Liferay, the open source Enterprise portal software described as visionary by Gartner. Liferay Portal powers large companies' public-facing websites with advanced content management features. Behind the scene, Liferay offers companies a "social office" where employees can collaborate efficiently.

Liferay's CEO Bryan Cheung will introduce Liferay, present the roadmap, in particular for the Japanese market.
Aegif recently became the first Liferay Service Partner in Japan.

The seminar will take place at Roppongi Hills, 49th floor, on July 15th 2pm. Free entrance. More info here.

Tuesday, June 22, 2010

Just released the first integration-oriented CMIS explorer webapp

In a lot of ECM projects, employees who are not back-office-power-users are offered a simple web-based interface to browse a portion of the documents.
Sometimes, clients are offered another web-based interface to check their bills, read their contracts or other papers.

Just released as open source by Aegif (Japan), Struts2CmisExplorer is a new way to build those kinds of web interfaces. It is a CMIS explorer application that focuses on simplicity. This means you can very easily get it running, and modify it to fit your extra requirements, or integrate it into your existing portal.

It should work with all CMIS servers (Documentum, Nuxeo, Open Text, FileNet, etc), for instance here is how to get it up and running on Alfresco:

1) Install Alfresco 3.3 (Community or Enterprise). Check that it is running well at http://localhost:8080/alfresco

2) Download Struts2CmisExplorer and put it in Alfresco's tomcat/webapps directory.

3) That's all! Use it at http://localhost:8080/Struts2CmisExplorer_0.1

Struts2CmisExplorer is not intended to be a full-featured explorer, instead it targets the usual need for a simple web-based documents access. The goal is reusability/ease of integration. Struts2CmisExplorer does not rely a particular framework, dependencies are kept to a minimum (Struts2 and OpenCMIS), which means you can easily integrate it in any IoC framework you might want.

More on Struts2CmisExplorer.

Wednesday, June 9, 2010

CMIS has been approved

CMIS has recently been accepted as a standard, so it is time to get some experience with it! Actually my company just delivered its first CMIS-based solution yesterday.

CMIS means "Content Management Interoperability Services". It is a protocol to access ECM (Enterprise Content Management) repositories. Why did I choose to use CMIS instead of JCR or WebDAV? Because CMIS better targets the needs of ECM projects, it is actually the first protocol designed for Document Management, with interoperability being one of the main goals. CMIS is a joint effort between IBM, Microsoft, Alfresco, EMC, Open Text, SAP, Oracle, Adobe, Nuxeo and others.

Some client implementations already exist in beta versions, but their documentation is still very scarce. I chose OpenCMIS as a client library. Other solutions could have been chemistry-abdera, which is not as active, or using CMIS as Web Service or REST directly, which would have taken a lot of time.

Like for other CMIS implementations, OpenCMIS documentation is still scarce (I actually contributed a good portion of it). So I will explain how to get started with CMIS in the small OpenCMIS tutorial below, hope this helps someone. For the example, I will explain how to access Alfresco from an OpenCMIS client.

Using OpenCMIS to access an Alfresco repository

OpenCMIS has not been released yet, so you will have to compile it from source. Install subversion and maven if you don't already have them. Then get the source:
svn checkout https://svn.apache.org/repos/asf/incubator/chemistry/opencmis/trunk

... and compile it (in the root directory):
mvn clean install

This will create a bunch of JAR libraries, in particular those we need:
  • chemistry-opencmis-client-api-0.1-incubating-SNAPSHOT.jar
  • chemistry-opencmis-client-impl-0.1-incubating-SNAPSHOT.jar
  • chemistry-opencmis-client-bindings-0.1-incubating-SNAPSHOT.jar
  • chemistry-opencmis-commons-api-0.1-incubating-SNAPSHOT.jar
  • chemistry-opencmis-commons-impl-0.1-incubating-SNAPSHOT.jar
If you don't have an Alfresco server ready, install Alfresco Community (version 3.3 or later) and start it.

Download my small Java demo file and edit the URL, user, password to match your environment.

Then compile with the libraries, run, and the content of your repository should appear :-)
That's it! To start doing actually useful things, check the OpenCMIS cookbook.

Saturday, March 13, 2010

My contribution to IEEE's Pervasive Computing


QR codes are big in Japan. Actually, last year I spotted one in Shibuya that is wider than most flats in Tokyo. I took a picture.

Incidentally, the IEEE is publishing an article on QR codes in this month's Pervasive Computing magazine. If you buy it, you will see "Courtesy of Nicolas Raoul" under the first picture of the article :-)

"Pervasive computing" is a synonym of ubiquitous computing, the science of ultra-close human-machine interaction. As the article points out, QR codes are not widely used outside of Asia. But I think they will eventually become popular in the whole world. Recent Android phones are natively able to read QR codes!