Hacker Newsnew | past | comments | ask | show | jobs | submit | yurivish's commentslogin


Your perspective tracks with mine. Without contracts, either specified in documentation or as static guarantees, it is hard or impossible to build robust programs.

In Julia it's almost as if every function is an interface, with (usually quite terse) documentation as its only semantic constraint. For example, here is the full documentation for `+`: https://docs.julialang.org/en/v1/base/math/#Base.:+

I love Game Programming Patterns, by the way! Laughed out loud when I first saw the back cover.


> Without contracts, either specified in documentation or as static guarantees, it is hard or impossible to build robust programs.

Right. I think a big part of this is expectation management. Julia lets you compose unrelated libraries much more freely than most other languages do. That's very powerful, but if you come into it expecting all of those compositions to magically work, I think you just have an unrealistic expectation.

There's no silver bullet when it comes to code reuse and Conway's Law can't be entirely avoided.

> I love Game Programming Patterns, by the way! Laughed out loud when I first saw the back cover.

:D


> Julia lets you compose unrelated libraries much more freely than most other languages do. That's very powerful, but if you come into it expecting all of those compositions to magically work, I think you just have an unrealistic expectation.

Yep, and it is unfortunate that this unrealistic expectation is explicitly encouraged by the creators of the language:

> It is actually the case in Julia that you can take generic algorithms that were written by one person and custom types that were written by other people and just use them together efficiently and effectively.

It seems worth reiterating that on a personal level I really like and appreciate the vast majority of the folks I’ve met in the Julia community. I’m glad I got to hang out with them and learn from them. But in my opinion setting expectations like this fosters bad science.


Agreed 100%.


I'm the author of the original post. I still like and miss my friends in the Julia community, but the technical and cultural issues persist.

I may refresh the post with more recent information at some point. In the meantime, those curious can find a short story of one newer correctness bug here: https://discourse.julialang.org/t/why-is-it-reliable-to-use-...

The person who eventually fixed the issue, mkitti, had to push through a lot of "institutional" friction to do so, and the eventual fix is the result of his determined efforts.

While his part of the story mostly played out in venues outside of the Discourse forum some of it is on display in this thread: https://discourse.julialang.org/t/csv-jl-findmax-and-argmax-...


while I certainly agree that bug was a bit frustrating, in all that

* it happened in the first place

* it took so long to get noticed

* it took so long to merge the fix after being reported

I do feel like I should push back on the term "institutional friction." it was more of a bus factor problem; there were not enough (aka zero) maintainer eyeballs on the proposed fix. but there wasn't exactly anybody saying not to fix it, which is what I think of as friction.


I'm working on a little website to summarize discussion trends across the podcast ecosystem. I wrote about an early prototype here[1] and also gave a presentation about it a few months ago[2] and now I'm working on an expanded "daily pulse" view across hundreds of episodes of top news podcasts from the last few days.

My secret agenda is to explore how the "information supply chain" can be tracked across the data-processing stack all the way from the original audio through transcription, the processing pipeline, and UI. I'm using language models for multi-stage summarization and want to be able to follow the provenance of summaries all the way back to the transcripts and original audio.

[1] https://yuri.is/n/podcast-vibes-prototyping/

[2] https://yuri.is/n/podcast-vibes-presentation/


This is a super neat concept. I would find it really cool to be able to see a "map" of podcast topics, wherein I can click to specific segments in specific podcasts. Even cooler would eventually be the ability to stitch together clips about the same topics from separate podcasts, eventually.


This is such a good visualization idea. I'd like to see some of the webinars and work calls I am on represented this way in the after-call summary


Thanks!

Yes, you could try making one using Observable Plot (which is what I used for these): https://observablehq.com/plot/transforms/dodge

One of the slides in my presentation has the full prompt I used, in case that's useful. I ran it on chunks of the podcast transcript and then merged/deduplicated the results to get the data that's visualized here.



I also emailed Gonzalo Navarro once to ask a question, and we had a great discussion and ended up writing a paper together about the answer. [1]

Another paper of his that I really like combines a few elegant ideas into a simple implementation of bitvector rank/select: https://users.dcc.uchile.cl/~gnavarro/ps/sea12.1.pdf

During this time I got really excited about succinct data structures and wrote a Rust library implementing many bitvector types and a wavelet matrix. [2]

My interest came from a data visualization perspective -- I was curious if space-efficient data structures could fundamentally improve the interactive exploration of large datasets on the client side. Happy to chat about that if anyone's curious.

[1] Paper: https://archive.yuri.is/pdfing/weighted_range_quantile_queri... though it's pretty hard to understand without some background context. I've been meaning to write a blog post explaining the core contribution, which is a simple tweak to one of Navarro's textbook data structures.

[2] The rust version is here: https://github.com/yurivish/made-of-bits/tree/main/rust-play... and an earlier pure-JS implementation is here: https://github.com/yurivish/made-of-bits/tree/main


Reading a Gonzalo Navarro paper is like going for walk, taking a shower and having a wonderful coffee. It literally sets the mind on fire.

https://dblp.org/pid/n/GonzaloNavarro.html


Well not literally.


Many dictionaries now list one common use of “literally” as meaning “figuratively, with emphasis”. So literally officially sometimes now literally means figuratively.

I suspect some people are literally having conniption fits about this…


I’m sorry, but your comment mixes two different types of dictionaries. You talk about “official” meanings which would be a prescriptive dictionary telling you the way you are allowed to use a word. But the dictionaries that include “figuratively” in their definitions are clearly descriptive, presenting all the ways words are commonly used.

You can’t take a descriptive dictionary and then claim it is prescriptive.


There are no prescriptive dictionaries, at least not correct ones, for living languages.

IIRC both the OED and CED list figurative uses for the word, do you know any publications considered more authoritative than those for English? Webster too, for those who prefer simplified English.


I think French has prescriptive dictionaries (to varying degrees of success)


They have Académie Française which intends to control the language to an extent, in recent times focussing a lot on resisting then encroachment of English word and phrases, but IIRC their recommendations don't carry as much weight as many think and are often ignored even by government departments and other official French bodies.

The Académie do publish a dictionary every few decades though, there was a new edition recently, so there is a prescriptive dictionary for French even though it carries little weight in reality.

French is the only living language to attempt it to this extent, though the existence of one is enough to make my “there are none for living languages” point incorrect. It is difficult to pin a language down until no one really speaks it day-to-day (so it doesn't evolve at the rates commonly used languages do).



Very few of those have official force or cover much more than a subset of language properties (i.e. spelling rules), but definitely more than the "none" of my original assertion.


"prescriptive" does not mean "have legal force" though...


> There are no prescriptive dictionaries, at least not correct ones, for living languages.

there are no 100% correct descriptive dictionaries. Any prescriptive dictionary is automatically correct.


> Any prescriptive dictionary is automatically correct.

… in the view of their compilers.

I could write a prescriptive dictionary far more easily than I could get others to accept it as correct.


If you write a prescriptive dictionary it is correct because you are dictating the norms not describing what is real.

Yes you would have to be involved with a regulatory institution first


Right, just like every law is automatically just. /s


If it's not just then change the law!


The Duden is prescriptive for German AFAIK.


Isn't this more of a cultural thing, that Germans seem to agree that it is authoritative and use it as a reference?

I'm not sure what would even make a dictionary prescriptive other than an explicit declaration that it is so or, ridiculously, a law declaring the same.


I'm sorry, can you point to such a prescriptive dictionary? People can talk however they please, and dictionaries are tasked with keeping up with the vernacular.

The "literally" ship sailed centuries ago. Sorry, but that battle has been lost. Even so-called "prescriptive" dictionaries would be categorically incorrect if they ignore nearly three centuries of common vernacular.


There aren’t prescriptive dictionaries for (American, at least) English.


But “official” is defined in descriptive dictionaries to include descriptive dictionaries.


Well, literally doesn't mean literally anymore--literally.


It never has, it always will. We've already lost a host of words that meant "I'm not exaggerating, I actually mean it": "really", "very", etc. I'm going to keep up the fight.


Since there are _literally_ people who use, and have been using for a while, the word without the same exact meaning as we both agree on... well.

Having said that, I will join you in this fight.

See also: exponentially.


Language is defined by its speakers, as basically a "vote". I'm going to keep voting for "literally" meaning "this actually happened" as long as it's practical, because 1) there are dozens of other ways to emphasize something 2) we need some way to say "this is not an exaggeration".


“Exponentially” and “quantum” are the only language hills I’d die on.


Why a quantum leap isn’t the length of an Ångstrom will always sadden me. I’m sure there are other scientific concepts you can use to describe a Great Leap Forward…


I think the Quantum Leap expression can also be understood as a "step" with no intermediate stages, i.e. very abrupt or transformative.


The moreso that those things don't even figuratively set my mind on fire.


What about metaphorically?


the "technical note" link in the RLE bit vector section of the rust repo is broken (https://yuri.is/pdfing/weighted_range_quantile_queries.pdf 404s)


oh wait nvm just realised you linked a working archive link in your post... still worth updating the link in the repo for people who stumble upon it


Fixed, thanks!



Looks as though it's not currently in effect, however?

https://github.com/lobsters/lobsters/issues/761

What a trite cat-and-mouse game, though at least it's entertaining to watch them try.



I totally remember that post. I think I spent 30 minutes just clicking around on it back then. Very nice.


Good point, that's worth emphasizing in the post – I added a section about it with reference to the paper (& to your comment).


Hi Charles, this is my fault for missing the attribution – I'm very sorry.

I've just added a credit to you and your repository (see the second sentence).

I had put together this minimal example based on your repository together with a StackOverflow answer containing the build command (https://stackoverflow.com/questions/68476647/errors-with-com...).

Being just a single file with a simple build command it seemed like a minimal advancement on the state of the art, so I quickly decided to publish, and did not appropriately credit the original as I should have. I hope you can accept my apology – this was an honest mistake.


No problem Yuri, thanks for the credit and the apology! I do recommend writing articles based on doing the thing from scratch yourself though as you can write something more nuanced and interesting that way.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: