HNHacker News
TopNewBestAskShowJobs

kd0amg

1,587 karma · joined December 1, 2009

Interested in language design/implementation, architecture, security, and graph theory

Reachable at jrslepak@gmail.com

submissionscomments
kd0amg··on Self-Taught Mathematician; an Impossibility?
Can you offer any empirical evidence that it is not difficult? The vast majority of people I've encountered who are entirely self-taught beyond typical high school (or college freshman) material have been quite bad. They repeatedly make fundamental errors of the sort I would expect to be swiftly corrected in undergrad coursework, even in topics they (claim to) have studied for years.

I don't think I've met anyone who learned to write a good proof without significant human instruction. That is probably something to be expected because much of what makes a "good" proof is social expectations, but I see a lot more cases of unjustifiable leaps of logic than excessive, obvious detail.

kd0amg··on P = NP Proofs: Advice to claimers
Not GP, but I do not. The paper is built on a pretty basic error:

> For simplicity but without loss of generality, assume there are n past price changes, each of which is either UP (1) or DOWN (0). How many possible trading strategies are there? Suppose we allow a strategy to either be long, short, or neutral to the market. Then the list of all possible strategies includes the strategy which would have been always neutral, the ones that would have been always neutral but for the last day when it would have been either long or short, and so on. In other words, there are three possibilities for each of the n past price changes; there are 3^n possible strategies.

The number of possible n-move histories is 2^n, not n. That means there are 3^(2^n) possible strategies. Nondeterministically searching that space in polynomial time does not work. The claim that a strategy could be verified in O(n) time is dubious as well since the size of a full description of a strategy is (in the worst case) exponential in the length of history it considers. So their claim that finding a technical strategy which performs well in backtesting is in NP is not proven.

They repeat the same error later:

> there are 2^(t + 1) possible strategies (because every possible strategy is a mapping from 2^t different possible sequences of 1’s and 0’s of length t into two possible choices, LONG or OUT)

There are other issues, like assuming a strategy that backtests well will continue performing well in the future.

kd0amg··on P = NP Proofs: Advice to claimers
is this saying that since there is some algorithm you can spend some constant amount of time to find it

Yes.

I’m not sure I’d call that “constructive”.

The method for constructing the algorithm is given!

kd0amg··on P = NP Proofs: Advice to claimers
Most of the ones I've encountered have not put in the time to learn computation theory (not even a careful reading of Sipser), so I doubt they're up for learning to use that sort of tooling. Most also always think they're almost there and just need to refine a couple of minor details, which would make the time spent bringing those guns to bear seem hard to justify.
kd0amg··on How to tell a raven from a crow (2012)
https://en.wikipedia.org/wiki/Collective_noun#Terms_of_vener...

> intended as a mark of erudition of the gentlemen able to use them correctly rather than for practical communication

kd0amg··on J Language – New Website
I know just enough to say that APL & J are much more expressive as long as Python doesn't have a fix_problem() method built-in.

This is pretty much the same impression I got, though I came from the other direction. I was kind of surprised how many StackOverflow posts ask about adapting a fix_problem() method to fix some very_similar_problem.

kd0amg··on Why India's rich don't give their money away
That wouldn't really do anything for the issue GP raises. If society sees someone sitting on a pile of ill-gotten gains, donating some of it (whether openly or secretly) just means society will see someone sitting on a slightly smaller pile of ill-gotten gains. They will not consider someone who fleeced or extorted them and then gave some money back to be their benefactors. They'll only avoid that perception by not being associated with corruption, rather than not being associated with philanthropy.
kd0amg··on Lisp Macros, Delayed Evaluation and the Evolution of Smalltalk
"Macros" and "first-class macros" are different things. The latter are essentially fexprs.

I'm not sure why you continue to insist that responses to your comments are just about how macros happen to be implemented in Common Lisp.

kd0amg··on Lisp Macros, Delayed Evaluation and the Evolution of Smalltalk
The sequence of events you describe is a thing that functions do not do at run time: they do not operate on pieces of syntax. Macro expansion time is a different series of events than run time. Macros operate on pieces of program syntax, not on anything from run time.

Everyone jumped on it, as production lisps don't implement macros this way. … This is about mental models, not implementation details

It looks to me like you're the one who brought up implementation details, talking about what happens "at a very low level." You're the one who has presented a questionable implementation strategy as a mental model and has been corrected on it multiple times by multiple people. Everyone else has been describing the semantics of macros. Having separate timelines for expansion and execution is a semantic distinction, not merely a common implementation strategy.

And in my opinion this thread is full of experts who have forgotten what it's like to not understand how macros work.

Your confusion is because you insist on a mental model of macros that is incompatible with their semantics. Letting that model go is necessary in order to understand macros. Otherwise, refusing to distinguish expansion time from run time, you are working towards reinventing fexprs.

kd0amg··on Lisp Macros, Delayed Evaluation and the Evolution of Smalltalk
In conclusion, it is definitely not working like a run-time function with different evaluation order.
kd0amg··on If You Can’t Afford the Rent, It’s My Problem, Too
To the extent that municipal service improvements increase the utility provided by housing in the area, landlords are able to collect more rent from tenants (not necessarily from the same tenants -- new tenants with more buying power will be more interested in the area after municipal services improve). Since that increase in utility for tenants is derived from the location of a lot rather than what's built on it, the value of the land itself increases while the building remains unchanged. So taxing improvements can't recapture the utility increase the way that taxing land can.
kd0amg··on Lisp Macros, Delayed Evaluation and the Evolution of Smalltalk
How and when are its arguments evaluated?
kd0amg··on Lisp Macros, Delayed Evaluation and the Evolution of Smalltalk
If `let` is a function, how and when are its arguments (say, `((x 2) (y 3))` and `(+ x y)`) evaluated?
kd0amg··on If You Can’t Afford the Rent, It’s My Problem, Too
I have to be honest, the linking of 'nationalism' to this discussion looks like hyperbole to me.

I have seen a lot of people in my area assert that my political will should be subordinate to theirs because I came from somewhere else. Last place I lived, the notion that a particular demographic I fall into should be kept out of the general housing market when possible due to pricing others out was not just a fringe idea but part of several (ultimately successful) city council candidates' platforms. Perhaps people in your area are less nutty about outsiders.

If someone can't afford to live in some area…

Yes, those who can't afford the rent can live elsewhere, so rent control is not needed.

kd0amg··on Lisp Macros, Delayed Evaluation and the Evolution of Smalltalk
treating them like functions with different semantics is a very good learning method

If you mean run-time functions that act a bit funny about evaluation order, that mental model is incompatible with common introductory examples like `let`.

kd0amg··on Lisp Macros, Delayed Evaluation and the Evolution of Smalltalk
What are lisp macros for if not to delay evaluation?

One class of use cases not covered in the blog post is that a variable appearing as a function's argument can only be a bound occurrence, a use of some name already in scope. A variable appearing as a macro's argument can be the binding occurrence of that name. This is why (using Racket examples) match, define-struct, for/list, and such things aren't functions.

[1]: https://docs.racket-lang.org/reference/match.html?q=match#%2...

[2]: https://docs.racket-lang.org/reference/define-struct.html?q=...

[3]: https://docs.racket-lang.org/reference/for.html?q=for%2Flist...

kd0amg··on The $2M Urinal: Why Hard Work Doesn’t Cut It (2018)
wouldn't one come out farther ahead by selling (at least a few) of the paintings to outsiders, rather than donating all of them?

GP's suggestion seems to be that non-conspirators would not actually be willing to pay that much -- a bit like a pump-and-dump scheme, but only the IRS gets duped.

kd0amg··on UC terminates subscriptions with Elsevier in push for open access
"Published tuition fees" is a very different figure from what the average student actually pays.
kd0amg··on A sold-out city? The fight to save Dublin’s nightlife
Maybe the thing that makes tech workers want to live and work somewhere is lack of density?

The vast majority of non-dense areas have much less of a tech scene than New York and Chicao. I would expect that what draws tech workers is career opportunity more than high or low density and that density is more driven by how municipal government responds to the changing local job market.

kd0amg··on Starbucks' music is driving employees nuts
OTOH, I find this also makes it difficult to order drinks.
kd0amg··on FCC threatens carriers with 'regulatory intervention' over robocalls
This is arguably a step forward, if it means there's someone to subpoena for information about the robocaller.
kd0amg··on Forensic Pseudoscience (2015)
How much of the conclusions drawn from these investigative techniques are justified entirely by analytic chemistry, and how much goes beyond that? Using an example from a related article, there's a substantial difference between being able to say what's the chemical element composition of a particular bullet and being able to identify the particular manufacturing facility and batch it came from. The latter relies on a whole lot of assumptions about the ammunition industry.
kd0amg··on Things that are more inequitable than road pricing
The "product for a price" idea is a little weird when talking about some service typically provided by a government who deliberately prices it below market equilibrium. If we're going to effectively subsidize this, it's fair to open debate on how that subsidy should be apportioned.
kd0amg··on Apple blocks Google from running its internal iOS apps
A request is communication with certain semantic content, which pulling on a mailbox handle lacks. There is no general understanding among people nor specific agreement between you and some other party that pulling on your mailbox handle is how to ask you for access to your correspondence.

This is not the case for HTTP. A network protocol is an agreement about the meaning of certain clusters of bytes sent over a network. When someone operates an HTTP server, a reasonable person could conclude that they take HTTP messages to mean what HTTP says they mean. A lot of cases get more interesting because there is also something generally understood to mean, "Please don't access the following resources by automated scraping, independently of whether my server decides to grant those requests."

kd0amg··on Apple blocks Google from running its internal iOS apps
The web makes things interesting in that OP's hypothetical company only has that data because Facebook willingly gives it to everyone who asks. It would be obviously wrong if they were using some exploit to trick Facebook's servers into divulging secrets.
kd0amg··on A Primer on Type Systems
That is a "soundness theorem" and maybe even a "[static] type soundness" theorem (if you like the word "unityped"), but the point is that's not really saying anything about conclusions drawn by the classification of values into dynamic types.
kd0amg··on Boeing 787 Suffers Rare Dual Engine Failure on Landing
It might make me worry about their fire response capability. On the other hand, there's probably an element of triage involved here (no immediate threat once the runway was closed). More generally, I would expect problems that a tow truck solves to not be as urgent as problems that a fire truck solves, so garaging the tow truck farther away seems plausible.
kd0amg··on Ask HN: What kind of information do you look for before learning/using new tech?
I was replying that "contrarian and negative" type of information is an important supplement to "documentation" or even a higher priority than official documentation.

But outsidetheparty already mentioned honest comparison with other work too, before bringing up documentation.

kd0amg··on APL\iv: an APL interpreter and stream processor written in Go
Even without vector intrinsics, you can get a lot of mileage out of spending almost all your time in loop bodies that map primitive operations over large arrays. Interpretive overhead tends to grow a lot slower than the user program's input size.
kd0amg··on Hard Part of Computer Science? Getting into Class
That and the number of candidates they chose not to interview
← PreviousPage 6 of 30Next →