Sneak Peak: ImageMagick in MarkLogic

Author: Dave Cassel  |  Category: Software Development

Today I get to give you a sneak peak into a feature that’s not yet officially present, but you’ll find if you know where to look: XQuery-level integration with ImageMagick! In this post I demonstrate automatically scaling down large images for CurioVault.com.

CurioVault: putting the Express License to work

Author: Dave Cassel  |  Category: Entrepreneurism, Software Development

MarkLogic 5 includes the Express license, which allows for small production deployments. I decided to take advantage of that to put onto the web a little hobby site I’ve had in prototype mode for a year or so. I’ve collected lapel pins since 1984. In that time, I’ve gotten more than 150 and I’ve started [...]

Models in XQuery

Author: Dave Cassel  |  Category: Software Development

At MarkLogic, I work on a team that is charged with building Proof-of-Concept systems quickly and building them well enough that the developers who take over later will have a good starting point. I’d like to talk more about the framework that we’ve built to help us with those goals in future posts, but for [...]

MarkLogic on $40 per month

Author: Dave Cassel  |  Category: Entrepreneurism

Update: Amazon has just announced tiered pricing for Reserved instances, based on how many hours you actually run your instance per month. My assumption in this post is that you want to run a web site 24×7, meaning the new Heavy Utilization pricing helps. Revised numbers:  Small: ($276.25/year + $0.02/hour * 8760 hours/year) / 12 months [...]

Modules databases versus the file system

Author: Dave Cassel  |  Category: Software Development

When you point a MarkLogic application server to some source code, that code can either reside on the file system or in a modules database. Here are some reasons why you might pick one of those over the other. Modules Database Deploying code is a transactional update — there’s no need to worry that the [...]

Queries and Updates

Author: Dave Cassel  |  Category: Software Development

You may already know that MarkLogic sometimes runs modules as queries (read-only) and updates (read-write). The advantage of queries is that, because they run at a particular timestamp, they don’t need to deal with locks — nothing will change at that timestamp. How does the server know whether a module is a query or an [...]

Meaningful XML

Author: Dave Cassel  |  Category: Software Development

Another day, another code review. Today I came across a function that generates non-meaningful XML. This is something that at first glance feels like it has a nice structure to it, but there’s a better way. First, let take a look at the XML (I’ve changed the XML and the code to make it anonymous, [...]

Exceptional code

Author: Dave Cassel  |  Category: Software Development

Today I was looking into some code that was running slower than it should, and I happened across this little tidbit: let $normal :=   try {     xs:int($value)   }   catch($e) {     $value   } Yes, MarkLogic extends XQuery to add try/catch, and this is a tremendously useful feature, when [...]

TDD with XQuery

Author: Dave Cassel  |  Category: Software Development

Today I had a complicated function to write. The framework we’re using for this project has unit testing built into it, so for the first time in a long time, I did the Test Driven Development approach: I wrote a set of tests, then wrote code to pass the tests, and then refactored. It felt [...]

Word query specification

Author: Dave Cassel  |  Category: Software Development

While looking at the database configuration in MarkLogic Server, have you ever noticed the Word Query link on the left? (Click Configure -> Databases -> the name of one of your databases -> Word Query.) Ever wonder what it does? Word Query is a simple way to specify what parts of a document should be [...]