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 (8 Mar 2012): Amazon has changed their prices again. Let’s see what the math tells us now. These numbers assume you want to run a web site 24×7, using the Heavy Utilization pricing on Reserved instances: Small: ($195 + $0.016/hour * 8760 hours/year) / 12 months = $27.93 per month Large: ($780 + $0.064/hour * 8760 […]

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 […]

Sales training

Author: Dave Cassel  |  Category: Career

This week I’m doing something completely different, and a bit outside my comfort zone — I’m in sales training. No, I’m not planning a career change. My company is sending everyone in the sales organization to this training, and as a pre-sales consultant, here I am. I wasn’t real excited about this. After all, I’m […]