NeilMacMullen's Avatar

NeilMacMullen

@neilmacmullen.bsky.social

Coder, CTO of Sensize, bass player, creator of various open-source tools: kusto-loco, textrude, jumpfs

50 Followers  |  97 Following  |  184 Posts  |  Joined: 24.10.2024  |  2.0582

Latest posts by neilmacmullen.bsky.social on Bluesky

Post image

Letter of the day (in the Times)

11.08.2025 08:00 β€” πŸ‘ 3715    πŸ” 1620    πŸ’¬ 86    πŸ“Œ 98
Preview
Release v1.3.0 Β· NeilMacMullen/kusto-loco Core The engine now uses full parallelisation and previous-result caching for much higher performance on large datasets The engine now uses BitArrays to store nullability info, leadig to much-redu...

Pleased to announce Kusto-loco v.1.3.0 is now available. The main focus on this release is improved memory use and multi-threaded querying.

It's now quite possible to deal with datasets of over 50 million records on your local machine without having to upload to ADX.

github.com/NeilMacMulle...

10.08.2025 16:35 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

My 53-million row test-file now comes in at just over 4GB - around 75 bytes per row. Since the row contains 2 doubles, a guid , 2 longs, 2 datetimes, a string (with around 2.5M unique 20-char values) and a bool, that's pretty close to optimal without trying to introduce compression.

10.08.2025 14:04 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

..paired with BitArrays indicating nullness. This saves a very considerable amount of ram vs the previous approach of boxing all types to nullable objects.

10.08.2025 13:48 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Well, I finally got tired of fighting C# generic support for nullability and wrote a source-generator to apply a search and replace approach to the T type parameter across the types that Kusto-loco supports. The concrete outcome is that I can now store all types as tables of non-null values...

10.08.2025 13:48 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I use both extensively - mostly Code for embedded and random file editing and Studio for C#. I find the MDI in Studio far superior tbh but Code is a wonderful swiss-army knife of extensions.

09.08.2025 11:07 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I often wondered what the world would look like if the most ignorant, dangerous & daft opinions of radio phone-in hosts/callers were permitted to prevail. I never expected to find out…

08.08.2025 06:51 β€” πŸ‘ 1024    πŸ” 344    πŸ’¬ 83    πŸ“Œ 12

As someone who's had thjs recently (and the opposite endoscopy!) I can say that narrative around these is massively over-hyped. The worse part of the experience was actually the industrial-strength laxatives required to clean you out before the procedure!

08.08.2025 02:29 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Summarization needs a little work - tjhe geo-hashing only accounts for around 700ms

03.08.2025 19:51 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

I've been working on performance for Kusto-loco
This is the engine working on a 54 million row table in under half a second*. Pretty pleased so far :-)

C# #KQL

*Admittedly I have quite a beefy desktop.

03.08.2025 19:42 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

If the BBC was doing its job, it would note in its coverage of Reform that 92% of the party's donations come from the fossil fuel industry.

01.08.2025 07:09 β€” πŸ‘ 1197    πŸ” 533    πŸ’¬ 39    πŸ“Œ 15
Post image

Anyone know how to get rid of this? I've got all the "obvious" copilot features turned off but this seems stubbornly persistent..

c# #csharp #visualstudio

30.07.2025 15:28 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I mean the annoying thing is that it's barely faster than just making the changes by hand...

28.07.2025 20:31 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

So I'm reduced to opening the files manually one by one and barking out "AGAIN!" to copilot like an abusive toddler... Loving this future.

28.07.2025 20:28 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image Post image

I mean what even is the point of this thing? It's happy to do one at a time but useless as an automated assistant...

c# #copilot #visualstudio

28.07.2025 20:21 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

kusto-loco v1.2.8 now released.

Pretty pleased to have got arg_max/min in there as well as max_of and min_of

Thanks to @tbui17.bsky.social for some great work behind the scenes.

#kql

27.07.2025 19:13 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

I just modified the behaviour of edit-kql to output a value rather than an object if the query returns a single column. I think that makes the behaviour a lot more intuitive for cases such as below where you want to use the path without accessing it as a member.

#kql #powershell

26.07.2025 22:22 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Ah - makes sense. Thanks so much for the advice - will be trying this soon :-)

25.07.2025 09:33 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Thanks - that's very useful info and it's good to know it's possible. I'm a bit confused by the use of the psm1 file - are you saying you load the dlls with add-type and then the cmdlets inside them are magically exposed ?

24.07.2025 22:51 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Neatness for one - it's easier to drag around a single file than a folder full of bits and pieces though to be fair I've solved that one with an installer.

The main reason is that it would be quite nice to use publish-module although maybe that's not even possible for dlls ?

24.07.2025 21:44 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Question for #powershell module authors... is there any convenient way to publish a c# module with a bunch of dlls as a single file without getting deep into the weeds with ILMerge ?

24.07.2025 18:40 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

Finally got round to updating Textrude to .net 9. It's a tool which allows for template-based code generation using Scriban scripting and csv/yaml/json input data.

Just search for "textrude" on github..

22.07.2025 16:27 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

Well, finally lokqldx has an installer. This is for all of you reluctant to copy a bunch of random dlls across to your machines ;-)

Get it at github.com/NeilMacMulle... #KQL #kustoloco

19.07.2025 18:57 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

I thought I'd share some #powershell scripts I find particularly useful. First one is "tab.ps1" which is indispensable if you live in the #windowsterminal. Quickly assign titles and colors to your tab headers... Get it from github.com/NeilMacMulle...

19.07.2025 16:11 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I already use a lot of source-generation for the internal functions so it's a path already well-trodden but that doesn't mean I'm keen to do it again ;-)

18.07.2025 13:57 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

..without a lot of refactoring. I'm grudgingly coming to the conclusion that the only way forward is to use some kind of templating/source generation to generate specific variants, e,g MyClass<T> turns into MyClass_Int MyClass_double etc..

18.07.2025 13:18 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

You can however use the same interface for int? and string which means there's a lot of generic code in KustoLoco that works across all the types it needs to. But it means the "simple" optimisation of breaking arrays of T? into an array of T and a BitArrray indicating nullness isn't possible....

18.07.2025 13:18 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Arrgh - C# generics and nullability are so frustrating No way to express that variables should be the nullable or non-nullable version of the type parameter.

17.07.2025 19:20 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Post image

_Really_ pleased with this PR from @tbui17.bsky.social The completion window now shows icons! Coming to a kusto-loco release soon....

12.07.2025 18:02 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

A kind offer but I think the whole process is just needlessly complex and a massive disincentive to open-source authors. :-)

By now you'd hope you could just right-click on a project and say "publish to store". (dotnet tool is a good model and shows that it is actually possible to do )

11.07.2025 18:16 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

@neilmacmullen is following 20 prominent accounts