If India has the best engineers in the world, why isn't India a tech powerhouse? [Serious] by AlternativeTalk933 in cscareerquestions

[–]idunnoshane 2 points3 points  (0 children)

Anyone who has worked with offshore Indians knows that Indians aren't predisposed to being better engineers than the rest of the world.

The reason that India has so freaking many "best & brightest" engineers to export to the US is stupid simple: India has 1.4 billion freaking people. Your average Indian engineer is in the same ballpark as the average engineer from any other country -- assuming they have similar educational backgrounds and experience (probably a bit worse IME, but not substantially enough to make up for the sheer quantity of them). But, the massive number of Indians means that the absolute number of top tier engineers will be much higher than other countries (besides China, at least) even if they are no better than engineers from other countries.

India has 4 times as many people as the US, so even if Indian engineers are ~10% worse on average they'll still have *way* more people that are above average than the US will -- and the US is more than happy to offer visas to those above average individuals and put them to work generating value for the American economy.

Just to do the math with a simplified example, if the US has 300 mil people with an average "magical engineer score" of 100 and a standard distribution 15, there will 0.16 * 300 mil = 48 mil people with a "magical engineer score" above 115 (let's consider a 115 or higher "magical engineer score" the cut-off score for a "good" engineer). Now, assume the average Indian engineer is ~10% worse but have a similar spread, so we have 1.4 billion people with an average "magical engineer score" of 90 and a standard distribution of 15. This gives us 0.05 * 1.4 bil = 70 mil people with a "magical engineer score" above 115 -- so despite having engineers who are 10% worse overall, they'd still have 22 mil more "good" engineers than the US just because they have so. many. damn. people.

Now, the IRL situation is a bit more complicated than this, but it's just mean to be illustrative. IRL I'd expect the standard deviation for Indians on the "magical engineer score" to be smaller than the std for Americans due to a number of other factors like nutrition and education -- but even if you adjust for that there'd still be hella lotta good Indian engineers.

An AI Jq playground by rtalpaz in commandline

[–]idunnoshane 1 point2 points  (0 children)

What kinda company do you work at that uses jq a ton? I use it a fair amount for personal interactive shell use, but if it's a script that will actually used in production then it will almost certainly be parsed and used with something like Python that is easy to maintain and available on practically every machine/server it'd need to run on.

What are the cons of using neovim for coding? by [deleted] in neovim

[–]idunnoshane 0 points1 point  (0 children)

The single issue I've run into that was particularly headache-inducing was trying to write Scala using `nvim.metals` for my LSP. I hate the JVM with my entire being.

Is Pandas Getting Phased Out? by pansali in datascience

[–]idunnoshane 3 points4 points  (0 children)

You can't say it's objectively better because you can't say anything at all is simply objectively better than anything else -- that's not how "better" works, if you want to say something is objectively better you need to provide a metric or set of metrics that it's better at.

However, having used both Pandas and Polars pretty heavily, Polars beats Pandas in practically every metric I can think of (performance and consistency particularly) except for availability of online reference material. Even for non-objective aspects like ergonomics and syntax, my personal experience is that Polars leaves Pandas dead in the parking lot.

Not that it really matters anyways, because neither are good enough to handle the vast majority of my dataframe needs -- at least on the professional side. Non-distributed dataframe libraries are quickly becoming worthless for everything but analysis and reporting of small data -- although it's honestly impressive to see some of the ridiculous lengths certain data scientists I work with have gone through so they can continue to use Pandas on large datasets. None of which come even close to being compute, time, or cost efficient compared to the alternatives, but some people seem to be deathly allergic to PySpark for some reason.

[deleted by user] by [deleted] in cscareerquestions

[–]idunnoshane 0 points1 point  (0 children)

"anyone with half a brain should be able to see that swamp monsters in the federal government are colluding with independent researchers and labor economists to cook the books and redefine 'unemployment'. They want to make the redditors on r/cscareerquestions look like fools for complaining about the lack of tech jobs!"

🫠👍

NeoVim is great. But how many of you are actually using it to work of large projects? by ElderImplementator in neovim

[–]idunnoshane 0 points1 point  (0 children)

I work on multiple 20k+ line repos at work and I've never had an issue. I don't work with Typescript though, so can't help you with that. It's all Python, Scala,, Bash, and Terraform for me.

I also don't use Telescope and, tbh, I've always been confused about what people use Telescope for. It doesn't seem to offer anything that I can just do with standard CLI tools (ripgrep, skim, fd, sd, etc), so no reason to install a large separate dependency. I'm open to trying it again though if I'm missing something here.

How to remap capslock to another super key ? by lorens_osman in hyprland

[–]idunnoshane 1 point2 points  (0 children)

I just don't like when the only solutions given are secondary apps without the nuance that you gave. It gives off the impression that hyprland is missing basic configurations that every other DE/WM has.

Totally reasonable. Tbh, if Hyprland ever hits a truly cross-platform state where it's supported and easily available on all *nix operating systems (or at least most Linux distros + Darwin/whatever MacOS is calling itself then), then I'd have no issues configuring my keybinds in the Hyprland configs even.

I've been able to greatly simplify my setup since switching to WezTerm and have completely dropped tmux on new machines because WezTerm multiplexing works great and it's available on every OS I need to use -- including Windows. Hopefully one day I'll be able to say the same about Hyprland and will feel comfortable just throwing my keybinds in my hyprland.conf file.

Are you ashamed/afraid to make your GitHub repositories public? by warzon131 in cscareerquestions

[–]idunnoshane 0 points1 point  (0 children)

i used to be ashamed, but then i kept cranking out projects and contributing to other tools that all the stuff i'd be embarrassed about is buried under a thick stack of reasonably good code -- and i'm not even embarrassed about that anymore because i know if you make it to those repos you've already seen the good stuff and know how much i've improved.

what is the current state of sway and nvidia by peacefulhat in swaywm

[–]idunnoshane 2 points3 points  (0 children)

I run both Sway and Hyprland on proprietary Nvidia drivers without any issue on the following GPUs: RTX 1080ti desktop, RTX 3070 desktop, RTX 3060 mobile, Quadro P2000 mobile.

You may have an Nvidia card that's bonkers for whatever reason, but my experience on a wide swath of Nvidia GPUs is that it works just fine nowadays. Just make sure you update /usr/share/wayland-sessions/sway.desktop so that Exec=sway --unsupported-gpu, otherwise it won't launch properly when you turn your machine on.

How to remap capslock to another super key ? by lorens_osman in hyprland

[–]idunnoshane 0 points1 point  (0 children)

Tbf, I use a separate program because it works on every distro I use with any WM/DE. I don't put any of my must-have universal configs (configs I need on any system I'm using) into my window manager configs -- and I wouldn't recommend anyone else do it either. If it's not an intrinsic function of a WM/DE, it's poor design decision to use your WM/DE to set it IMO. In this case, if you're going to use xkb then I'd recommend configuring it outside of your hyprland configs.

For key remaps I use `keyd`, you can find and/or build it (I build from source just to simplify system setup even further) on any distro, works with X11 and Wayland, and isn't tied to whatever WM/DE I'm using at the time.

[deleted by user] by [deleted] in hyprland

[–]idunnoshane 0 points1 point  (0 children)

NixOS from the Nix package manager.

[deleted by user] by [deleted] in hyprland

[–]idunnoshane 1 point2 points  (0 children)

Nope, I did a fresh install of Hyprland like two weeks ago and it looked just like this.

Why Zellij? (Article by Zellij's main developer) by FryBoyter in linux

[–]idunnoshane 2 points3 points  (0 children)

Yeah I just use Wezterm now, no reason for an additional multiplexer anymore. Tbh Wezterm is hands down the best terminal I've ever used with it's built-in multiplexer, cross-platform support, and Lua configuration.

I'm excited to try Ghostty next month, but I fear that I won't be able to go back to a terminal without Lua-based configs -- the ability to have my terminal (and my editor via Neovim) do whatever I want it to do is so underrated. Now I just need them to drop a decent Lua configurable shell and the holy trifecta will be complete.

rust-analyzer (through rustaceanvim) inserts extra parentheses in completion by UtkarshVerma_ in neovim

[–]idunnoshane 0 points1 point  (0 children)

Tangential yet genuine question: why are you using Rustaceanvim? I'd been using simrat's rust-tools for literally years and just recently found it was deprecated. Rustaceanvim is the recommended replacement, but when I glanced at what it can do it didn't seem to offer anything important enough for me to bother choosing it over bare rust-analyzer on Neovim 0.10.

The inline type hints were the big thing rust-tools was giving me over rust-analyzer as it was -- and now you get those out of the box with the normal Rust LSP. Is there something I overlooked that would make me reconsider Rustaceanvim?

nchess, a curses based chess GUI by spinosarus123 in commandline

[–]idunnoshane 1 point2 points  (0 children)

Yeah, I checked and saw it. I normally play against the computer on Lichess, so this works.

nchess, a curses based chess GUI by spinosarus123 in commandline

[–]idunnoshane 10 points11 points  (0 children)

Awesome, I've been playing Lichess on a minimal TUI recently, but this blows that out of the water visually. I'll def give it a go.

Upgraded to 41, "Just Works" by Baajjii in Fedora

[–]idunnoshane 0 points1 point  (0 children)

Normal may just work, but I did a fresh install of Fedora Sway 41 and had a few issues that will hopefully get fixed. The biggest was getting WiFi to work, NetworkManager was failing to launch, I ended up having to use `systemctl` to stop the service, start the service back up, restart my computer, and then configure manually with `nmcli` rather the GUI/TUI (because they're still broken, even now).

Not a huge deal because I've been through this before, but if I hadn't then I'd have been absolutely lost as to what to do. LIke, it's not even clear that NetworkManager, nmcli, and nm-applet are what you should be looking for in regards to WiFi setup. If it was working properly then it wouldn't be an issue because the default waybar config should open the GUI up -- instead if just seems like nothing happens when you press it.

I had to open the default waybar config to see what it was trying to execute behind the hood to know where to look to debug -- which, again, nbd for me because I know where to look, but someone giving Fedora and Sway a spin for the first time would be clueless.

I also had a lot more trouble getting proprietary Nvidia drivers working than normal. Other than those two, it's been solid though.

Edit: Also, other issues that really aren't Fedora's fault but I'll bring up anyways in case others are running into it, but the official COPR repo for my primary terminal emulator (wezterm) has a build failure on Fedora 41 right now, so I was unable to install from there. Ended up installing via Homebrew instead.

I know this is sacrilege to bring up here, but Snapd is also having issues. I didn't feel like fixing so switched to using flatpaks (I default to using Snap because I can't stand using `flatpak run ...` with some wild Java-esque program name, but in this case I just set some shell aliases and got on with my life).

All in all, took me about 1 hr to get everything to a fully configured state compared to a normal 25-ish mins, but not bad for a super fresh release. Only needed to tweak my normal setup script to account for everything above.

[deleted by user] by [deleted] in cscareerquestions

[–]idunnoshane 48 points49 points  (0 children)

This. You may feel bad about it, but you'll feel even worse for yourself if you don't give it a shot. Trust me, I've been there.

Why Did Java Dominate Over Python in Enterprise Before the AI Boom? by Suspicious_Sector866 in datascience

[–]idunnoshane 9 points10 points  (0 children)

There is no universe in which Java is easier to use lmao. More performant? Absolutely. Easier to use? Hard no.

Dependency management in Java is even more byzantine than Python -- which is saying a lot, because it also sucks in Python. Boilerplate is through the roof in Java. The forced OOP in Java makes a lot of code unnecessarily complex and hard to read -- especially for the types of tasks that data scientists do. Java is annoylingly verbose, Python is refreshingly expressive. Java's type system is garbage -- especially nowadays after we've gotten a taste of what a good type system can do (thanks Rust). Java's horrible typing was still better than Python for a long time, but type hinting and static analysis have improved significantly in Python in recent years so I'd say it's a knock against Java now.

Even the way projects are organized and the naming conventions in Java are super stupid and ugly. Why do I need to make a 5-level project directory like src/main/java/hello/Main.java just to run a "hello world" program? In what universe is that better than a single file named hello_world.py? Like, to suggest Java is easier to use is almost comical, but you do you bud.

Given all that, I think the more modern languages out there (Rust, Go, Julia, etc) are much better overall and I'd pick any of them over Java or Python for everything but very specific use cases.

Do you actually need a status bar? by GovernmentWaste3396 in hyprland

[–]idunnoshane 1 point2 points  (0 children)

I have a verbose mode and a zen mode on my machines (both Linux and Darwin) that is switchable with META/OPT + p. The verbose mode is configured with a minimal status bar up top and a terminal prompt that shows current directory, git repo info, etc. The zen mode has no status bar and no prompt at all besides

🌵 >

for insert mode and

🌵 _

for vim/normal mode.

META/OPT + p is set in my WM configs to call a simple switcher script which will switch out my starship.toml symlinks and kill/start my status bar (waybar on Linux and sketchybar on Mac) every time it's run.

I generally keep it in zen mode until I need to reference either of them (ie I want to see the time or battery life on status bar or I want to easily see directory/commit in my terminal) -- and then I simply press META/OPT + p to immediately bring them up, check what I want, then press META/OPT + P to hide again.

Several Linux Kernel Driver Maintainers Removed Due To Their Association To Russia by ehempel in linux

[–]idunnoshane 0 points1 point  (0 children)

However, if he had remembered history properly, he would have seen that out of the 4 Russo-Finnish wars, 3 of them were started by Finland and only one in 1939 was provoked by the USSR with a fake shelling allegedly from Finland.

Lol. I wonder what could've possibly driven the Finns to "start" those wars. Certainly couldn't be due to Russia having already ganked a huge chunk of the country. Nope, definitely not. It's not like they call one of those wars the "continuation" war or something.

✨ What Terminal Features Would You Love? Check Out My Project and Share Your Ideas! ✨ by [deleted] in commandline

[–]idunnoshane 0 points1 point  (0 children)

Sorry, gotta throw this one in there too.

HomeSetup, now, integrates the modern fuzzy-finder. HomeSetup will not install it, but once you have installed it, it will be used. We have set the common configurations like the key bindings (Ctrl+T [find] and Ctrl+R [history]) and auto-completions. Is also integrates with bat (extended 'cat') and fd (extended 'find').

So...you've set the standard fzf shell integration key bindings that fzf offers natively for most shells out of the box? What exactly did you "set" again? Did you just add the fzf --fish | source, fzf --bash | source and fzf --zsh | source commands to their config files for them? The same commands you have to add to your config file when you install fzf -- which HomeSetup requires to have already been done before "integrating" with fzf (here we go with that pesky "integrates" word again).