Mikina

joined 2 years ago
 

I've recently discovered this project, which assuming it works as advertised (which I think wasn't really tested yet, since it seems to be a pretty new repo) sounds like a pretty good library to add into your toolbox.

For those that do not know, LINQ is basically a query language over collections in C#, that allows you (from the top of my head) to do stuff like

someList.Where(x => x.value < 10).OrderBy(x => x.priority).Select(x => x.name)

which would give you a IEnumerable list with names of elements where value is smaller than 10, ordered by priority.

However, using LINQ in performance critical code, such as per-frame Updates, is not really a good idea because it unfortunately does generate a lot of garbage (allocations for GC to collect). Having a version that doesn't allocate anything sounds awesome, assuming you are a fan of LINQ.

What are your thoughts? For me, it sounds like something really useful. While it's not really that difficult to avoid LINQ, I'm a fan of the simplicity and descriptive nature of the syntax, and not having to avoid it would be great. It does seem there are quite a few issues starting to pop up, but it's definitely a project that could be worth it to follow.

[–] Mikina@programming.dev 1 points 3 weeks ago* (last edited 3 weeks ago)

I did Software Engineering Bachelors and then gamedev masters, and while I didn't really appreciate it at the start, since it felt like I'm learning a lot of stuff I'd never need, I've eventually come to be really glad that I did it.

Throughout the classes it felt pretty meh, I didn't understand why I have to do so much stuff that I'll never really use, and always felt like I'm just forgetting 90% of what I was taught the moment I was done with finals for that class. Why do I need to learn Smalltalk? Why Lisp? What even is Prolog? Does anyone even do UML anymore? I want to be a C# programmer, I don't need this.

And it was true. From most of the languages I've had to go through, I don't remember almost anything. But that's not what it was about, and that's something I only came to appreciate with time - it was not about learning Pharo or Prolog, it was about overcoming the initial learning curve and getting somewhat familiar with OOP or formal-logic style of languages. And while you forget the details, the familiarity will stay with you. The goal is not to make you a Prolog programmer, but to make you a programmer.

I've eventually realized that I can pick up any language pretty quickly, no matter what it is - because I've already seen and learned all of the different styles or types of languages there are, and no matter what it is, it's similar to something I vaguely remember seeing somewhere. And that's an immense help. I picked that up naturally, I've kept hearing the question "what programmer are you? What language you can program in?", and it felt weird - sure, I do know the most about C#, but I never had issues with picking up whatever was close at hand or needed, and writing anything I needed with a little bit of documentation and googling. And it was thanks to what I learned in school.

And the same applies to the math and data structures that they hammer into you. Do I remember the difference between red and black tree, or a min-heap, and can I prove it? Not really, but I know they exist, and when I see a problem that sounds like it could use some obscure data-structure, it comes to my mind and I know what keywords to look up. And that's a skill that I've notice is missing from most of the people who didn't have formal CS background. Same goes for algorithms like FFT - you know it exists and what it's used for, and seeing a problem that could use it will trigger your PTSD.

So, I highly recommend giving college a try. You will learn a lot of cool algorithm, and some of the classes were fascinating, and it will give you a vague overview that will stay with you throughout your carreer, feeding you with keywords about stuff that might be usefull for the problem at hand. It's the best thing I've done in regards to programming.

[–] Mikina@programming.dev 1 points 2 months ago

I've been using it for almost a year by now, and so far I didn't have any problems. I've not considered that problem though, so it might be happening and I was just lucky.

[–] Mikina@programming.dev 0 points 2 months ago* (last edited 2 months ago) (2 children)

I'm hodsting my own Matrix server with WhatsApp, Telegram, Discord (you don't need a bot for that, you can just share your login with the bridge) and Messenger bridge. I have all my IMs in one app, don't have to install spyware on my phone, and I can make bots that troll annoying people that message me on any platform.

Hosting it was super simple, thanks to the Ansible project that's extremely robust and well done, I literally just got a hosting, domain amd changed like 5 config values to enable the bridges I wanted, gave it an IP and ssh key, and ran it. And if I need to update, I literally "just update" (it's all wrapped up into "just" tool), and it eve handles cases where I didn't update for a while, failing graciously and telling me what I need to do maually, usually just rename some config values.

I wholly recommend it. You probably wont convince your friends to switch from , and this is the best compromise.

I'm using a small instance on Hetzner, for 6$ a month. You could in theory get a free oracle cloud instance for it, but I didn't manage to get one.

And you can easily share it with anyone interrested, make them an account, so they can also consolidate their DMs. I'm sharing it with a few friends and colleagues.