Arc Forumnew | comments | leaders | submitlogin
2 points by hjek 2564 days ago | link | parent | on: Advanced search for news.arc

> IMO; If they really wanted to make a dent, they should push for a regulation requiring that browsers provide functionality that enforces a free-software configuration OPTION.

Sounds interesting. Apart from the regulation part, it sounds a bit like LibreJS[0].

[0]: https://www.gnu.org/software/librejs/

2 points by hjek 2564 days ago | link | parent | on: Advanced search for news.arc

Good question. I'm not sure, but I think it may have to do with removing Gravatar support?
3 points by zck 2564 days ago | link | parent | on: With and withs

Similarly to this, when I'm writing Java, I use `final`^1 everywhere I can. It's nice to be able to know that anywhere later where the variable declared final is in scope, it will have the same value as at the point it's set. I don't need to look through any code to see if it's rebound; I know it hasn't been.

[1] "final" is kind of like "const", if I understand `const` right. `final int x = 3;` means that it is an error to later have the line of code `x = 4;`.

3 points by prestonbriggs 2564 days ago | link | parent | on: With and withs

OK, I get it, thanks. In scheme, I would use letrec for this situation; my intuition for Arc isn't very well developed.
4 points by akkartik 2564 days ago | link | parent | on: With and withs

I actually tend to the opposite: use with everywhere unless I need withs. The reason isn't performance. It tends to make code more elegant to not rely on the order in which things are defined. And when I'm reading code, with gives me the warm fuzzies that the code is going to be cleaner. When I see withs I slow down to look at the dependencies between the bindings.
3 points by kostas 2564 days ago | link | parent | on: With and withs

Look at the definition of with and withs at https://github.com/arclanguage/anarki/blob/master/arc.arc

The macro definition of with creates a function with all the names as inputs and the body of the with as the body of the function. The newly created function is called with the definitions of each name, which are effectively in independent namespaces.

The withs definition, however; recursively calls itself so that each succeeding name sees the definitions of previous names.

I believe the difference is historically due to higher speed of with. In modern programming it probably makes sense to use withs everywhere and only change to with in places where optimization is necessary.

3 points by akkartik 2564 days ago | link | parent | on: With and withs

Try running without your code.

    arc> (help get)
    [fn]  (get i)
    Returns a function to pass 'i' to its input.
    Useful in higher-order functions, or to index into lists, strings, tables, etc.
    Examples:
      arc> (get.2 '(1 2 3 4))
      3
      arc> (get!b (obj a 10 b 20))
      20
      arc> (get.9 sqrt)
      3
      arc> (map get.2
                '((a b c)
                  (1 2 3)
                  (p q r)))
      (c 3 r)
    nil

    arc> (help set)
    [mac] (set . args)
    Sets each place in 'args' to t.
    nil
These are the functions you end up calling because your dispatch can't see the earlier get and set bindings.
1 point by prestonbriggs 2564 days ago | link | parent | on: With and withs

I should have given more info. If, while using "with", I type

  (= a (test))
things look good. But if I then type

  (a!get)
arc complains

  Error: " get: arity mismatch;\n the expected number of arguments does not match the given number\n  expected: 1\n  given: 0"
Adding to the general confusion, if I type

  (a!set 1)
arc complains

  Error: "Function call on inappropriate object #(tagged mac #<procedure: set>) (1)"
3 points by prestonbriggs 2564 days ago | link | parent | on: With and withs

I wouldn't think it would make a difference. The other names are all bound to functions, so we should be able to bind them in any order.
3 points by i4cu 2564 days ago | link | parent | on: With and withs

The reason why there's an 's' on 'withs' is that it's short for "with sequentially". Comparatively 'with' doesn't evaluate the bindings sequentially. So, for example, your 'val 0' is probably not being bound before the others are.
3 points by shader 2564 days ago | link | parent | on: Self-hosting the Anarki community

Somehow i managed to trip the DoS prevention, and now my home IP is blocked. I almost thought the site actually did go down...
2 points by akkartik 2566 days ago | link | parent | on: Self-hosting the Anarki community

I did ping the HN admins about the lock period a year or two ago, and they were kind enough to extend it for us. It's now 90 days, if I recall correctly.
3 points by shader 2566 days ago | link | parent | on: Self-hosting the Anarki community

Yep, improving the forum would help a lot, in a lot of ways.

I've often thought that the structure of the news.arc forum is rather unhelpful for the arc community, especially now that we're so small and lethargic. Conversations can go extended periods of time without comment, so they get locked. Or they fall off the front page, and hard to find again. Neither is conducive to long-term development and improvement; we probably lose a lot of valuable work and ideas that way.

One thing I'm considering as part of developing a new community site is collecting and archiving all of the arclanguage.org content, so we can actually access it. And preserve it, if the site goes down.

But I end up wasting all my time on discussion, instead of actually making progress on that...

3 points by shader 2566 days ago | link | parent | on: Self-hosting the Anarki community

I was expecting arclanguage.org to stay mostly as it is. Support for newcomers to arc would be included in that.

You may not be entirely wrong, but I probably shouldn't have tried to compress a description of a language used and developed by a loosely federated group of unique individuals into a single phrase.

I can try to unpack it a bit...

"Experimental (language) hacking" -> Exploratory programming is supposedly a primary paradigm of arc

"Experimental language hacking" -> Arc isn't exactly production ready; it's a very experimental language, and that makes it fun (and sometimes frustrating) to use, and easier to explore new directions and possibilities. You're less likely to reverently assume that the way it is is the way it must be.

"Experimental language hacking" -> And yes, we hack on arc itself. So I am thinking a bit of a language design community, I guess. In an anarchic language community though, the lines between 'users' and 'designers' become rather vague...

3 points by i4cu 2566 days ago | link | parent | on: Self-hosting the Anarki community

Ahh, I see. That make sense now.

Hmm, you know, a new anarki forum could have the benefit of adding a tags feature for posts. A few good tags could be 'lang-design', 'arc', 'anarki', 'help', etc., etc. Not only would this allow our subtypes of members to zero in on their content of interest, but would make searching for meaningful info much easier. Now that would probably make me jump over.

2 points by shader 2566 days ago | link | parent | on: Self-hosting the Anarki community

Yep. We should definitely keep answering them too.
3 points by shader 2566 days ago | link | parent | on: Self-hosting the Anarki community

Thank you for your opinions; it really does help me clarify my own thoughts. That and I rather dislike talking to myself for more than a few minutes at a time...

Currently, this is an Arc forum. People are drawn here from pg's posts about Arc, and their attraction to the simplicity and beauty of the language. Also probably dreams of silver bullets... That won't stop just because we make a separate community, and I really don't think there's anything wrong with it.

However, I think we're also torn a bit between maintaining basically a bugfix version of arc, or going on to develop it further.

The question then is what "further" means - which direction would it go? One answer is that it can't really be predicted; creating such a community would be a way to find out.

On the other hand I can speculate, based on what I've seen of this community so far.

People come, entranced by pg's vision of arc, and then find out that the code base itself is really small and approachable. In general, lisp variants are used by people who like to make the language fit their needs, but where most dialects would add to the language via macros, with arc (or anarki) people find it just as easy to hack on the core of the language itself. Eventually this leads them to forking it, or building their own implementation in javascript or something.

I suspect this is partly because arc is so small, and does not have many standard libraries or a package system. You can read it all in a fairly short amount of time. So the fact that most of the code is aimed at developing arc means that the easiest thing to develop with it is... arc.

This trend of exploration and extension will undoubtedly continue, and I think it will be much more free to develop into something significant if we simply look at anarki with the slightly different perspective that having a separate community site we could actually upgrade might offer. Instead of being weighed down by arc as the 'community bugfix edition', it could become a 'language based on arc' with a solid foundation, but room to grow.

The core paradigms and strengths of arc appear to be "exploratory programming", and "language hacking". I think it would be cool if we could develop the former beyond the latter, but who knows how it will turn out?

Of course, I may be entirely off-base here myself...

3 points by shader 2566 days ago | link | parent | on: Advanced search for news.arc

(continuing the discussion for clarity... no emotional connotation is intended)

I realize this is a comparison for clarification, but isn't it still just 'categorically demonizing innocent people'?

You picked a more controversial topic where more people are likely to agree with the demonization I suppose, but your assertion that the power to kill "may be considered unjust by principle" is not well supported by vague assertions that "some think" guns "may be seen as" unjust instruments of violence. I fully support everyone's right to object to something they see as dangerous; opinion does not constitute principle, however.

To me, something is just or unjust based on whether or not it aligns with or infringes anyone's rights. So, I suppose I might actually agree that a power could be "unjust in principle" if it could be shown that the power could not be used justly - that is, without infringing on anyone else's rights. For some powers, mostly political ones, this is the case. In this case I think guns may be a poor comparison, because they actually can be used in ways which are just (defense, etc.), even if you believe that those cases are unlikely and so desire strict gun control, etc.

In contrast, it may be that producing nonfree software is always 'wrong' (in that it infringes on the supposed rights of the users to understand and modify the program they are running) and therefore having or providing the power to do so would be 'unjust in principle'. If the concern is merely that some may produce malware, and there are actually legitimate reasons for producing nonfree software, then it is not unjust in principle to do so, or to provide someone with said power.

I hope I've understood all that correctly, and restated it well. I'm not sure that I agree with the idea that nonfree software is always bad, but I am open to it. Perhaps what I'm missing is a clear understanding of the specific rights that nonfree software violates.

3 points by shader 2566 days ago | link | parent | on: Advanced search for news.arc

Interesting. That does sound somewhat attractive. I do occasionally try to run a git repository myself, and while I appreciate that Gitlab is open source, it was a bit cumbersome to set up.

I note that notabug said it was powered by a liberated version of gogs. What are they referring to there? Was something not sufficiently free about the original?

3 points by shader 2566 days ago | link | parent | on: Advanced search for news.arc

Yes, that's what I assumed as well; I just thought it would be an interesting discussion, and was wondering if there might not be other reasons for choosing that particular repository.

I suppose for me, the distinction between an 'open source' repository (Gitlab) and an 'ethical(?)' repository wasn't a very important one, so I was curious for the motivation behind it.

1 point by akkartik 2566 days ago | link | parent | on: Advanced search for news.arc

Do you happen to remember how long ago this was? If it was more than 30 days ago I may well have accepted and forgotten, and see no trace of it in my email's trash.

Adding people to organizations without informing them seems like a bad idea. It's also not what GitHub does, and GitHub is who all these sites are copying, so shouldn't be happening.

3 points by i4cu 2567 days ago | link | parent | on: Advanced search for news.arc

No worries, I know you (as well as the authors) are simply trying to apply implicit safety measures to counter bad actors. And I'm certainly not offended by you adopting the program. It's my feeling, however, that their approach is horribly wrong and bordering on corruption. I simply don't believe they will have any success when trampling over the good actors in their process of trying to better the world. IMO; If they really wanted to make a dent, they should push for a regulation requiring that browsers provide functionality that enforces a free-software configuration OPTION. Then allow society to decide for themselves (this is a free world after all). I'd even be ok if the default setting was on. But as it sits right now they will get nowhere really fast.

edit: oh and as for the gun analogy... I'm from Canada and fully support gun control (we have it), but I'm not going around and implying that every gun owner is unethical in the process of asking for gun control. That would be shooting myself in the foot!

3 points by hjek 2567 days ago | link | parent | on: Advanced search for news.arc

> They are categorically demonizing innocent people.

I'm sorry; that was not my intention.

Perhaps I can make a comparison to clarify? As an example, some people think that guns are unethical because they may be seen as an unjust instrument of violence. Even if a particular gun hasn't killed anyone (yet), or even if most guns happened not to be used to kill, then surely it can still be legitimate for people to object to the passive presence of guns, because it gives gun owners the power to kill, and that power may be considered unjust by principle.

Similarly, some people think that non-free software is unethical because it gives programmers the power to do bad stuff, regardless of whether some particular non-free program is actually malware (yet).

(Sorry in advance if I've derailed this discussion into a more controversial subject.)

3 points by i4cu 2567 days ago | link | parent | on: Advanced search for news.arc

> The term can also be used by people who consider it unethical to even give programmers the possibility to hide nefarious code from users, regardless whether they actually do or not.

But that's not what's happening here. They are categorically demonizing innocent people.

3 points by hjek 2567 days ago | link | parent | on: Progress: Quasiquotation; Cene; co-opetopes?

What is a `hypertee`?
2 points by hjek 2567 days ago | link | parent | on: Advanced search for news.arc

I clicked Invite but it must have just added you?
3 points by hjek 2567 days ago | link | parent | on: Vouch

So you need to have `showdead` enabled for vouch to ever be visible, I guess?
3 points by hjek 2567 days ago | link | parent | on: Advanced search for news.arc

Well, correct assumption!
3 points by hjek 2567 days ago | link | parent | on: Advanced search for news.arc

> It insinuates that non-free software is unethical when the majority of non-free software has no nefarious intent or code.

The term can also be used by people who consider it unethical to even give programmers the possibility to hide nefarious code from users, regardless whether they actually do or not.

3 points by hjek 2567 days ago | link | parent | on: Advanced search for news.arc

I think Gogs/Gitea is interesting in that it's super lightweight and shipped a self-contained binary, that's up and running in seconds. (Gitlab recommends at least 4GB of free memory[0])

Perhaps that is not relevant when someone else is doing the hosting, but I've gotten used to Gogs/Gitea now.

[0]: https://about.gitlab.com/installation/

More