Live data from Hacker News

You Are in a Box

jyn.dev

71–80 of 138 posts

Re: You Are in a Box

#71
The key point of the article is "your data is trapped inside your program", i.e. data models can't generally be shared between programs. One thing that has improved my life has been using apache arrow as a way to decrease the friction of sharing data between different executables. With arrow (and it's file based compressed cousin parquet), the idea is that once data is produced it never needs to be deserialized again as you would with json or avro.

Re: You Are in a Box

#73

I feel this the most on mobile platforms where the phone really should be acting as your agent but instead we're stuck with all these apps.

The "in a box" phenomenon is very tangible to me when I am using the iOS Shortcuts feature. Its capabilities are so powerful, but its utility will always have a ceiling because app publishers' interests are generally not aligned with exposing a Shortcuts API to users. The more easily a user can automate and script the tasks that they use your app for, the less engagement their metrics will show.

Re: You Are in a Box

#74

Earlier quoted context omitted.

> Factotum seems, at best, to be bolted on after the fact. What gives you this impression?

It literally was, it didn't exist until the 4th edition of Plan9. That isn't to say it isn't a good idea (or implementation), but security is very clearly not a primary concern in Plan9.

> but security is very clearly not a primary concern in Plan9.

That is a myth that keeps getting propagated. https://plan9.io/sys/doc/auth.html

Re: You Are in a Box

#75

Earlier quoted context omitted.

It literally was, it didn't exist until the 4th edition of Plan9. That isn't to say it isn't a good idea (or implementation), but security is very clearly not a primary concern in Plan9.

> but security is very clearly not a primary concern in Plan9. That is a myth that keeps getting propagated. https://plan9.io/sys/doc/auth.html

That paper is about factotum which was introduced in 4th edition, like I said. Regardless, I'm more talking about the fact that transport encryption still isn't used ubiquitously to my knowledge.

Re: You Are in a Box

#76

This really reminds me of what Plan 9 was aiming for — breaking out of the 'box' by making everything a file, using per-process namespaces, and cleanly exposing system and network resources with proper permissions. It had that same idea: your environment shouldn't be a prison, it should be a flexible, composable space. ( https://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs ) ( https://fqa.9front.org/fqa0.html )

I think OpenDoc was meant to be this kind of thing as well. I mean the breaking out of the box part, you can read what other programs write kinda thing.

Re: You Are in a Box

#77
Just this past week I've been working on a toy/experimental web DSL [0] that uses dynamically loaded shared libraries as middleware that pass per request arena-allocated Jansson json objects between steps in a pipeline. It's extensible in that new middleware can be created. Influenced by bash and OCaml/F#, here is some kind of demo of the syntax:

  POST /api/users
    |> validate: `
      name: string(3..50)
      email: email
      age?: number(18..120)
      team_id?: number
    `
    |> jq: `{ sqlParams: [.body.name, .body.email, .body.age] }`
    |> pg: `INSERT INTO users (name, email, age) VALUES ($1, $2, $3) RETURNING *`
    |> result
      ok(201):
        |> jq: `{ success: true, user: .data.rows[0] }`
      validationError(400):
        |> jq: `{
          error: "Validation failed",
          field: .errors[0].field,
          rule: .errors[0].rule,
          message: .errors[0].message
        }`
I'm generally curious as to how jyn thinks this would fit in to their box-based framework.

[0] https://github.com/williamcotton/webpipe

Re: You Are in a Box

#78

Computers are boxes, therefore all software is literally (and figuratively) "in a box", are they not? This might seem like a frivolous jest, but it is not. For example, the author points out that clojure, java, kotlin can interoperate, but notes they are stuck in the same jvm 'box'. This generalizes and recurses, so you must find a specific place to stop, and then motivate that. One likely place to stop is at "proces…

It's not long now until we re-invent SOAP and pretend it's a productivity breakthrough.

This is called GraphQL

Re: You Are in a Box

#79
post #7

Earlier quoted context omitted.

It is worse on phones, but most desktop computing feels like this too, at least when you're not at a command line. I've been trying to puzzle out what I'd like computing to look like instead, but I don't get far beyond a concept of "objects" and "actions" as fundamental building blocks. How to actually expose this... yeah, it's tough.

have you seen https://pharo.org/ by chance? it's a smalltalk IDE built in smalltalk, which means that the whole thing is editable at runtime. it's hard to describe before you see it, https://pharo.org/features has some demos.

Smalltalk implementations usually do support live coding "allowing developers to modify and experiment with code while the program is running".

https://www.cincom.com/blog/smalltalk/smalltalk-programming-...

Re: You Are in a Box

#80
post #20
post #7

Earlier quoted context omitted.

have you seen https://pharo.org/ by chance? it's a smalltalk IDE built in smalltalk, which means that the whole thing is editable at runtime. it's hard to describe before you see it, https://pharo.org/features has some demos.

I tried pharo, its an interesting thing but I don't see it as a particularly practical solution. Yes its editable in runtime, but not the whole thing and not reliably so: I remember changing some low level array methods that broke the whole image. Even in pharo your data has to be organised in some way and if you add new code to existing image you have to know how to reach the data you need. And the biggest downside…

Doesn't editing "the whole thing" include edits that break stuff?

> data has to be organised in some way

Yes it does.

Post reply on HN