loqi's comments

loqi | 9 years ago | on: DEA Wants Inside Medical Records to Fight the War on Drugs

Early 1800s: "Then why is slavery still legal in England et al?"

Right now: "Then why is gay marriage illegal in Japan et al?"

Etc. Your point has nothing to do with the drug war itself, it's broad enough to apply to any early-stage progressive proposal.

loqi | 9 years ago | on: Yahoo: Patent Sell-Off Isn’t a Fire Sale

I am currently facing the grim possibility of a patent with my name on it for a system that's basically a poor imitation of decades-old technology. (But it works great with our other poor in-house imitations of decades-old technology!)

Yahoo's "non" fire sale is a good counterpart to the devil on my shoulder trying to rationalize away my participation. My job is actually pretty great otherwise (especially for the town I live in), so I'm stressed as hell at the prospect of quitting over this. I keep thinking of the Milgram experiment, and how confident I was when I heard about it that I wouldn't have been part of the majority that continued shocking a human being to the point of apparent death. Software patents are an abstract evil by comparison, but now that there's a part of me saying "yeah it seems bad, but it probably won't result in any real harm", I can somewhat empathize with that majority.

I don't really have a point to make, this just seemed like a reasonable place to vent my shame and frustration.

loqi | 9 years ago | on: What Urbit is

Thanks for the clarification. I'm certainly not claiming that people who avoid the project are somehow "less important" as a result of their decision. And I wouldn't doubt that it's personal for them - "mere ideology" also seems like a pretty personal thing!

I think we agree that Urbit would benefit from a larger, more diverse user/contributor base. What wouldn't? We're just ascribing agency in different places. I view the claim that Yarvin is excluding people as a sort of rhetorical sleight of hand. What he's actually done is 1) publish some really unpopular opinions, and 2) build Urbit. It is entirely possible to evaluate 2 on its own merits[1]. So I'm disappointed to see so many people write it off for other IMO less relevant reasons.

It reminds me a bit of a "Christian-friendly" Linux distro I once saw that omitted software written by known homosexuals. Would you also claim that the gay programmers were (perhaps inadvertently) excluding a subset of Christians? I suspect most people would agree in this case that agents of exclusion are the ones actually performing the exclusive act, rather than ones who happened to be "the wrong people" from another group's point of view.

[1]: This is true even in the presence of a strong political influence on the technology. I honestly don't see much of a connection between Urbit and Moldbug's politics, but then the latter never made much sense to me, so maybe I'm missing something. If there are politically objectionable aspects to the software, then by all means object! But plain old guilt by association is a weak argument in any context, doubly so in a technical one.

loqi | 9 years ago | on: Urbit is now in open developer beta

I'm not sure where you're getting this. The system is explicitly designed such that the author can not ultimately shape the network into whatever he wants. The only real control stars and galaxies have over the rest of the userbase is that if you want to send a packet to someone who you don't already have a direct connection to, you need at least one star willing to route your traffic. The ownership of these pieces of network infrastructure is intentionally fragmented to prevent the kind of control you're talking about.

What you're describing sounds more like the web as it currently exists under the benevolent rule of King Verisign.

loqi | 9 years ago | on: Removing Python's GIL: The Gilectomy [video]

How so? Sharing arbitrary objects via memory requires some form of coordinated memory management. So you still need a process-wide GC, meaning you're probably stuck with that 30% hit from thread-safe refcounting.

And all the other locking issues are still in play. How would you share a list with another interpreter such that they don't both have access to the same list items? Any solution that looks like a deep copy isn't going to be much better than just serializing across a process boundary.

loqi | 9 years ago | on: What Urbit is

Ah. So basically this[1]?

[1]: https://gist.github.com/djspiewak/3a6ff436865d9e5794e4

I mean, I guess you're technically correct: If nothing else, the impact of his views on the project is that it results in the exclusion of people who choose to exclude themselves from projects created by "the wrong people".

But of course that's trivially true of all projects, so why do you think it's such a problem in this particular case? If you answer "because his views are really bad" while acknowledging that they otherwise have no direct bearing on the technology, you're basically saying "because he's really unpopular".

I have no love of Yarvin's politics, but that sort of cure is worse than the disease.

loqi | 9 years ago | on: What Urbit is

Well, if you define "comfortable tolerating his garbage" as "contributes to Urbit despite it being Yarvin's project", then tautological assertion is tautological.

There is certainly some self-selection for people who don't throw tech babies out with political bathwater. I count myself as one such person. I mean, I continued using Javascript and Firefox even after hearing about Brendan Eich's political contribution! Feel free to draw incorrect inferences regarding my opinion of gay marriage.

I have also toyed around with Urbit, and have (in a sense) made minor contributions. Feel free to draw incorrect inferences regarding my opinion of Yarvin's political writing.

loqi | 10 years ago | on: Crash course in Nock (2013)

Speaking as someone who's been following the project for a few years and once actually bothered to learn Hoon, your first paragraph is probably the best criticism of Urbit I've seen. I do think there is an interesting system buried under all the obfuscation, but the uncritical groupthink within its user base is obnoxious. I kind of doubt "produce a vanguard of true believers" is a primary goal of the project, but Yarvin doesn't really seem to discourage that behavior either.

That said, the old "it's just typical Moldbug" trope isn't much better than the propaganda his followers spout, and the rest is pretty weak too. AFAIK, the Urbit term for "file" is "file". I don't know which funny weird name you're thinking of for "network endpoint", as that's not really a separate concept in the system. Hoon's cores (which I assume you're at least passingly familiar with) are pretty distinct from closures in any language I know... I mean, do you also complain that Java uses the word "object"? (Forgive me if I omit the part where I ascribe sinister motives to the creators of Java due to their choice of vocabulary.)

As for "implementations of well-known computer science concepts", cue Rich Hickey[1]:

> It's interesting, because Clojure provides almost nothing you can’t find somewhere else. But I do think it occupies an otherwise empty spot in the multidimensional space of language features and capabilities.

In other words, even if your claim is true, it describes almost every project in computing in the last 15 years. We might as well say "oh it's just event sourcing" and call it a day.

[1]: http://codequarterly.com/2011/rich-hickey/

loqi | 10 years ago | on: Urbit language tutorial, chapter 0

I don't think Hoon's type system actually has a typeclass analogue. As far as I could tell, what it has is something like generics, but in a world where everything is ultimately a noun. IIRC, a previous iteration of the docs explained that "wet gates" (generic functions) are actually required to compile down to the same Nock when "instantiated" at a particular argument, modulo dead code elimination. Didn't look much like ad-hoc polymorphism to me.

A good example is Hoon's maps[1]. They're parameterized on type, but I'm pretty sure those types can't affect the runtime behavior by, say, specifying their own hash or comparison function. Instead, the map implementation[2] hardwires a couple of specific comparison functions[3] that effectively toss the type information and work in terms of the raw underlying nouns.

It is kind of weird that every type carves out a subset of nouns, even function types (or function "molds" or "spans" or whatever... I'll stop calling them types when the Urbit people stop calling it a type system). Hoon's C-flavor really shows when it makes the likes of strlen((char*)strlen) expressible in a purely functional way.

[1]: https://github.com/urbit/urbit/blob/7186219/urb/zod/arvo/hoo...

[2]: https://github.com/urbit/urbit/blob/7186219/urb/zod/arvo/hoo...

[3]: https://github.com/urbit/urbit/blob/7186219/urb/zod/arvo/hoo...

loqi | 10 years ago | on: Urbit: an operating function

Library gap aside, Lisp has an FFI. If you want to use libpng from Lisp, you just make some C calls. If you want to use libpng from Hoon, you first have to re-implement the functionality of interest in Hoon just to have a sound basis for using the C library (as a drop-in optimization, or "jet").

This obviously makes for slower going, especially near the beginning.

loqi | 10 years ago | on: Lisp for the Web, Part III

Same here. It's why I prefer to line-split conditionals in C-like languages like this:

    if (condition0
    &&  condition1
    &&  condition2)
rather than the usual "trailing operator" style. You can immediately parse the left column as a sort of vertical operator that tells you how the individual conditions are being combined.

But then, I also like Lisp. Prefix notation for "and" gives the same benefit directly, no tricky formatting required.

loqi | 10 years ago | on: “I Feel Like”: This Has to Stop

I quite consciously use "I feel like" to mark lowish confidence statements based primarily on fuzzy intuition or perception ("I feel like it's less work to move my eyes from side to side than up and down").

Contrast with "I think", which I think is more appropriate for statements with at least some deliberate thought behind them, or involve more concrete propositions ("I think Brand X hardware is unreliable", "I think it was last Wednesday").

So the author's example of "I feel like that would look better in blue" looks like a perfectly cromulent use of the phrase to me. If it's mostly a gut feeling about a subjective perception, why not use language that disclaims it as such? Apparently he feels that the disclaimer serves to shield the speaker from disagreement, but I'd have to disagree with him on that.

loqi | 11 years ago | on: The strange fate of a person falling into a black hole

I haven't read the book, but from what I gather[1], the explanations were not all good. Getting to and from Miller's world should have required absurd amounts of energy. But as extreme luck would have it, there were "intermediate-mass black holes" positioned ever-so-conveniently to make those trips possible (along with some other stuff). Cherry-picking the physics you like and papering over the rest with a series of extremely implausible coincidences isn't good science or good storytelling.

[1]: http://www.scottaaronson.com/blog/?p=2040

loqi | 11 years ago | on: Ela, dynamic functional language

> Unlike many other languages, Ela doesn't make any trade-offs, trying to combine distinct programming paradigms that don't fit well together.

The author may want to tone down that claim - combining Haskell-style FP with dynamic typing certainly entails some trade-offs, regardless of whether or not they think it's a good idea.

loqi | 11 years ago | on: Why Lisp?

DTDs mercifully aside, there's this: http://okmij.org/ftp/Scheme/SXML.html

I'm not sure what example in this thread you consider to be throwing information away - in a case like

    <Term term="slick">
where the attribute name is clearly redundant and exists only to satisfy the syntax, nothing is lost in the transformation to

    (term "slick"
page 1