HN user

kmaitreys

140 karma
Posts0
Comments86
View on HN
No posts found.

I have similar thoughts.

To those who feel on the contrary, I would genuinely like to understand why average consumer won't be priced out of hardware? The silicon industry is already quite centralised. Everywhere we already see the concept of ownership disappearing.

It's quite difficult for me to visualise a non-dystopian future where our PCs are just mere screens and every compute happens on a remote cloud, owned by some corporation, charging you subscription fees to even add and multiply numbers.

I would be the happiest if this (perhaps the most) pessimistic scenario doesn't pan out, but I can't deny that it feels like that's where we are heading.

I would also like to know this. Fortran itself is column-major, so I would guess the internal layout isn't same for multi-dimensional arrays when compared to row-major C? I'm not sure how LFortran represents arrays internally though.

I'm not sure if I would ditch Zotero. Using grep over a bib file is nice but I guess you are opening the DOIs in browser every time?

The reason I like Zotero is because I can use it offline, have my all documents synced (the backup feature is one of the best things) when needed and I can organize my papers according to project/paper I'm working on. Actually one thing I do wish Zotero would add is tab groups which will allow me have papers open but grouped by project. It's based on Firefox which does support this so I hope it's a matter of time.

It depends on the kind of people. Most normal people don't do that, it's not a reddit-like platform after all.

But most researchers and grad students (like me) often subscribe to daily mailing list of the papers dropping that day from their particular field. Having a cursory read at the paper titles and then opening the papers further relevant to you is a morning ritual for many.

For something more rigorous, I would like to take this opportunity to share rebound[1], something we use for n-body simulations in our field (planet formation). Perhaps few people here are already familiar with it. It has a Python interface but the C interface is very easy to use as well and has plethora of pre-set examples which can be visualized using GLFW. It's very very cool!

[1]https://github.com/hannorein/rebound

Zig by Example 1 month ago

I have never understood this way of approaching programming. I feel the best way to learn a language is solving a problem you have in that language.

Figure out an actual real problem you have which you can solve with programming and just implement it in a language you're thinking about learning. This way there's nothing to invest in because you're solving a problem instead of approaching programming as if it was some coursework. It is not.

Zig by Example 1 month ago

Why do people still view languages as an investment? If you know programming then it's just a different syntax. Focus on learning programming.

How do you develop a program which will run for longer duration on HPCs. How do you quickly modify struct definitations, how do you define imports (using vs include syntax is so confusing!)

REPL-based workflow doesn't make sense to me other than scripting work.

A lot of people have focussed on the LSP in their replies when it is was only one of the problems I mentioned.

rust-analyzer is a great LSP and paired with clippy it can teach you the language itself. Also, writing numerical code is extremely easy in Rust. I can write code and just run cargo run to see the output. Julia, on the other hand, forced a REPL-based workflow which never has made sense to me. REPL-based workflow makes sense when you just want to do some script stuff. But when writing a code which will run for a long duration on a HPC? I don't get it. Part of the problem is I'm not "holding it correctly", but again, out of the box experience isn't good. You define a struct and later add or remove a field from it. Often you'll get an error because Revise.jl didn't recompile things. It was a sub-par experience and I was hoping to people would share their dev workflow in more detail

I really like Julia as a language but I have struggled to adopt it and be productive in it. Part of it is because of the JIT runtime and a sub-par LSP (at least when I last tried).

To those who regularly write Julia code, what is your workflow? The whole thing with Revise.jl did not suit me honestly. I have enjoyed programming in Rust orders of magnitude more because there's no run time and you can do AOT. My intention is not write scripts, but high performance numerical/scientific code, and with Julia's JIT-based design, rapid iteration (to me at least) feels slower than Rust (!).

Thank you for such a great reply!

There's a lot of useful advice here that'll surely come in handy to me later. For now, yeah I'm just going to try to make things work. So far I have mostly written intra-node code for which rayon has been adequate. I haven't gotten around to test the ergonomics of rs-mpi. But it feels quite an exciting prospect for sure.