Expires headers in MarkLogic Server

Author: Dave Cassel  |  Category: Software Development

A little while ago I ran YSlow, a Firefox plugin that evaluates how quickly a web page loads, against an Application Builder based app I’d written. YSlow gave my site a grade C, with an overall performance score of 71 (out of 100). Some of the suggestions that YSlow offered are not simple to implement […]

Experimenting with AppBuilder’s rewriter

Author: Dave Cassel  |  Category: Software Development

In a recent post, I wrote a tutorial showing how to add a view to an Application Builder-based application. As one step, I made a copy of the rewrite.xqy module under the custom directory so that I had an easy way to add my new view. There was one thing about the approach that I […]

Querying across fragments

Author: Dave Cassel  |  Category: Software Development

In MarkLogic Server, we tend to think about the documents that we put into the database. Most of the documentation, conversely, talks about fragments. I’ve had to learn some about fragments recently, so I figured I’d share. What are fragments? Fragments are one layer of granularity of data in a MarkLogic Server database. In particular, […]

The empty query

Author: Dave Cassel  |  Category: Software Development

A number of MarkLogic Server functions require a query as a parameter. Every now and then, however, you want to call one of those functions without specifying a query. There’s an easy way to handle this: you can use cts:and-query(()) as an empty query. This empty query matches everything, so it’s a simple way of […]

Adding a view to an App Builder application

Author: Dave Cassel  |  Category: Software Development

This post is based on how MarkLogic’s Application Builder worked in MarkLogic versions 4 and 5; it does not apply to versions 6+.  In my last post, I showed how to add maps to the front page of a MarkLogic Server Application Builder-based application. But what if you want to add a whole new view? […]

Adding maps to AppBuilder applications

Author: Dave Cassel  |  Category: Software Development

Using MarkLogic’s Application Builder makes it a snap to put together an application quickly. Whenever I build an app this way, I feel like I’ve gotten 80% of what I need. This post shows how to take the next step and add a common feature: maps. To illustrate these steps, I’m going to use an […]

MarkLogic and the Amazon API

Author: Dave Cassel  |  Category: Software Development

I’ve been working with MarkLogic Server for more than a year now, and one thing I’ve enjoyed is how easy it makes some things that used to be hard (or at least, harder). But there are some thing that the MLS API doesn’t provide. What to do? Run back to LAMP? No, no, no. Delegate. […]

XPath: using the root element

Author: Dave Cassel  |  Category: Software Development

In XQuery, I commonly find myself writing XPath statements to navigate into some block of XML to find some tasty nugget that’s in there somewhere. When doing so, I’ve found one particular aspect that frequently throws me off, getting me empty results instead of the information I wanted. Having finally figured it out, and after […]

Gotcha – sequence index evaluation

Author: Dave Cassel  |  Category: Software Development

Every now and then I get caught by this little gotcha, so I figured I’d share and hopefully by writing about it, I’ll remember to do this right. Let’s start with a little something simple, shall we? let $seq := (1 to 100) return $seq[10] Simple, as promised. I create a sequence of numbers from […]

Calling a function on the power set of a sequence

Author: Dave Cassel  |  Category: Software Development

[Update: This post was originally labelled “Calling a function on all permutations of a sequence”. John Boyer was kind enough to point out that the function works for power sets rather than permutations, so I’ve updated this post accordingly. Thanks, John!] A project I’m working on required me to call a function on the power […]