I recently received my pre-ordered copy of Pentaho Solutions:  Business Intelligence and Data Warehousing with Pentaho and MySQL (linky (amazon.com)) and felt it needed to be the first official BlueFireDS Book Review.  It is the first resource available from a third-party about the excellent BI suite Pentaho (pentaho.com).  If you have not worked with Pentaho before and are interested in BI or wanting to find a way to set up a BI system give it a look see.  I have worked with the Pentaho suite since version 1.6 and the project has evolved leaps and bounds through to the most recent version 3.5.

By far my largest quips with Pentaho was the lack of good third-party documentation, which I feel Pentaho Solutions fills in nicely.  Not only does the book give a thorough overview of Pentaho (from installation/setup to how to use the various components of the suite), it also is a great introduction into the BI field, with an overview on building and maintaining data warehouses.

Though I consider this a must-buy for anyone who works with Pentaho or any of the various tools that make up the full BI suite (including some very nice data tools outside of the suite  like DataCleaner and Power*Architect), there are a few quips that I must point out.  First, the code that is provided on the book’s page over at Wiley (see below for link) does not match sometimes with the descriptions in the book, or does not run outright when trying to setup the provided source system and data warehouse databases.  Reading through the code, I discovered that the databases and the correct permissions just needed to be created/setup for the databases to be setup.  Also, with some of the transformations used with the Pentaho Data Integrator (formerly known as Kettle) either had extra steps or fields that caused a small bit of confusion.

To be honest, these quips are typical with technical books mainly because of the way publishing cycles work.  They are easy to overlook considering the vast area covered by the text as well as how much the reader is able to get out of it.  Pentaho Solutions is definitely one of those resources I’ll be keeping close at hand for months to come.

By the way Roland and Jos, if either of you happen to read this, I’m looking forward to seeing if this will turn into a nice series of references.  It definitely has potential!

For completeness’ sake, here’s the table of contents, from the publisher’s site:

Introduction.

Part I Getting Started with Pentaho.

Chapter 1 Quick Start: Pentaho Examples.

Chapter 2 Prerequisites.

Chapter 3 Server Installation and Configuration.

Chapter 4 The Pentaho BI Stack.

Part II Dimensional Modeling and Data Warehouse Design.

Chapter 5 Example Business Case: World Class Movies.

Chapter 6 Data Warehouse Primer.

Chapter 7 Modeling the Business Using Star Schemas.

Chapter 8 The Data Mart Design Process.

Part III ETL and Data Integration.

Chapter 9 Pentaho Data Integration Primer.

Chapter 10 Designing Pentaho Data Integration Solutions.

Chapter 11 Deploying Pentaho Data Integration Solutions.

Part IV Business Intelligence Applications.

Chapter 12 The Metadata Layer.

Chapter 13 Using The Pentaho Reporting Tools.

Chapter 14 Scheduling, Subscription, and Bursting.

Chapter 15 OLAP Solutions Using Pentaho Analysis Services.

Chapter 16 Data Mining with Weka.

Chapter 17 Building Dashboards.

Index.

digg del.icio.us TRACK TOP

So recently I posted about how symfony has made the move to officially support Doctrine as the default ORM in future releases of my favorite PHP framework.  A lot of questions were raised, mainly because even though Propel is still going to be supported by symfony, it looked like Propel was dead in the water with not much active development taking place.

Interestingly enough, when I happened to look on the Propel website, I noticed a Propel version 1.4 and that got me wondering.  After some hunting, it turns out a blast from symfony’s past is now heading the development of the project.  That’s right folks, Francois Zaninotto is now working on revamping Propel (see here (groups.google.com) for more details).

I’m glad to see that a good ORM is getting someone with a lot of good ideas leading the forefront.  I’m very interested in seeing what will be coming out of the gate with the revamped version 2.0.

digg del.icio.us TRACK TOP

Well, as posted yesterday on the symfony blog Doctrine will now be the defacto standard for symfony’s ORM. To be honest, I’m not surprised at all with this move – it makes sense seeing that the Doctrine team are on board at Sensio. Sensio Labs was looking for something that fit with their overall strategy from what I’ve read on the forums and on the blog, so by hiring the Doctrine team they can now help shape the ORM to work well with the rest of the framework.

Not to worry Propel fans – Propel is still able to be used, it’ll just take a bit more configuring on the developer’s part. The thing I’m concerned about is what’s going to happen with all those plugins that are Propel only? I have a feeling that Propel will eventually be phased out a little at a time as Doctrine begins to overtake it’s capabilities.

Looks like I’ll be hitting the books again….

Sensio Labs has also gone in the book publishing business by the way, with the standard books that were already available from Lulu.com now for sale at other book sites (Amazon.com) and the new Doctrine documentation both on the doctrine site and available in dead tree format.

digg del.icio.us TRACK TOP

I’m noticing that quite a few folks are posting about how MySQL is going to die a slow and painful death now that Sun has been purchased by Oracle.  As I commented on one site – I have to politely disagree.  The MySQL franchise may very well go away or be rebranded (which I think would be a dumb move on Oracle’s part, given the large community, and significant market share that MySQL has), but the code itself won’t be able to be locked away, at least in the most current form.

Already there are two main forks of the MySQL server:

  • Drizzle – which is focused on cloud computing and web based applications
  • MariaDB – which is the MySQL server code upgraded with the Maria storage engine, headed by Monty.

Now having forks can cause significant rifts within any Open Source project’s community, but on the bright side no matter what happens with Oracle, the MySQL community does have alternatives that are in some way compatible.  The same goes for many of the other projects that Sun has worked on and has been open-sourcing, most likely in preparation of being bought out.

I’m cautiously optimistic that Oracle won’t do anything too rash to the Sun/primary MySQL iteration and will work work to strengthening the ties to the MySQL community.

digg del.icio.us TRACK TOP

Site Cleanup/Upgrade

By Alex | Filed in Uncategorized | No comments yet.

My apologies for being away – things have been rather hectic.

Anyway, today marks a new evolution to the site. I’ve cleaned up the site and now have set up the capability to show code, which has been one of the things keeping me from posting. Now that that is set up, I’ll be catching up on all the partial posts I’ve been saving in draft and releasing them next week. I’ll be starting with some MySQL posts and then coving some stuff with Symfony.

digg del.icio.us TRACK TOP

Fun with Webinars

By Alex | Filed in Uncategorized | No comments yet.

So today marked the culimnation of my first webinar production experience.  Over a week of preping off and on for a 45 minute conference (of which my part was about 15 mintues) sure made for a fun time.  I haven’t listened to the recording yet, however I think it went well overall.  Now if only there had been a little more participant feedback along with a couple of practice runs, I think it would have been near perfect, as far as presentations go.

Anywho, I’ll take today’s experience to heart when I start making some podcasts for the site ^^v

Tags:
digg del.icio.us TRACK TOP

So I’ve been playing around with a few new recommended programs I’ve found through lifehacker (two of my current favorites are RocketDock and Emerge Desktop ), but I hadn’t given Dropbox a shot until this morning, and boy I wish I had of started using it sooner.

You see, DropBox is a cross-OS app (it works on Mac, Windows, and even Linux) that allows for file synching with a web-based storage host.  Currently you can only sign up for the 2GB free account, but there will soon be options for subscribing to larger storage amounts.  When you install the app and create your account, Dropbox integrates into your computer’s file system, which keeps synched up with the web-hosting as long as there is a network connection.  Whenever a change is made to a file, any other PC connected to that file will be alerted to the update.  What’s even more fun, you can share files with a development team or family members, for example.  Think of this as a very simplified version of SVN, with some basic change control.

Anywho, give it a shot and see what you think.  I know I won’t be using my USB sticks as much as I used to lol.

digg del.icio.us TRACK TOP

Just wanted to make a quick post about some recent work I’ve been doing with the end goal being my first plugin for symfony.  A customer recently requested an event calendar for their site, so I figured what better way to build one that with symfony?  Currently, the calendar has a month view.  I’m working now on integrating the events into the calendar.  Once that has been accomplished, I’ll release the first beta.

My ultimate goal for the plugin is to have a daily, weekly, monthly, and yearly views with events viewed based off of user security level (which I am using the sfGuardPlugin for user security).  I have been working off and on for the last week or so to get the calendar into shape.

Once I get the event system integrated, I’ll post some pics.

In other news, I’ve been working on various tutorials that I really need to finish up.  I’ll try to have one out on symfony AJAX integrations soon.

digg del.icio.us TRACK TOP

Had the roughest time getting this one going – so therefore I’m posting just in case anyone else gets stuck.

Today, I started adding user security to the training database I’ve been developing in Symfony 1.1.  One of the great things about a strong framework like Symfony is the ability to create/distribute plugins to increase the core framework’s functionality.  A very popular plugin, that I decided to use for my project, is sfGuardPlugin.  This plugin handles security with groups and a bunch of other features that I haven’t played with yet.

There’s a real good instruction set for installation/configuration with the plugin.  However, one thing not mentioned in the instructions is the fact that you have to update your schema.xml file.  Otherwise, propel will throw this nice error:

No package found for database “propel” in schema.xml.  The propel.packageObjectModel property requires the package attribute to be set for each database.

So you’ll need to update your schema file from this:

<?xml version=”1.0″ encoding=”utf-8″?>
<database name=”propel” defaultIdMethod=”native” noxsd=”true”>

to this:

<?xml version=”1.0″ encoding=”utf-8″?>
<database name=”propel” defaultIdMethod=”native” noxsd=”true” package=”lib.model”>

The reason why is due to when a plugin has a schema of it’s own.  Symfony/Propel will attempt to merge the plugin schema with your application schema.  Your application schema though is not initially setup to handle this kind of merger.  Adding that one variable should take care of that!

Edit:  I originally had the change to be:

package=”model”

This was incorrect and will result in your forms and models being stored in the primay folder for your symfony project – which will result in you wondering what the hell happened (as has been my problem for the last two days =S).

Update

So, have you been having the interesting problem of your schema not updating your schema.sql file, like I have?  Well, I found out why just now.  Due to the added line in your schema.xml file, a lib.model.schema.sql file is created.  When I deleted the schema.sql file and renamed the lib.model.schema.sql to schema.sql, the database updated properly.

digg del.icio.us TRACK TOP

So at work I have been developing my symfony skills by rebuilding some of the database systems I’ve worked on in the past (first up:  update the Training Database….).  I know that with symfony 1.2, javascript will be uncoupled from the framework to allow for each developer to work with their favorite javascript framework (jQuery here =p) instead of being forced into Prototype/script.aculo.us helpers.

I’m excited to see what javascript development this will bring in with seperate plugins for each of the major javascript frameworks – with this making the symfony project even stronger than before.

What does this all mean for BlueFire?  Well, for starters I’m changing direction with the example software for the site and working with symfony as the primary framework for my projects.  Look out for some samples up in the coming weeks =D

digg del.icio.us TRACK TOP