clausok
Joined 8 years ago
Joined 8 years ago
Hopefully they stick to it this time around. It's an incredible system. It's the only thing I've ever used, including Pandas, dplyr & Matlab, where someone could stand over my shoulder asking data analysis questions and I could answer them, on the fly.
LLM's, though notoriously bad (so far) at KDB+/Q compared to other languages, are still a godsend for folks getting started. I recently returned to writing Q after being away from it for 8 years and I've been amazed how good even Google's AI suggestions have been at helping with functions & queries.
Getting started tip: try using Q strictly as a query language, avoid K. Do everything else (data shoveling, devops,...) with a different language.
Just look at the effort and knowhow that went into this VBA function that resolves the local file system path from the https url of workbooks synced to OneDrive/SharePoint:
https://gist.github.com/guwidoe/038398b6be1b16c458365716a921...
One example: a couple years ago I was working with a big hedge fund and one of their data analysts sent me an Excel model he had built and I was tickled to see the .xlsm extension (i.e., VBA code on board).
"Ahh ha", I thought, "Let's see what these macro-recording cowboys have been up to."
There was a lot of VBA inside, all written by this Caltech comp sci data analyst who was a Python superstar. The VBA was for pulling data from a database, putting it on a sheet, building some formulas, and some pretty formatting. There were even a few userforms!
I teased him, "VBA? What else are you guys using over there? A cotton gin and a steam shovel?"
I was startled to hear him heap praise upon Excel and VBA instead of the usual complaints.
He said something that stuck with me, "Excel makes it easy to understand the dependency structure that is implied by computations. If I had done this in Python, I'd be answering questions about it all day long."
With playgrounds you get the best part of school, recess, without the rest of it.
If parents would look up from their phones for a minute and watch what's going on in playgrounds they'd be amazed.
Recently I saw about 20 kids, across a wide age range, hold a spontaneous, well-organized game of Among Us.
You won't just make friends there; you'll run in Draco Malfoys too; and that's also valuable.
We thought, "Well, it's only kindergarten". It worked out well enough (knock on wood) that we just kept going.
Compared to my own harried "THE BUS IS COMING!!!" sleep-deprived school days, it has been a wonderful change.
If I could go back in time, I'd put my mom in an ankle lock until she agreed to do the same for me.
Especially since I learned that in my home state homeschoolers can participate in high-school sports. In high school I had to wake up at 4AM for 5AM hockey practice. If I could have returned home afterwards and slept, rather than going straight to school, I would have thanked the Gods.
It could be that an early algorithmic advantage compounded into an incumbency advantage: better research tools; better data; better pay for better scientists.
The 'secret sauce' may have started out as novel discoveries and, over time, become 'just being RenTec'.
If queries.FilterHasError().Count > 0 Then
was being evaluated as true even when the count was zero.I had developed the add-in using 32-bit Excel. This was an extremely confounding troubleshooting experience. Eventually Google & Stackoverflow rescued me from believing I was going crazy.
Every year freshly minted MBA's would begin the training and immediately become aghast when the trainers told them to never, ever, use named-ranges in formulas. Not only had the trainees been explicitly taught to use named-ranged in their MBA programs, but any idiot could plainly see that [=enterprise_value/ebitda] was better in every way than [=C13/F22]. More expressive, more readable, easier to spot errors, etc.
The trainers would argue that in an MBA program you build your models, submit them, and move on to the next assignment, so you don't get a view of the longer-term problems that arise from named-ranges. What does [=ebitda] actually tell you? Is that the last quarter's actual number, is it the current estimate of the next fiscal quarter, is it a 12-month blended forward estimate?
And as you try to solve those questions with [=ebitda_est_next_fiscal_qtr] you often end up with two more problems: an unambiguous name for you can unambiguously mean something else to someone else and as you update your model over time, if you forget to update your named-range references, you have formulas that look right, but are wrong, e.g., [=ebitda_est_next_fiscal_qtr] now refers to an actual reported ebitda number, not next quarter's estimate.
[=C47] while not telling you much at all, is unambiguous. It doesn't look "right" or "wrong". It can't mislead you. If you want to know what it is, go look at cell C47. The new MBA's would argue, "Wait a second, C47 could now point to the wrong data as well, and it could be mislabeled with a stale row or column header. And the trainers would reply, "Exactly, and when you go to see what C47 represents you will have the context to recognize those errors and fix them."
"Levine found a simple but hugely consequential 'trick' to speed matching. In Levine’s later paraphrase, what the 'enter2order' procedure did when the Island system received a new order was to: 'See if there was a record from a recently cancelled order that we can reuse for this new order. This is hugely important because that record will likely still be in the cache [fast internal memory] and using it will be much faster than making a new one. (Levine, n.d.)'"
http://www.sps.ed.ac.uk/__data/assets/pdf_file/0003/97500/Is...
karl(ɑt)optimalxl.com