HN user

nishs

839 karma
Posts60
Comments188
View on HN
arstechnica.com 3y ago

Dwarf planet hosts a ring that’s unexpectedly far from the planet

nishs
2pts0
remysharp.com 3y ago

On Vercel: If some of my sites are down

nishs
5pts1
www.zachleat.com 3y ago

A Historical Reference of React Criticism

nishs
1pts0
news.ycombinator.com 3y ago

Ask HN: How do you promote, advertise, or share your indie apps?

nishs
2pts0
www.youtube.com 3y ago

Where is Anatomy Encoded in Living Systems? - SEMF 2022 [video]

nishs
2pts1
help.apple.com 4y ago

Apple Style Guide - Writing inclusively

nishs
2pts0
www.theatlantic.com 4y ago

Long Covid Could Be a ‘Mass Deterioration Event’

nishs
7pts1
algebraic.cc 4y ago

Show HN: Algebraic — Effortless macOS file encryption, integrated with Finder.

nishs
7pts1
github.com 8y ago

Show HN: Create Lyft rides from the command line

nishs
1pts0
www.theatlantic.com 9y ago

What Do Animals See in the Mirror?

nishs
178pts83
www.theatlantic.com 9y ago

The Mark Zuckerberg Manifesto: Great for Facebook, Bad for Journalism

nishs
2pts0
www.newyorker.com 9y ago

The Runner (2001)

nishs
28pts1
www.theatlantic.com 9y ago

What Happens When an Airplane Hits a Deer

nishs
2pts1
www.bbc.com 9y ago

How Fast Food Reveals the Nature of the Economy

nishs
1pts0
static.googleusercontent.com 9y ago

Google Cloud Spanner white paper [pdf]

nishs
2pts0
www.newyorker.com 9y ago

Quantum Theory by Starlight

nishs
2pts0
www.npr.org 9y ago

Greek City Defuses a World War II Bomb

nishs
3pts0
www.scientificamerican.com 9y ago

Arctic 2.0: What Happens After All the Ice Goes?

nishs
2pts0
www.nytimes.com 9y ago

How to Close a Gender Gap: Let Employees Control Their Schedules

nishs
77pts115
blog.cloudflare.com 9y ago

DDoS Ransom: An Offer You Can Refuse

nishs
2pts0
www.nytimes.com 9y ago

Long Before Making Enigmatic Earthworks, People Reshaped Brazil’s Rain Forest

nishs
1pts0
rakyll.org 9y ago

Debugging code generation in Go

nishs
2pts0
www.theatlantic.com 9y ago

'Give Us Your Passwords'

nishs
32pts2
www.nytimes.com 9y ago

Guardians of a Vast Lake, and a Refuge for Humanity

nishs
1pts0
news.ycombinator.com 9y ago

Ask HN: Why is it called an “on-line” man page

nishs
2pts2
onethingwell.org 9y ago

One Thing Well: a weblog about simple, useful software

nishs
1pts0
www.youtube.com 9y ago

Blockchain – A visual guide [video]

nishs
2pts0
github.com 9y ago

Balde: Micro web framework for C

nishs
4pts0
github.com 9y ago

Haplocheirus: Redis backed storage engine for timelines

nishs
3pts0
github.com 9y ago

Git Time Metrics

nishs
2pts0

some linux distributions, such as GoboLinux (which, i think, was mentioned elsewhere in the comments, too), do this.

from gobolinux.org:

GoboLinux is a modular Linux distribution: it organizes the programs in your system in a new, logical way. Instead of having parts of a program thrown at /usr/bin, other parts at /etc and yet more parts thrown at /usr/share/something/or/another, each program gets its own directory tree, keeping them all neatly separated and allowing you to see everything that's installed in the system and which files belong to which programs in a simple and obvious way.

No star, No fix 3 years ago

is lack of privacy your issue with the "your stars" page? consider a bookmarks manager.

complementary openbsd resource:

https://man.openbsd.org/hier

some differences:

* openbsd does not use a /boot/ partition. instead it uses the bsd.* files in root.

* no /proc/ in its entirety in openbsd. use sysctl(3) instead.

* current openbsd does not have a separate /var/tmp/; it is a symbolic link to /tmp/.

(in go, "raise an exception" means "return an error.")

error values are meant to represent expected, unsuccessful conditions—internal properties of the program—during the program's execution. for example, looking up the address for a domain name is an operation that can be expected to fail at times, and an error is appropriate here.

errors in go are not meant to represent properties external to the program, such as mistakes by the package author or documented incorrect usage of the package by the package user. in go these are panics.

perhaps other languages use exceptions for both but that conflates.

There are two "kinds" of panics: those initiated by the Go runtime, and those initiated by the program author, though technically there isn't a distinction. When you access an array out of bounds, the Go runtime initiates the panic. On the other hand, for a condition that the program should hold but doesn't, the program author should initiate the panic. For example, in the exhaustive switch below, reaching the default case means that either you have somehow incorrectly allowed the construction of an invalid token value earlier in your program, or you have missed to account for a valid token value in this function.

  func (t token) symbol() byte {
          switch t {
                  case add: return '+'
                  case sub: return '-'
                  case mul: return '*'
                  case quo: return '/'
                  default:  panic("unknown token")
          }
  }
Errors are different. For example, url.Parse returns an error if its input string is an invalidly formatted URL.
  package url
  func Parse(rawURL string) (*URL, error)
Homebrew 4.0.0 3 years ago

I moved from Homebrew to MacPorts on a local, personal-use Intel Mac.

I chose Homebrew some years ago when I was not as experienced a programmer, because it was more popular than MacPorts. When I revisited the choice last year, I chose MacPorts.

On Homebrew:

* It has a Frankenstein permissions model; for example "brew install" writes files into /usr/local/* with your regular user account as the owner of the files.

* The permissions model means that Homebrew-managed parts of the system become a single user system, as far as I know. Multiple user accounts on the same Mac can't easily use Homebrew, as far as I know, and I dislike software with such design choices.

* Noisy messages and undesired colors in the command line output.

These issues are absent in MacPorts. Overall, MacPorts appears more mature and more Unix-like than Homebrew.

The cons of the move are that not all the packages I want are available in MacPorts. However I have sufficient experience now to package crucial missing ones into MacPorts.

That's an overarching claim.

I write some paid local-only software, and I have no trouble not tracking users or usage. For example, here's the entire privacy policy for one of them:

App does not collect any data.

App works completely on-device. Messages do not leave your iPhone and are not shared with other apps.

The essence of this privacy policy will not change.

--

For another software, the privacy policy includes details such as:

App never uses the Internet, except to check for updates.

Automatic update checks can be turned off in the application's preferences. Requests to check for and to download updates happen only through the domain domain.example. The updates server does not store or forward potentially identifying information, such as request IP addresses or user agent strings.

License keys, obtained upon purchasing App, do not contain personal information, such as names or email addresses of license holders. License keys are validated locally; App does not use the Internet to validate license keys.

As one of the commenters in the original GitHub discussion pointed out, the package managers of most open source operating systems ultimately will/should package Go with telemetry turned off by default, regardless of the Go project’s default behavior.

Good luck getting non-operating system biased data after that.

Collecting non-operating system biased data seemed to be one of the stated goals to making the telemetry turned on by default. Otherwise it was posited that Go users on open source operating systems would disproportionately choose to keep telemetry off when prompted in an opt-in model.

No, but the go tool/package manager doesn’t necessarily, by default, have to proxy each requested module through Google run servers. It can fetch modules directly from the source.

That said, I don’t think that the go tool’s current behavior in regards to the module proxy server can be considered as phoning home.

The proposed metrics collection however absolutely would be bad phoning home behavior.

A negative for the ISC license: there has been controversy about "and/or" vs. "and" wording in the ISC license text. [1]

The OpenBSD project uses the "and" wording, whereas the license text on the OSI website uses the "and/or" wording.

Given all this, it seems to me that recommending the 2-clause BSD is the most straightforward option, because its only (and innocuous) issue is that it contains some no-longer-necessary language after the Berne convention agreements.

[1] From Wikipedia: When initially released, the license did not include the term "and/or", which was changed from "and" by ISC in 2007. Paul Vixie stated on the BIND mailing list that the ISC license started using the term "and/or" to avoid controversy similar to the events surrounding the University of Washington's refusal to allow distribution of the Pine email software.

copy a function with its closure

By closure, do you mean the values of free variables at the time of the copy?

If so, the inability to do a perfect copy is applicable to regular functions at the top level, too. (For such functions, other global variables are free variables.)

Considering this, I think this is why copying a function is generally defined as just having a reference to the function that can later be used to invoke it. It does not include each copy of the function having its own copy of the function's free variables from the instant of the copy. Separate invocations of the multiple copies (i.e. references) of the function may affect the shared closure environment/free variables.

Also worth noting that the page says:

The above observations regarding moral rights imply that putting code under an ISC or two-clause BSD license essentially makes the code as free as it can possibly get.

Emphasis on: or two-clause BSD license.

That said, the ultimate recommendation on the page is ISC, but only because:

The ISC copyright is functionally equivalent to a two-term BSD copyright with language removed that is made unnecessary by the Berne convention.