Hacker News new | past | comments | ask | show | jobs | submit | deong's comments login

Yep. And there are the formal optimality gaps like "this algorithm provably finds a solution in polynomial time no less than twice the optimum tour length", and there are also the informal "I have no proof of anything, but this algorithm usually finds optimal tours or tours within 1% of optimality on problems of up to 10 million cities" type of gaps. Both are useful to know and understand in practice.

If my job were to solve TSP instances, I'd not bother trying to tell someone why it's hard. I'd through Iterated Lin-Kernighan or something similar at it and go get some lunch.


That's not the right analogy. It means you're not allowed to sue someone else for requiring an ID check in order to let you shop there.

I'm not a lawyer, but I'd be surprised if this defense was particularly robust anyway. It seems you'd just have to argue that there's some slight difference in the situations and that's why I'm doing something that guy shouldn't do. But either way, you're not taking away the correct message from his example.


I'm not sure it should really count as a "Lisp book", but The Art of the Metaobject Protocol" is one of my favorite technical books ever.

It takes some knocks for not really containing anything about how to use CLOS. Instead, it's how CLOS is built. At a higher level, it's "how to build an object-oriented language/object system from scratch" using Lisp as a vehicle.


I read this review of it by Richard Gabriel yesterday: https://www.dreamsongs.com/Files/amop-review.pdf

The review itself is really interesting, you get to learn the context around the MOP and where this book actually came from.


There is also the context of the reviewer.

Richard P Gabriel was one of the six persons responsible for the CLOS specification: Daniel G. Bobrow, Linda G. DeMichiel, Richard P. Gabriel, Sonya E. Keene, Gregor Kiczales, and David A. Moon.

Richard was also the CEO and founder of Lucid, Inc. - a Common Lisp vendor. His company developed and sold a production quality Common Lisp implementation for various UNIX systems.


Incredibly enough, this implementation still can be procured via Lispworks.

http://www.lispworks.com/products/lcl.html


The also had ported the LispWorks IDE to Lucid/Liquid CL.


For how to use CLOS there is always Sonya Keene's book.


Further, I think it should be emphasized how much there is to CLOS. I've seen a number of CLOS tutorials that stop after showing how to do in CLOS what can be done in other OO languages, and don't really indicate how much more there is, let alone show how to do those things. Keene's book does go in to this. There are a few very minor differences between what she describes and what is in the final standard though.


I think the Keene book should be avoided by all means. I don't think it is a good introduction into OOP or CLOS. My recommendation would be Peter Seibels Practical Common Lisp.


It’s “how to build and object system from an object system”. It’s the best book on bootstrapping I’ve ever read.


Which 20 Republican senators do you imagine are going to stop him?


Any, if they feel the political cost of following Trump isn't worth the benefit.

They'll make a stubborn show of defiance but in due course some deal will be struck and some defections will occur because holding the government hostage to fund a wall to keep the Mexicans out is insane. Trump may be willing to fight to the bitter end for that but I guarantee no career Republican politician is.


I think you're taking him a bit too literally. In these examples, you're not looking at simplifying anything. You're not getting rid of unneeded code. You're getting rid of debugged and stable code in favor of writing something new from scratch because fuck all knows why.


In this case, worst case, it's multiple groups of engineers all advocating for their pet projects. They can all be wrong and concerned about personal sunk costs instead of having some perspective and humility and working together to the extent it makes sense.

I gather maybe the Google advancement structure discourages doing nothing and generally being stable when it makes sense, in which case there could be plenty of improvement to be had all around.


Oddly enough, I assume the Google advancement structure values anything but stability. You launch products to get promoted. Maintaining them is for fools and losers.

Granted, I have no inside information. That just fits the externally observable information and the tiny amount of corporate politics that occasionally makes its way public.


They used to as part of their quarterly earnings reports, if I remember correctly. They stopped during the latter part of WoD when by all accounts the subscriber numbers were very low (by WoW standards).


Even local optima are often pretty good in practice.

Also, it's a very good practice to iterate through the neighbors in a random order (if you're doing next descent, for steepest descent obviously it doesn't matter).


There's another issue as well. His mapping of difficulty reaching a key isn't really the whole picture. On a conventional QWERTY layout, neither the E nor the C keys are especially hard to reach, but if you had to frequently type them successively, that would be terrible. What matters is not just where a key is in relation to your hands, but also where two keys are in relation to one other.

In grad school, I did a lot of work on the Quadratic Assignment Problem (https://en.wikipedia.org/wiki/Quadratic_assignment_problem). If you model that "key reachability" metric as two-key sequence difficulty instead, you actually get a QAP instance to solve. I built a little toy project that would look at the source text of my dissertation in LaTeX as well as the accompanying C++ source code for bigram frequencies, and I mapped out a flow matrix manually in a similar way to the author here, but including that successive keypress difficulty, and ran my multiobjective QAP solver to generate a range of keyboards optimized for my specific dissertation work.

I did this as a fun little gimmick as part of a sort of "ignobels" within my department, so the results weren't really a thing you could use. To generate a usable keyboard layout, you need to also include a ton of heuristics for things like "put all the number keys together" and the idea that you can treat "a" and "A" as the same letter, but "2" and "@" may make sense to separate, none of which I really properly handled. But I think with some work one could actually formalize the problem of finding a real layout for normal people to use.


I don't think he's at all concerned about the license. He's just saying most people won't and shouldn't do "real work" on a machine that could break at any point with no possibility for support.


That too.


I think if an x1 Carbon ran OS X, you'd see a massive number of people migrating from Macbooks over to it.


The latest-gen XPS 13 comes preloaded with ubuntu and works really well.


I have the previous xps 13 running linux now. I'd like to support them, but unfortunately, CostCo sold me the Windows version with mostly equivalent specs for like $400 cheaper than Dell had the Developer Edition at the time. I replaced the Broadcom WiFi chip for $30 and was good to go. I think I saw where the current model no longer has replaceable WiFi modules though.


Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: