HNHacker News
TopNewBestAskShowJobs

pcmonk

1,463 karma · joined August 15, 2013

http://pcmonk.me/ http://github.com/philipcmonk/ @pcmonk

Engineer working on Urbit

phil at pcmonk.me

[ my public key: https://keybase.io/pcmonk; my proof: https://keybase.io/pcmonk/sigs/tet7bohLuwyz-BYeBElYMeFlsAYxpfAv-FLVf5l4UZg ]

submissionscomments
pcmonk··on Show HN: Clozemaster – Learn language in context
Thank you. Your translation of "Как вы на это смотрите" makes sense and feels natural. However, the given translation "how did you see that" doesn't seem to match. Would "как вы видил ето" work for that?
pcmonk··on The idea maze of personal logging (2016)
Sounds like a fascinating idea, but I suspect a video will be unmanageably large. However, a relatively low resolution time-lapse would probably be sufficient.
pcmonk··on Show HN: Clozemaster – Learn language in context
I really like the format and premise.

It doesn't seem, however, to be sufficiently flexible in the various ways to fill in the blank (at least in Russian). For example, when given the sentence

    Как вы на это ___
with the translation "how did you see that", I tried "увидел", and it told me the correct answer was "смотрите". That's clearly another answer, but I'm not sure it's any more than what I gave. Or perhaps my Russian isn't as good as I thought?
pcmonk··on ‘Abusing’ the C switch statement – beauty is in the eye of the beholder
Ah, I see it now. Thanks!
pcmonk··on ‘Abusing’ the C switch statement – beauty is in the eye of the beholder
Can you point to the usage of Duff's device there? I'm not really seeing it.
pcmonk··on Latency Numbers Every Programmer Should Know
This is a great list. The one that I see people ignore the most is the fact that spinning disk access is 20x the cost of a datacenter roundtrip. If you need low-latency persistence, something like Apache Kafka is a much better solution than a disk (as long as your scale justifies it).
pcmonk··on What Urbit is
This is correct.
pcmonk··on What Urbit is
Fixed, thanks!
pcmonk··on On the (Small) Number of Atoms in the Universe
I believe you mean "complex". You can form a bijection between the reals and the complex numbers by interleaving the digits, as any Google search can tell you.
pcmonk··on On the (Small) Number of Atoms in the Universe
> The distance between 0 and 1 is smaller than the distance between 0 and 2.

This is correct. However, the number of real-valued points between 0 and 1 is the same as the number of real-valued points between 0 and 2.

> The number of points between 0 and 1 is larger than the number of rational numbers.

This is also true because there are uncountably many real-valued points between 0 and 1 and countably many rational numbers.

pcmonk··on On the (Small) Number of Atoms in the Universe
"The distance between 0 and 2 is larger" is a question about the metric of the space, not size of sets. There are the same number of points in both sets, since f(x) = 2x is a bijection between them.

Try to make arguments from axioms and definitions rather than asserting things from intuition. Intuition is often a useful tool, but (1) it's not an argument, and (2) it's not very helpful once you step into the infinite realm. Incidentally, that's why I went for programming: it's like math, but with no infinity (unless you're using floats, but that's a much easier infinity).

pcmonk··on On the (Small) Number of Atoms in the Universe
{A,B,C} is of greater cardinality than {A,B}. However, the argument that "a rule works for finite numbers, so it must work for infinite numbers" is clearly false.

For a your mapping, see: http://math.stackexchange.com/questions/512397/is-there-a-si...

pcmonk··on On the (Small) Number of Atoms in the Universe
That's not what larger means, that's what (maps into a) strict subset means. In finite numbers, that's the same as larger (greater cardinality), but it's very much not the case for infinite numbers.

There are more than two sizes of infinite sets, but there are just as many real numbers as imaginary numbers for the same reason there's just as many integers as rational numbers.

Try reading this: https://en.wikipedia.org/wiki/Cardinality#Infinite_sets

pcmonk··on On the (Small) Number of Atoms in the Universe
Where in math is the subset partial ordering used to describe one set as larger than another?

Diagonalization isn't showing that a number in set A isn't in set B - that's obviously true for reals and integers, but it's also true for rationals and integers. It's showing that there does not exist a mapping from B to A where there's an element in B for each element in A.

We're obviously not using the same definition of "size". I generally think in terms of cardinality, what are you thinking of?

pcmonk··on On the (Small) Number of Atoms in the Universe
In what sense are there more rational numbers than prime numbers? They can be put into bijection with each other, so we generally think of them as being same infinity. There are more real nubmers, of course, by Cantor's diagonalization, so your basic point is true.
pcmonk··on Oculus Rift: Available for pre-order
This is a l10n problem. This happened to me when I was set to Spanish (Latin America) and Russian, but it's correct with English. Some xenophobe must have stripped out the commas...
pcmonk··on The Space Doctor’s Big Idea
IIRC he started with one-syllable words, but same idea.
pcmonk··on Urbit language tutorial, chapter 0
This is true and is an exception. Even though punctuation is punctutation, we speak it so much more than most other people, so we've found it convenient to give it convenient, one-syllable names. Using the new names is, of course, completely optional. End-users will never even see them.
pcmonk··on Urbit language tutorial, chapter 0
We're not trying to be intentionally obtuse. In general, we try to only create new names when the old names are for a sufficiently different concept. Perhaps we go slightly too far in doing this, but much of the "the terms are alien" feeling comes from the concepts beings actually different than you're used to.

This is the start of a bottom-up style tutorial, but if you're interested in a top-down tutorial, may I suggest this one from one of our open-source contributors: http://hidduc-posmeg.urbit.org/home/pub/hoon-intro/

pcmonk··on Design of a digital republic
Anthrax has noncriminal uses -- science, for example. Sure, they're unusual, but they're there.

I'm not arguing whether or not megaupload was a good service, or whether or not the government should have cracked down on them. The fact is that the government did crack down on them, and the reason is because they positioned themselves as a great avenue for piracy. If they wanted to survive, they should have either not been so pirate-friendly or found a jurisdiction that didn't care about piracy.

Maybe it would be impossible to accomplish megaupload's goals without being pirate-friendly. Urbit's goals can be accomplished while staying well within the letter and spirit of the law, so there's no point in jeopardizing its success.

pcmonk··on Design of a digital republic
I'm not the author, but I do work for Urbit.

Sure, success is impossible without survival. But survival without e2e crypto can't be success, which is why it's baked into the system. Some risks are avoidable while some aren't.

How do we mitigate this risk? Don't give the FBI any reason to worry about us in particular. Don't market to unsavory types. Be above board and make a useful service that lots of people use. Nothing more complicated than that.

pcmonk··on Design of a digital republic
It's true that this is primarily a rant, in that it doesn't describe a solution. Part 2 (coming) will describe the solution that we at Urbit have implemented. If you don't want to wait for that, check out the other documentation on urbit.org.
pcmonk··on Design of a digital republic
Almost anything is useful for criminal purposes. The point is that if something is unusually useful for criminal purposes (e.g. megaupload), then it will be heavily scrutinized. Just because crowbars are useful for crime doesn't get them regulated. Anthrax, on the other hand, does.

You are correct that privacy without cryptography is infeasible. Urbit definitely does make heavy use of cryptography. Some government agencies may not appreciate this, but the point of the cryptography isn't primarily so that the NSA can't read it, but that other people don't impersonate you. It's important to not only not violate the current letter of the law, but also the spirit of the law.

The goal isn't simply to minimize government attention to maximize the chance of "success". "Success" that doesn't accomplish the rest of our goals isn't success at all, so there are some things that Urbit can't compromise on.

pcmonk··on Urbit user guide, hosted on Urbit
In the general case, we think evergreen updates are an excellent idea. It's important to note, though, that it's easy to stop syncing from the upstream repository. Notification plus manual update is totally possible. Most people won't want to do that, but some will.

With SaaS web apps, it is of course impossible to turn off updates, which annoys the heck out of me.

pcmonk··on Larry Wall Unveils Perl 6.0.0
> it is practically always trivial for a Python2 programmer to write new code in Python3.

Until you need to use some library that doesn't support python3. I think I've made the transition from python3 to python2 more than I have the other way around.

pcmonk··on Hidduc Posmeg's Hoon Tutorials – The Urbit Programming Langauge
I honestly think you're absolutely right. Some people have pushed through our "unreleased" status and have learned quite a bit anyway. The guy who wrote these tutorials is not one of urbit's primary devs, but he still managed to get a pretty decent grasp on the system, and he even wrote some great doc.

We're generally quite responsive on the urbit-dev mailing list, and we're making a concerted effort to be more helpful everywhere. Urbit is one of those projects that can't succeed without a community. The pace of github pull requests from outside contributors is increasing, and more and more docs are coming out, both from the core dev team and outside contributors.

pcmonk··on Urbit: an operating function
Traditional punctuation names suck. "Ampersand", "at sign", "caret"? For a language like hoon where we use a lot of symbols, that gets really tiring. Having one-syllable names for glyphs is really convenient, and they tend to roll of the tongue. Everyone's free to use whatever names they want, of course, we just find these useful. Most people love these once they get used to them.

I don't think you can judge syntax by looking at it -- you have to use it for a little while. Hoon's syntax looks hard, but it's actually rather pleasant to use.

pcmonk··on Urbit: an operating function
This is exactly the way it's used in shell scripting, and honestly, it's more useful that way for us because it makes booleans default to true instead of false. If we're going to redo everything, we may as well do it right this time.
pcmonk··on Urbit: an operating function
Sorry, whenever we push updates we have a brief period of inavailability. Should be working now.
pcmonk··on Urbit: an operating function
The random three-letter variable names are only used in the kernel, and they're meant to only be used in code that's small/simple enough that they're warranted. In my opinion, we use too many of them, and I've been converting many of them to longer, more descriptive names. The rule that "punctuation is syntax, text is content" is useful, and it becomes very natural with a bit of practice.

Hoon is very much not designed to be apparently usable, it is designed to be actually usable. Personally, I find it to be one of the most usable languages I've ever used.

← PreviousPage 4 of 8Next →