HN user

kcbanner

535 karma
Posts10
Comments271
View on HN

It's not pointless, because you get to select exactly the design pattern that is best for the situation. Other languages may decide this for you.

You don't need to comment out the print function - it could gate its behavior on a comptime-known configuration variable. This would allow you to keep your debug variables in place.

After you've been writing zig for a while, seeing `.{}` in an argument list intuitively means "default arguments".

TurboSearch: A MSVC extension frontend for the excellent command line utility, The Silver Searcher (Ag).

https://marketplace.visualstudio.com/items?itemName=CaseyBan...

Price: $12

I use this tool myself daily as my main search tool inside MSVC. I built it because I was frustrated with how slow other tools were, and before I built this I would use ag in my console instead.

I've sold one copy, but I solved my own problem so I'm happy!

I built TurboSearch, an ag frontend for MSVC: https://kcbanner.gumroad.com/l/turbosearch

I was frustrated with how slow and clunky all the existing solutions were for regex searches. The built in file search in MSVC has a UI that wastes a tonne of space (and the search itself is unuseably slow). Constantly changing to a terminal to run ag/grep and then open the file manually in MSVC was a pain, so I learned how to build an extension and put a GUI onto the command line tools I was already using.

Tools like Visual Assist are great if you want actual symbol indexing, but the searches (of a UE4) codebase can take 30-60s. TurboSearch can run a regex search of the entire engine in ~6s and searches of just the game code take ~200ms.

I have only sold one copy, but I use it every day and it's a core part of my workflow. I thought there would be more interest in it when I built it, but since I've gotten so much use out of it myself, the time spent building it was well worth it.

  "This is the story of a clever trick that's been around for at least 35 years,     in which array values can be left uninitialized and then read during normal   operations, yet the code behaves correctly no matter what garbage is sitting in the array. Like the best programming tricks, this one is the right tool for the job in certain situations. The sleaziness of uninitialized data access is offset by performance improvements: some important operations change from linear to constant time."
https://research.swtch.com/sparse

I built a Visual Studio extension that wraps ag (the silver searcher), because I was constantly flipping to the terminal to use it to search the UE4 codebase I work on. The built in MSVC text search is egregiously slow, and even tools like Visual Assist (which search via indexing symbols) take forever to run on the entire engine.

It can do a full regex search on the entire UE4 codebase in about ~6s on my SSD. Searching just the game's codebase takes ~200ms, enough to feel instant. The speed is all credit to the developers of ag, I just put a convenient interface on it.

I use it essentially as a navigation tool and it's a core part of my workflow, but haven't gotten any paying customers. I initially had hoped to sell a few copies, but since it has completely solved my own problem and probably saved me hundreds of hours of waiting for slow searches, I'm happy.

https://marketplace.visualstudio.com/items?itemName=CaseyBan...

"SQL is a query language. Why would Google treat it like code?"

Because...it's a programming language, and therefore...it is code?

This library can leverage data parallelism to increase throughout vs the scalar versions. ie. One instruction performs 4 operations instead of one. If the problem you are solving is suited to this parallelism, you could get a significant speedup.

Working with purchased assets is not so simple; there is no consistent art direction when you buy things from different sources. This usually requires an artists to do a pass and make all these disparate assets work together.

Simply saying "just buy cheap assets" completely misses the point here.