Nov
15
Mutiny at the Maypole
Filed Under FireCore, Perl | Leave a Comment
For the last few months I’ve been a slightly more than casual observer of the Maypole project. Although I don’t actually run any sites on Maypole, it’s based on rather a lot of my public code, and a lot of issues people raise on the mailing list aren’t really about Maypole, so much as Class::DBI [...]
Aug
14
XSLT, Perl, Haskell, and a word on language design
Filed Under MDB, Technology, XML | Leave a Comment
An interesting thread over at kuro5hin on the tribulations one person had when writing a filter to convert XML documents to LaTeX using XSLT (with examples of how some of the transformations would be handled using Perl or Haskell instead).
My initial reaction when faced with problems such as the one described in this post (lots [...]
Aug
14
Functional Programming with XSLT - A proof through examples
Filed Under MDB, Technology, XML | Leave a Comment
This paper sets out to show that XSLT is a true functional language, by implementing 35 of the most common functions that you would encounter in such a language (foldl, map, minimum, sum, sumTree etc)! It’s long (the PDF version is 76 pages) - mostly because of the code: just because XSLT can implement all [...]
Aug
14
XSLT Abstraction
Filed Under MDB, XML | Leave a Comment
I’m trying to learn how to abstract common elements of XSLT away. For example, the MusicDatabase’s shiny new XML output gives the run-length of a CD, or a track on it, in seconds. But, for output, we’d really like to show it as minutes and seconds (i.e. 308 would become 5:08).
This is fairly simple to [...]
Aug
12
Using AxKit with Template::Toolkit
Filed Under FireCore, MDB, Technology, Template Toolkit, XML | Leave a Comment
I spent most of today trying to integrate AxKit with Template::Toolkit.
Unfortunately there isn’t really a lot of information on this available that I could find. I think most people see them as either/or approaches, rather than complementary. There is a mailing list for the two combined, but it’s fairly quiet - and seems to be [...]
Jul
25
Work Smarter, Not Harder?
Filed Under FireCore, Technology | Leave a Comment
Karen comments on the Tiny Perl Server Pages article in August’s Dr Dobb’s Journal, saying that it seems familiar as “we have implemented a system that works in an similar way to this one.”
Although on the surface this article may imply this, due to its comments on session management, MVC architechtures and database tables of [...]
Jul
24
Building the Music Database
Filed Under FireCore, MDB | Leave a Comment
Steve complains that this series hasn’t progressed in a few weeks. The next entry in the series was going to be a look at searching, using Class::DBI::mysql::FullTextSearch. But, when we used it we discovered that DBIx::FullTextSearch (which this uses) just doesn’t scale well. There’s well over 7 million tracks in the Music Database now, [...]
Jul
2
HTML Abstraction (Building the MDB part 3)
Filed Under FireCore, MDB, Template Toolkit | Leave a Comment
Last week we built the first few pages for The Music Database, to show
how everything hangs together.
Before we delve a little deeper into some more complex pages, we’ll look at cleaning up the HTML.
We left our CD details page looking like this:
[% META browser_title = "CD details" %]
<h1>[% cd.title %]</h1>
[...]
Jun
27
Building the MDB 2: The Artist Page
Filed Under FireCore, MDB | Leave a Comment
Yesterday we built our first page. Because we had to set up some
database mappings it may have seemed more complicated that it actually
was. If we wanted to add another page today that viewed a CD in a
different way, all we would have to do is add another lined to the
config_info in Site.pm:
sub config_info [...]
Jun
26
Building the MDB 1: The First Page
Filed Under FireCore, MDB | Leave a Comment
We already have a database built of the freedb data (it’s a little out
of date, but we can resync that later). So the basic version of the
first page is fairly simple. We’ll add a page to display the details of
a given CD, and use it as an example of how FireCore works.
To construct our Model [...]