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 DevelopmentMarkLogic 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 [...]
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 [...]
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 DevelopmentWhen 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 [...]
Element constructors: computed and direct
Author: Dave Cassel | Category: Software DevelopmentIn XQuery, you can build an element one of two ways: computed or direct. Direct This is the simpler case, so I’ll take it first. Direct means that your XQuery code has the XML you want to build: declare namespace blog = “http://davidcassel.net/blog”; <blog:example simple=”true”> <blog:pointless/> </blog:example> XML is a natural data structure for [...]
The team I’m working recently put together a set of coding standards for our XQuery work. This team was generally happy to do so and we came to agreement on a set of standards pretty quickly. The exercise brought to mind a time at a previous company where two of us started discussing aloud whether [...]
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 [...]
A while ago I was posed a question by a colleague: (1,3,2)[.] -> 1 (1,2,3)[.] -> 1 2 3 (2,3,4)[.] -> no result why? To find the answer, we need to think about what’s happening in the brackets. As discussed in one of my earlier posts, the expression in brackets gets evaluated once for each [...]
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, [...]