Live data from Hacker News

32 bit version of KDB+ is now free for commercial use

kx.com

11–20 of 34 posts

Re: 32 bit version of KDB+ is now free for commercial use

#11

Except financial applications what is it good for ?

This would actually make a terrific replacement for something like redis when you need a more structured schema.

The q language is very powerful, and expressive - interesting mix of lisp and APL. You can do really powerful analytics without writing tons of code for it.

You really have to see how fast KDB is compared to most nosql products out there.

Re: 32 bit version of KDB+ is now free for commercial use

#13

I'm not sure about the Q language, but their C API reads like obfuscated C contest entry: http://kx.com/q/c/c/k.h

If you look closely at it, there's not much there - it's actually easy to understand - defines a variant struct and an bunch of accessors to the different types within the embedded union. He prefers short names, and finally years later, java recommends short variable names for lambdas too!

Re: 32 bit version of KDB+ is now free for commercial use

#14
post #4

This has come up before here, and the recent GNU APL stuff reminded me, but in summary, if you have ever been curious about APL or mildly suspicious of more conventional database approaches you owe it to yourself to take a look at the concepts at work here, especially primacy to columns instead of rows. The & "where" operator in raw k has stayed with me over the years as a particularly inspired way to deal with colum…

it came up here before, but this time is different. It is now free for commercial use and is not restricted with timeouts or expiry.

Re: 32 bit version of KDB+ is now free for commercial use

#15
post #2

For the unindoctrinated, KDB+ is an extremely fast, column oriented, in-memory database. It's based on a language called Q and has been used at many banks to store exchange related data.

Syntax is hard to read and easy to make mistakes in considering how it overloads every letter of the alphabet as a command, but the extreme speed pays off I think.

K is only hard if you try to read it without first studying it. Looping is achieved through adverbs. The key to it is understanding what is a noun (data), verb (operator/function) and adverb (takes a verb, creates a new verb to be used infix). A verb with a noun to its right is a dyad if there is also a noun to its left, and is otherwise a monad. If it is needed, the monad can be specified by appending a colon to the right of the symbol. Fortunately, most kdb+ developers program in Q, which has a bunch of helper routines defined in k, and assigns monads to names such as neg x instead of -:x.

Re: 32 bit version of KDB+ is now free for commercial use

#16

Except financial applications what is it good for ?

This would actually make a terrific replacement for something like redis when you need a more structured schema. The q language is very powerful, and expressive - interesting mix of lisp and APL. You can do really powerful analytics without writing tons of code for it. You really have to see how fast KDB is compared to most nosql products out there.

Are there any open source projects or blog posts with examples of this?

Re: 32 bit version of KDB+ is now free for commercial use

#17

Earlier quoted context omitted.

This would actually make a terrific replacement for something like redis when you need a more structured schema. The q language is very powerful, and expressive - interesting mix of lisp and APL. You can do really powerful analytics without writing tons of code for it. You really have to see how fast KDB is compared to most nosql products out there.

Are there any open source projects or blog posts with examples of this?

They have a reference wiki with some example programs. Have a look at this page: http://code.kx.com/wiki/Cookbook/ProgrammingExamples

Re: 32 bit version of KDB+ is now free for commercial use

#19

I'm not sure about the Q language, but their C API reads like obfuscated C contest entry: http://kx.com/q/c/c/k.h

If you look closely at it, there's not much there - it's actually easy to understand - defines a variant struct and an bunch of accessors to the different types within the embedded union. He prefers short names, and finally years later, java recommends short variable names for lambdas too!

Short names make sense if they are easily understandable locally: This means either something extremely common throughout the codebase (I think the most common example being localisation wrappers for string literals. They should ideally be linked to a more clear explanation easily, e.g. from renaming import statements), or defined (clearly) and used only within a very small area of code. This API is neither of those.

Re: 32 bit version of KDB+ is now free for commercial use

#20

I'm not sure about the Q language, but their C API reads like obfuscated C contest entry: http://kx.com/q/c/c/k.h

If you look closely at it, there's not much there - it's actually easy to understand - defines a variant struct and an bunch of accessors to the different types within the embedded union. He prefers short names, and finally years later, java recommends short variable names for lambdas too!

So, I guess I need to look closer than the pixels then:

typedef struct k0{signed char m,a,t;C u;I r;union{G g;H h;I i;J j;E e;F f;S s;struct k0k;struct{J n;G G0[1];};};}K;

Sorry I guess I'm just not seeing the "not much there and actually easy to understand"

Whatever a 'H' is

Post reply on HN