Community Blogs
Introduce yourself, show and tell, or set a challenge for your fellow Community members
Showing results for 
Search instead for 
Did you mean: 

Blog Articles

Underneath q is k

The .q namespace contains all the bits of q which are are wrappers of k and hence gives us a good starting point. If we type lj we can see its definition, .q.lj is the fully qualified name. q)lj k){$[...


Code Formatting

What does this statement mean? "can't read it" Let's assume all readers of the code are developers. Are they all proficient enough with the language in order to read the entire .q file even if it is f...


How do you start thinking in vectors?

In his reply to How long should a name be @darrenwsun raises a point so important it deserves a thread of its own, so I’m promoting it here. Darren wrote: As a dev using this language and a practition...


How long should a name be?

How long should a variable or function name be? A well-established tradition encourages us to use clear, meaningful names; names that explain what the variable contains, what the function does. Here i...


Rank beginners

Rank in q refers to the number of arguments a function takes – or the number of indices you can use to index an array. Because Apply and Index have the same syntax, functions and lists are syntactical...


Flouring the loaf

Now here’s a task that cries out for a simple solution: put a border round a matrix. My matrix is boolean and represents a QR code (yes, we’ll come to that) but it’s the same problem as, say, putting ...


One potato, two potato: Joel Kaplan on the ArrayCast

On the latest episode of the ArrayCast we talk to Joel Kaplan, founder of 1010data. Joel ran the Algorithmic Proprietary Trading group at Morgan Stanley for many years. In 1985 he hired Arthur Whitney...


Adding inline code to your questions & messages

Previously I posted on creating q code block with syntax highlighting in a message. Rather than a block you may also wish to add inline code. To do this: 1. Choose ... 2. Choose HTML 3. You will see t...


Surveillance in the Cloud

Architecting a trade surveillance solution is not easy; the algorithms are complex, the data volumes are large and the stakes are high for financial institutions desperately seeking to avoid large reg...


Stevan Apter on the Array Cast

Legendary developer Stevan Apter, of No Stinking Loops, is our guest on episode 26 of the Array Cast podcast, talking about working with k and q. “Apter – NOW we’re talking.” — Simon Garland


All that jazz: The librarian’s song

Because q is a proprietary language, most of us know it as a language we learned in order to query large datasets. But q is a general-purpose programming language. The 32-bit interpreter is free for n...


Missing some items

We encounter the enlist keyword early in learning q; a reliable way to make a one-item list where 1# won’t do. But there is a bit more to enlist than that. In the first place, it is not only variadic ...


Joy of q: It's snowing again

  Inspired by a recent post from Stephen Taylor titled Joy of q: Let it snow , I decided to take a shot at my own improvements on the code he developed. I tried to keep the scope small, but as you wil...


Joy of q: Let it snow

In a post on the Array Thinking blog I explored an array-oriented approach to a simple problem: representing snowflakes falling through the air. The problem is a classic for an object-oriented approac...


KX v DBOps Benchmark Results by Ferenc Bodon

DBOps is a public benchmark comparing the performance of a number of open-source database tools and technologies. It defines a set of reproducible tests to measure their performance executing typical ...


Five easy pieces #4: Little Six

“Golden age” or not, England under Elizabeth I was a very minor European power. Keen to be part of the cultural mainstream, its poets imitated Italian forms such as the sonnet. And a tricky French for...


Write about your work

Publishing is soooo good for you! Just seeing your name in print: that feels great. With a picture, even better. And your publications are yours for ever: on your CV, and on your LinkedIn profile. Pub...


Dancing in the Light: APL Re-Imagined in Lisp

Frustrated by the verbosity of back-end, analytical code, veteran developer Andrew Sengul wrote a compiler April so he could embed APL code in his Lisp programs. In episode 23 of the ArrayCast podcast...


Finding my way into kdb+

Five years ago I joined the QA team of one of the leading investment banks. This was the first time I worked in an investment bank. It was also my first encounter with kdb+. How I got into q It was lu...


Five easy pieces #3: Mark this

First stage: file smile.txt The All-American Smile In a way he was like the land itself. Everything came to him too easily. But at least he knew it, and from time to time he worried about being a phon...


Five easy pieces #2: getting around

From a recent question on Stack Overflow: q)q:9.638554216867471 q)rnd[q;2;`up] / round up "9.64" q)rnd[q;2;`dn] / round down "9.63" q)rnd[q;2;`nr] / round to nearest "9.64" q)rnd[q+0 1 2;3;`up] "9.639...


ArrayCast episode 22: Josh David

In Episode 22 of the ArrayCast podcast, our guest Josh David, 24-year-old professional APL developer, reflects on how different his experience has been from developing in mainstream languages, and on ...


Five easy pieces

Some days it takes me a while to get started. I need to warm up my hands and brain. Hot coffee and a small problem help. .z.p gives me Co-ordinated Universal Time. A neat way to convert that into a st...


Still smiling: Morten Kromberg on the Array Cast

Morten Kromberg, Dyalog CTOQ has sometimes been described as a blend of Lisp and APL. Episode 21 of the Array Cast podcast is an interview with Morten Kromberg, CTO of Dyalog Ltd, vendor of q’s Iverso...


What’s the best toolset for developing in kdb+?

I’m old school. APL introduced me many years ago to what I’ve since learned to call the REPL and I’ve loved it ever since. The Pragmatic Programmer taught me to pick one good text editor and use it fo...


Brooke Allen, adventurer

Brooke AllenIn episode 16 of the Array Cast we asked our guest Brooke Allen how to get work as an array programmer. Our question produced an hour of inspiring stories from a master storyteller. (Brook...