Recent submissions

Comment · 25 days ago
I only recently discovered \(x) like function wrapping is not required! Where magrittr::%>% uses ., base R's |> can use _, but only for named arguments

     penguins |>
      rpart::rpart(species ~ ., method = "class", data = _) |>
      rpart.plot::prp(extra = 4)
EDIT: maybe that wasn't the case in 2021 when the blog post was written
Comment · 1 month ago
It looks like maak does not have a mechanism for specifying file dependencies (run recipe when dependent file is newer than output file). I'd love to be wrong. I try to use Makefile to document data pipelines, but it's easy for it to become spaghetti. [Edit: There's the decade-stale https://github.com/factual/drake "Drake is similar to GNU Make, but designed especially for data workflow management". I can't remember why I bounced off it.]

For command line runners like maak and just, why not use small cli scripts (`quick-math 23 42` instead of `maak quick-math 23 42`)? I think I'm missing the bigger picture.

Comment · 2 months ago
I read the quoted text as "Xanadu's 'transclusion' can't work in the real world because of copyright and legal issues." But neither of those are issues for popular existing technologies.

Rereading your parent comment, I'm guessing my confusion is in connecting that quote to why Xanadu fails to solve "the concrete problem" or endorsing "a solution in search of a problem"/addressing "worse is better."

My comment was intended as a +1 to @Rygian: Xanadu was prescient wrt. file management and an opportunity to push back against Freenet=CSAM

Comment · 2 months ago
> fiercely opposed by many entities, but outright illegal.

As I understand it, this fails to advances the broader "searching for a problem" argument. And is actually addressing a problem others have tried to solve later.

re. copyright holders fierce opposition: Youtube might be a good counter to the suggested tragedy of the anticommons. And on the high seas, napster's rise and the continued success of torrents suggest legally is not a barrier to success in and of it's self. The article reasonably ties copyright to free software. opensource has done pretty well. [The article's link back to ycombinator referencing Xanadu's allergic reaction to opening the code is an interesting candidate for why we're not using the OS now. Too locked down to get the love and exposure it needed? Bonus recursive side note: "has never believed in FLOSS" links to hackernews, demonstrating both back and forward linking -- another counterpoint to the presented augments against Xanadu's impracticality ]

Its not your (quoted) claim, but it's worth being explicit. Freenet is as legal as facebook or twitter[0]. People do illegal stuff with crypography. But it's ostensibly a way to protect from authoritarian overreach. Which still seems like a problem in search of a solution.

[0]: https://freenet.org/about/faq/#is-it-legal-to-run-a-freenet-... > One example comes from U.S. law, used here for illustration rather than as a universal rule: 17 U.S.C. §512, part of the DMCA. It expressly addresses “transitory digital network communications” (automatic transmission, routing, and intermediate or transient storage) and “system caching” (certain automatic temporary storage of third-party material).

Comment · 2 months ago
instead of !$, I use alt+. for the same reason `up` is preferable to `!!`.

!$:h is new to me. directory name of last argument is nice. I can imagine reaching for that. paired with alt-^ to replace the magic with the actual expanded text before hitting enter

Comment · 4 months ago
I think they're both "negative parallelism" constructs. Either way, neither are new.

The prose on https://mail.cyberneticforests.com/its-not-just-data-its-pos... changed how I think about it: the framework is useful for reasoning, not lazy writing. This bubbles.town submission's title could be light evidence of negative parallelism's utility. (Or, more likely, just the stochastic nature of what's popular when)

Comment · 4 months ago
Excited to see this get traction! Federated voting and comments on top of RSS has an indie-web elegance to it.

Indulging in meta-commentary: The HN submit history for bubbles.town is interesting. Took 7 tries to reach the front page. The final viral title resembles the supposed-LLM-tell "X not Y." Coincidence or evidence that the models touch on a useful way to communicate ideas. (I only looked because I submitted the one 2 weeks ago.)

   436 points  3 days ago   Hacker News but for independent blogs
     3 points  4 days ago   Bubbles – community-ranked feed of blog posts
     3 points 13 days ago   A community-ranked feed of blog posts from curated sources
     3 points 20 days ago   Bubbles – an HN-like link aggregator for the non-tech internet
     1 point  28 days ago   Bubbles: Blog Post Discovery
     4 points 50 days ago   Bubbles
     6 points 75 days ago   Bubbles – HN-like frontpage for personal indie blogs
Comment · 5 months ago
fediverse authenticate voting for articles in feeds enumerated on https://bubbles.town/blogs.opml

Every blog post on Bubbles gets a corresponding post on @[email protected].

Comment · 7 months ago
Absolutely! And the list.pop version is multiple orders of magnitude slower. But I took the prompt to be asking for in-place modification of the existing list. Comprehension does not do that.
Comment · 7 months ago
Ahh I didn't see the full original prompt -- it's overflowing into a horz scroll for me. I thought it was the "critique loop" that injected the *args requirement. I guess garbage in, garbage out. Still unfortunate example to use.
Comment · 7 months ago
Tangential (but topical in that "The threat is comfortable drift toward not understanding what you're doing" is also on the front page):

Is the generated python code in the example wrong?

The prompt

> Develop a Python function that removes any falsey values from a list. Return the modified list without creating a new one.

Is answered with list comprehension, which makes a new list and leaves the original unmodified (never mind that the *args input necessarily can't be a modifiable list?)

   def remove_falsey_values(*args): return [val for val in args if val]
Whereas I'd expect something like

    def remove_falsey_values(l):
          for i in reversed(range(len(l))):
               if not l[i]: l.pop(i)
          # returned list is linked to input l 
          return l

    a = [1, 0, False, 'foo']
    x = remove_falsey_values(a)
    x[0] = 2
    print(a) # [2,'foo']
Comment · 9 months ago
Can you say more? Guile's the only scheme I've tried (attempts at packaging for Guix). Debugging has been difficult, but I figured it was me struggling with new tools and API. Does racket have better facilities for introspection or discovery at the REPL?
Comment · 9 months ago
Comment · 9 months ago

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton