Thursday, July 21, 2016

now you have an AbstractProblemFactoryFactory

msoad 13 hours ago [-]

"I had a problem, solved it with RegExp, now I have two problems"


StevePerkins 12 hours ago [-]

Heh... as a Java developer, my favorite version of that joke is where you solve the problem with Java, and now you have an AbstractProblemFactoryFactory.

from lizard's ghost

Tuesday, July 12, 2016

so this is what happened to delicious

I talked at length with Tony Aly, who is the new Delicious owner. He is not incompetent and I believe he is making a good-faith effort to get the site back to life. But it's a difficult migration to make. The site was hemmorhaging money on AWS, which made it imperative to try to move it to dedicated hosting. The code base and data store has all kinds of issues stemming from the fact that it's been rewritten so many times, and designed to work at a much larger scale than it needs to right now.

I've told Tony several times I'm eager to discuss buying the site once it finally finishes crushing what remains of his spirit, so it can begin crushing the remains of mine.

With regard to the domain name, Science Inc. explicitly declined to sell along with the site, so they could perform some kind of SEO asshattery with that domain in the future.

from lizard's ghost

is ok if u use windows..

from lizard's ghost

Tuesday, July 05, 2016


Every order of magnitude increase requires a new level of discipline. At 10^3 lines, you can do whatever you want -- all your function and variable names can be one or two letters, you don't need comments (or indeed any documentation), your functions don't need well-defined contracts because they only need to work in a few cases, etc. etc. At 10^4 lines, if you're smart you can still get away with making a mess, but it starts to become helpful to name things carefully, to add a few comments, to clear away dead code, to fuss a little over style and readability. At 10^5 lines, those things are not just helpful but necessary, and new things start to matter. It helps to think about your module boundaries and contracts more carefully. You need to minimize the preconditions of your contracts as much as practical -- meaning, make your functions handle all the corner cases you can -- because you can no longer mentally track all the restrictions and special cases. By 10^6 lines, architecture has become more important than coding. Clean interfaces are essential. Minimizing coupling is a major concern. It's easier to work on 10 10^5-line programs than one 10^6-line program, so the goal is to make the system behave, as much as possible, like a weakly interacting collection of subsystems.

from lizard's ghost