Rob Patro's Avatar

Rob Patro

@robp.bsky.social

Associate Professor of CS @ University of Maryland. Proud Rust advocate! I β™₯ science & compiled, statically-typed programming languages! Views are my own. Tech stack: https://github.com/rob-p/tech-stack.

3,934 Followers  |  519 Following  |  1,527 Posts  |  Joined: 17.06.2023  |  2.287

Latest posts by robp.bsky.social on Bluesky

First grant proposal submitted! 🀞

Life resumes with a backlog of papers to review and making my thesis pretty for printing ... and then another grant to write.

(this is never going to stop anymore, is it...)

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

I think that's true, but I think there's even more to it. I think LLMs just can't produce reliable code for certain types of things (certain types of novel algorithms and data structures).

05.08.2025 12:20 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

I am neither for nor against the choices of content creators, but I am unequivocally against AI companies intentionally circumventing methods creators use to stop not crawling.

05.08.2025 00:12 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Number of requests to blog pages (exluding statis assets and such) by bot user agents, LLM user user agents, and referring sites.

Google scraped 5800 times and gave 5900 clicks. ChatGPT-User made 8700 requests. but only resulted in 38 clicks.

Number of requests to blog pages (exluding statis assets and such) by bot user agents, LLM user user agents, and referring sites. Google scraped 5800 times and gave 5900 clicks. ChatGPT-User made 8700 requests. but only resulted in 38 clicks.

I have such mixed feelings on this. On the one hand I blog to spread knowledge, but on the other hand attribution is nice ...

Either way, here's some statistics on server logs of the past 3 months. Basically, Google is by far the biggest referrer, but ChatGPT-User requests are more 1/

04.08.2025 23:44 β€” πŸ‘ 4    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

ohh man; a simply wrong result is bad (but expected in this context), but this seems like it may be much darker than that - blog.computationalcomplexity.org/2025/08/some...

04.08.2025 21:08 β€” πŸ‘ 6    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0

Why oh why are so many of these AI companies unethical AF?

04.08.2025 19:43 β€” πŸ‘ 7    πŸ” 0    πŸ’¬ 2    πŸ“Œ 0
Preview
SAT requires exhaustive search - Frontiers of Computer Science In this paper, we identify the distinction between non-brute-force computation and brute-force computation as the most fundamental problem in computer science. Subsequently, we prove, by the diagonali...

It's that time of the summer again when people are publishing "proofs" that P != NP ... link.springer.com/article/10.1... (sigh...)

04.08.2025 19:11 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 1
Post image

Despite some shaky points during shipping, my Ait75 v3 arrived and I installed the (low profile) knob. Quite a nice typing experience so far, using the silent blush nano switches.

04.08.2025 18:11 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Beeswarm plot of the prediction error across different methods of double perturbations showing that all methods (scGPT, scFoundation, UCE, scBERT, Geneformer, GEARS, and CPA) perform worse than the additive baseline.

Beeswarm plot of the prediction error across different methods of double perturbations showing that all methods (scGPT, scFoundation, UCE, scBERT, Geneformer, GEARS, and CPA) perform worse than the additive baseline.

Line plot of the true positive rate against the false discovery proportion showing that none of the methods is better at finding non additive interactions than simply predicting no change.

Line plot of the true positive rate against the false discovery proportion showing that none of the methods is better at finding non additive interactions than simply predicting no change.

Our paper benchmarking foundation models for perturbation effect prediction is finally published πŸŽ‰πŸ₯³πŸŽ‰

www.nature.com/articles/s41...

We show that none of the available* models outperform simple linear baselines. Since the original preprint, we added more methods, metrics, and prettier figures!

🧡

04.08.2025 13:52 β€” πŸ‘ 101    πŸ” 45    πŸ’¬ 2    πŸ“Œ 6
Collection: GTDB RS226 β€” sourmash 4.9.4.dev0 documentation

Beloved #bioinformatics tool users, we are redoing our database download pages for #sourmash with automated templates; see sourmash--3754.org.readthedocs.build/en/3754/data... for an example. What extra/advanced info would be helpful??

04.08.2025 13:51 β€” πŸ‘ 5    πŸ” 2    πŸ’¬ 1    πŸ“Œ 0

For the Monday morning crowd:

04.08.2025 13:19 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I talk a lot about Rust for building high-perf (& even non-perf critical) software, & scientific software in particular. I often discuss what's interesting to me, but wanted to offer the chance to those interested for me to answer their questions about Rust in science. Fire away with questions!🧬πŸ–₯️

03.08.2025 18:12 β€” πŸ‘ 19    πŸ” 11    πŸ’¬ 4    πŸ“Œ 1

I think that more interplay is good. Providing a python interface to Rust is quite trivial with PyO3, and it would be great to have a similar solution for R. I'd much rather have backends written in Rust than plain old C. I also think it's a good gateway to folks in those areas learning Rust itself.

04.08.2025 13:06 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

The problem is that we are (people that is) *very bad* at predicting this value.

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

For the lab, but not for the world! The impact of highly suboptimal software is likely far greater in aggregate than the cost of doing it right. Unfortunately, many funding mechanisms don't reflect that.

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

I’ve been thinking about the climate impact of combiol. My postdoc has reimplemented a couple of Python tools in Rust and taken days off the runtime. My feeling is reviewers should be asking devs to code in the correct type of language for the chosen task. Hard one to police, but any opinions?

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

I recommend the first not be something on your most critical path, but not something completely throw-awat either. It *will* take longer and more effort to build. But in the process you'll get a feel for the new language and its ecosystem in practice, not in abstract exercises. 2/2

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

This is a real challenge, for sure. My best piece of advice is to pick a small project and promise yourself you'll finish it in language X. In my experience, the best shot of a new language sticking is when you use it for a real project. 1/2

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

Understanding how memory (grossly) works under the hood is critical, and language agnostic, knowledge to have. Lifetimes and ownership are actually quite intuitive, once you understand how memory is laid out and modified conceptually.

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

So I approached from another direction, having used C++ extensively beforehand. However, I have heard from those coming from primarily high level langs that the best approach is to ease into it. Use `clone` and `Box` and the like liberally at first, and then claw them back as you seek to understand.

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

Well, error messages are one of the things that Rust is (rightfully) famous for, in a good way. The compiler provides the most helpful error messages of any language I've ever used, by far!

03.08.2025 18:55 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Which programming language should I use? A guide for early-career researchers Computer scientists and bioinformaticians address four key questions to help rookie coders to make the right choice.

I don't disagree! I (and many others) were interviewed by @jperkel.bsky.social earlier this year for this piece (www.nature.com/articles/d41...). I think the idea of "one language for all purposes" is often a fools errand, and interactive visualization and data interrogation was one example I gave.

03.08.2025 18:54 β€” πŸ‘ 3    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0

How is the plotting story now in Julia? And how is the runtime startup speed? The latter used to be a real issue and I'm simply ignorant of the former. Julia always interested me intellectually, as mojo also does now!

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

I feel that one should be comfortable enough with R to use it when it is the only or clearly right tool. At the same time, I'm highly in favor of recreating as much of the useful R ecosystem in Python as we can. I don't love Python, but as a computer scientist, I find it more palatable than R. 9/9

03.08.2025 18:35 β€” πŸ‘ 3    πŸ” 2    πŸ’¬ 2    πŸ“Œ 0

On Python vs. R, I feel that the right answer is why not both? R has some clear historical ecosystem benefits, and many foundational packages. At the same time, Python has been growing quickly in genomics w/the likes of scanpy, squidpy, PyDeseq2 InMoose & others. Ok this question, I'm pragmatic. 8/

03.08.2025 18:35 β€” πŸ‘ 3    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

I have little experience in Julia, so I can't say too much in favor or against. Some folks I respect highly have spoken well of it, but I've tried a few times & the tradeoffs never seemed worthwhile to me. If I want a high-level script, I'm happy with Python, if I need perf, I much prefer Rust. 7/

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

There is nothing wrong, ofc, with quick and dirty parsing code in Python in the right context, and plotting is one area where I'd still advocate for Python or R over Rust, but Rust can be great at efficient and correct data parsing. 6/ (other languages continued below)

03.08.2025 18:30 β€” πŸ‘ 3    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0

If you know you'll always be dealing with thousands through hundreds of thousands of data elements or so, you don't need scalability (to fast runtimes are always nice), but if your data may grow in the future, much better to write it correctly and performantlu once, than struggle to scale later. 5/

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

Once we start looking at more complex formats, including binary ones, Rust feels like a much better match for the data than Python (as at some point, most Python libraries for such tools just end up wrapping C libraries for these things). Moreover, how will your data grow? 4/

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

Much better to get a parsing error (or even a compile error) than some subtly incorrect value due to overly lenient parsing. Python is actually pretty fast at string parsing, but yes; Rust can be faster. Much more importantly however 3/

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

@robp is following 20 prominent accounts