Unknown's avatar

About Stephane Daury

Enjoyer of life; software developer. See https://stephdau.me and https://tekartist.org

/me Like PostgreSQL

PosgtresSQL ElephantI’ve recently had to take over the role of DBA at work (our previous one left for a job at Google), and I’m trying to make the most of the situation (still have my job to do too) by restructuring the PostgreSQL-powered database at the core of our Web architecture.

Like so many enterprise projects, it’s grown exponentially, in both size and complexity, over the years and what I’m left in charge of today is less then ideal. Nonetheless it’s been serving us quasi-flawlessly, and I sure am happy my predecessor(s) made the choice to go with PostgreSQL as a database backend. The use of PostgreSQL in an enterprise environment was actually one of the reasons I started working at McGill, back in 2002.

What I’m doing these days involves modernizing and sanitizing a considerable number of tables, stored procedures and functions. All while staying fully backward compatible so that the countless pieces of software relying on the data can keep on running as if nothing changed. I’m of course modernizing the codebase I have access to so it all takes advantage of the improved data structure. But for the sake of phasing in the upgrade and to not force it on external developers whose schedule I have no control over, replicating the current base is a of the essence.

This is all proving to be a task our faithful PostgreSQL environment is truly shining at.

Through the use of temporary tables from queries, case-based views, rules and other assorted options, I am rather quickly and easily able to author scripts that handle the nasty stuff, all wrapped in the safety transactional DBs afford us. They create new tables, populate them from others, tweak the data, drop the old tables once ported, setup views to replace them just-in-time and more, all transparently.

All of this is of course also possible with many other RDBMS. I’m just dealing with PostgreSQL in this instance, and enjoying (almost) every minute of it! :)

Integrating the Upgraded Digg Tools in Blogger

Digg.com released a worthy upgrade to their site integration tools today, with such neat new features as combining the submission process and Digg box, etc. Since I have previously published a method of integrating the first incarnation of the Digg tools in your [new] Blogger posts, it is now time to post an update to take the new features in consideration.

Before you start, make sure that your blog is set to save post pages. This is a Digg (and other social sites) requirement, since we need unique URLs to submit. To verify, go to your Blogger Dashboard » Settings » Archiving » Enable Post Pages? Select yes and save.

Then go to your Blogger Dashboard » Layout » Edit HTML. Be sure to check the Expand Widget Templates checkbox.

Locate the following code in the template’s XML:

<p><data:post.body/></p>

And replace it with:

<p>
  <span style="margin-right: 10px; float: left;">
    <script>
      digg_url = '<data:post.url/>';
    </script>
    <script src="http://digg.com/tools/diggthis.js"> </script>
  </span>
  <data:post.body/>
</p>

You’re done! It’s now as simple as this.

You can also try the new, more discreet, compact mode:

<p>
  <data:post.body/>
  <span style="margin-top: 5px; float: right;">
    <script>
      digg_url = '<data:post.url/>';
      digg_skin = 'compact';
    </script>
    <script src="http://digg.com/tools/diggthis.js"> </script>
  </span>
</p>

Personally though, I’m not too keen on displaying Digg boxes showing 0 diggs when the content has not been submitted yet, nor am I interested in showing the digg box on all my posts. So I’m still going to use my original solution and just update the URL of the Digg javascript from /api/ to /tools/ in my template. Overall, it is a more involved option, but I’d rather have flexibility than ease of use.

Ultimately, I’d like to see another mode (digg_skin variable) where unsubmitted content sports a simple button (like the Digg Guy), and the box only starts to show if and after the content has been submitted.

As a side note, it’s probably going to get fixed quickly, but the compact mode of the new tool had a bug with url targeting that made the submit form show in the tiny iframe the Digg javascript outputs.

Update: 2007-07-26: Updated formatting after import from Blogger.com.

Turning 32

Well, today’s that day when I gain an extra year. It always amazes me how much revolves around our age, and how suggestive the latter is. I’m an old fart for some, yet still a youngster for others. But who sees us as which and when is what usually matters most.

On a far less pseudo-existential note, kudos to my 7 year old on his first in-match hockey goal (1st season). :)

Up to my Elbows in Enterprise Search

Sorry about the lack of updates, but I’m smack in the middle of a huge project rethink at work, and it’s eating up all my time. I’ve been at it for two weeks, and I’m now hitting a point where I’m satisfied with the direction the project is heading. I reached the point where I’m having fun with it. :)

I’ll have more time once this is behind us, which I’m glad to say is coming soon!

Mona Lisa Grave Found, Claims Scholar

From the source article:

The woman behind Leonardo da Vinci’s Mona Lisa painting may be buried near a now derelict building in the heart of Florence, according to archival documents. The exact location of Mona Lisa’s burial site, the convent of Sant’Orsola, was just a about 900 feet away from the house of the artist’s father, according to the historian, Giuseppe Pallanti.