HNHacker News
TopNewBestAskShowJobs

IsaacSchlueter

3,218 karma · joined May 22, 2008

I'm isaacs from Node and npm and JavaScript and stuff.

I don't look at this site much.

http://blog.izs.me/

https://bsky.app/profile/isaacs.bsky.social

https://www.reddit.com/user/isaacs_/

submissionscomments
IsaacSchlueter··on How do I write so much, you ask? Well, glad you asked
"Branches of science", eh?

I kind of think the moral of the story here is: "Wanna write a lot? Write crap! That's why I'm so awesome!"

It's true, of course, to an extent. "Writing crap" is absolutely essential in any creative endeavor. Otherwise that crap gets impacted, and the good ideas can't get out.

However, the editing and refinement process is at least as important, I think. If all you do is just write a lot, most of it being bad, it might just all stay bad. You have to be trying not to write crap, knowing that's what you'll often end up doing, and be ok with that.

It's the same in software development. Over-reliance on design can lead to analysis paralysis. Software is best when there's code first, and analysis afterwards.

It's probably worthwhile to have a dev branch and release branch in blogs, for the same reason as it makes sense for code. Friends and regulars can see the just-released content, but the mainstream page doesn't show anything that hasn't been vetted and carefully edited.

IsaacSchlueter··on Experimenting with Node.js
Why not something like this?

    function routine () {
      doIOForMe(function (resp) {
        doMoreIO(resp, function (nextResp) {
          transform(nextResp)
        })
      })
    }
    
    // or with a little helper function:
    
    function routine () {
      chainTogether
        ( doIOForMe
        , doMoreIO
        , transform
        )
    }
The "Step" library from Tim Caswell (creationix) lets you do a LOT of very interesting parallel/serial stuff. In npm, I have a few helper functions that make it easy to do serial "this then that" stuff.

It would be nice to have something in the language that does this. Maybe something for the Coffeescript guys to check out. For me, plain old JavaScript is enough, I guess.

IsaacSchlueter··on Multi-core HTTP Server with Node.js
Well, at least it's an elephant we're all talking about a lot. It's not as if anyone's ignoring that.

If your DB is dog slow, you can still handle wildly high concurrency with node. It's just that the user will feel the slowness, and your DB will struggle. But at least your server won't be unable to serve requests while it's waiting for IO.

Of course it's still on the developer to architect their system for success. Node just takes one unnecessary bottleneck out of the equation.

IsaacSchlueter··on Experimenting with Node.js
I've heard this before. "Oh, callbacks are fine for little things like this hello world demo, but for Big Programs, you need (threads/coroutines/etc.) because they're Serious Business."

That might be true. Maybe for Big Programs, something else is better. But I think the problem is that setting out to build a Big Program for Serious Business is Doing It Wrong.

The best frameworks (or, at least, my favorite frameworks) are collections of small tools with consistent interfaces and interchangeable parts.

If you can manage callbacks for a 100-200 LOC program, then you can build a Big Program out of such modules with a little bit of forethought. Instead of setting out to write a Big Program, why not try to figure out how to express your Big Problem in terms of a bunch of Little Problems, and then come up with a way to have Little Programs assemble.

Then, assemble the Little Programs to solve the Little Problems. There is no solveable Big Problem which cannot be broken down into some finite set of Little Problems.

Callbacks make it natural to solve problems in this manner.

I actively develop a several thousand line NodeJS project. It's quite nice, actually.

IsaacSchlueter··on Poll: Semicolons in JavaScript
My comment on the subject:

http://groups.google.com/group/nodejs/msg/de4630fa8953b183

IsaacSchlueter··on Clojure's edge on Node.js
That's not really a valid test. NodeJS can easily make use of multiple cores with child processes, but by design, it's a very low-level API, so that stuff isn't used by the HTTP server by default. In other words, it doesn't assume you want to use multiple processes for your HTTP server. Maybe you want to use them for something else. (Like, if you have an HTTP server and an IRC server sharing the same box, and you want to make sure they are isolated from one another, or something.)

Check out http://github.com/kriszyp/multi-node or http://github.com/extjs/Connect for examples of web servers that will blow Clojure out of the water in this benchmark.

When leveraging multiple cores, NodeJS is closer to nginx in terms of performance than it is to Jetty or Django. (Of course, nginx uses almost no memory, and NodeJS has this big honkin VM juggling JavaScript contexts, so it's not as space-efficient.)

IsaacSchlueter··on The worst graph in a decade?
Throw this in your /etc/hosts file:

    127.0.0.1 spa.snap.com
and then just make sure you don't serve obnoxious mouse-over previews to yourself :)

Here's my full ad-block. I just add a hostname to it whenever I see an obnoxious bit of stuff on a webpage:

    127.0.0.1 spa.snap.com ad-yt-bfp.doubleclick.net doubleclick.net m1.2mdn.net ad.doubleclick.net media.fastclick.net cdn.fastclick.net ds.serving-sys.com spe.atdmt.com content.dimestore.com speed.pointroll.com img-cdn.mediaplex.com clk.pointroll.com img-cdn.mediaplex.com pagead2.googlesyndication.com pagead2.googleadservices.com pubads.g.doubleclick.net partner.googleadservices.com tenbux.somethingawful.com somethingawful.crwdcntrl.net content.yieldmanager.edgesuite.net kona.kontera.com core.videoegg.com servedby.advertising.com uac.advertising.com at.atwola.com bannerfarm.ace.advertising.com view.atdmt.com ads.forbes.com bid.openx.net d1.openx.org edge.quantserve.com altfarm.mediaplex.com ad.uk.doubleclick.net shots.snap.com snap.com resources.infolinks.com fe.brandreachsys.com www.ttzmedia.com lapi.ebay.com cache.blogads.com mm.chitika.net techeblog.pgpartner.com cdn5.tribalfusion.com www3.adservenow.com ad.z5x.net clicktorrent.info this.content.served.by.adshuffle.com ads.adsonar.com js.adsonar.com web.adblade.com optimized-by.rubiconproject.com content.pulse360.com cdn.optmd.com as.casalemedia.com ad.ca.doubleclick.net ilinks.industrybrains.com context3.kanoodle.com adsyndication.msn.com technology.msnbc.us.intellitxt.com an.tacoda.net a.rad.msn.com b.rad.msn.com c.rad.msn.com d.rad.msn.com mjxads.internet.com ads.adbrite.com tag.contextweb.com contextweb.com media.contextweb.com cdn.eyewonder.com cdn1.eyewonder.com amch.questionmarket.com  iacas.adbureau.net portal.mxlogic.com ads.revsci.net js.revsci.net images.intellitxt.com ads.cnn.com imagec12.247realmedia.com im.afy11.net ad.afy11.net afy11.net c5.zedo.com clickbangpop.com ads.clicksor.com clicksor.com pages.etology.com ads.okcimg.com okcupid.tags.crwdcntrl.net coop.crwdcntrl.net cdn.crwdcntrl.net d7.zedo.com ads.yimg.com us.a2.yimg.com
IsaacSchlueter··on Those Aren’t Fighting Words, Dear

    Of course she has tried that and
    of course he couldn't explain what was wrong.
Ah, the laziest excuse for bad behavior ever. "I tried that, and it didn't work!"

He couldn't explain what was wrong, but he was trying to explain how he felt. These things are complicated. And rather than try to help him explore this problem, she refused to listen, because his feelings didn't jive with her worldview.

IsaacSchlueter··on Those Aren’t Fighting Words, Dear
In other words: The third step is realizing that you have no idea how many steps there are.
IsaacSchlueter··on Those Aren’t Fighting Words, Dear
So why wasn't she helping him to process this pain and mourn his losses rather than simply ignoring his pleas for help?

"Giving someone space" is not the same as just telling them you don't believe them and turning away from them.

I remain convinced that she's a narcissistic person who doesn't know what love is, and this story is heartbreaking for all the wrong reasons.

IsaacSchlueter··on Tradebot had zero trade-lose days in last 4 years
How much more do the typical "real" investors know about the products they invest in than the computer programs?

In other words, if we rule out insider information, isn't all trading, on some level, "algorithmic"? The real-ness comes from the financial statements of the corporations being invested in.

IsaacSchlueter··on Those Aren’t Fighting Words, Dear
I think she's lauded as wise because this story gives the reader an easy bromide disguised as deep understanding.

She never once in this story actually sat with her partner and tried to understand what was going on with him. She gave him an answer, made a few demands, and flat out refused to listen.

Reading this story broke my heart. I couldn't believe her utter weakness and lack of compassion.

The truth is scary. Love is scary. Change is scary. These things loom over our comfortable lives threatening to expose us to the changes going on outside our realm of control. You don't own your lover, and the truth may one day be that they're unhappy, and need to leave. That which can be destroyed by the truth, should be.

If this is indeed a true story, I sure hope the guy has since managed to find a good divorce attorney.

ADDITION:

    I’d finally managed to exile the voices in my head
    that told me my personal happiness was only as good
    as my outward success, rooted in things that were
    often outside my control.
This is a huge red flag.

Whenever some says that they've "finally managed" to fix themselves in some major way, be very suspicious. It doesn't work that way. We keep our patterns, and they find new ways to manifest until we learn through repeated painful experience to turn them to our benefit some of the time.

There is no switch.

Her happiness was still clearly very much rooted in her "successful" marriage, her ability to provide a traditional two-coupled-parents environment for her children, etc.

The first step to Happiness is admitting one's neuroses.

The second is admitting that the first didn't make them go away.

IsaacSchlueter··on Still hatin' on git: now with added Actual Reasons
We all need to throw a tantrum sometimes when things don't work the way we like. It's ok. Let it out. We're computer users, we understand.

...feel better?

Now shut up and learn how to use your tools.

IsaacSchlueter··on Still hatin' on git: now with added Actual Reasons
The point being that the author isn't looking for solutions, but rather just wants to bitch?
IsaacSchlueter··on How a job is created
As much as we spend on medical care that doesn't make us healthier, we spend more on wars that don't make us safer.

I'm a bit of a die-hard let-the-bozos-starve sort of wack-job libertarian. So, what's a bigger infringement of rights? Take hundreds of billions of dollars from US citizens, and spend it enforcing arbitrary rules on a populace that doesn't have representation or a vote? Or take billions from US citizens and spend it patching up said citizens when they fall down or get sick?

I hate taxes. Really, I do, as much as anyone you'll ever meet. And I hope that the market could someday solve this problem more efficiently. But I also think that killing people is a lot more evil than healing people. I voted for Ron Paul largely because he was the only candidate who said outright that he would shut down all unwanted military bases in his first year.

Dismantle the military empire, and you've got money for medical care. Additionally, adding a base level of safety net could be a disruptive force that allows smaller and more agile companies (ie, in the 1-10 employee range) to get more done with less overhead, which is exactly the sort of thing that needs to happen if stuff like this is going to be solved cleverly.

Come on, we're hackers, right? Think about it. This is a complex problem with a ton of moving parts, and that's kind of what we do, isn't it? So, apply the same maxims that serve you so well in dealing with software:

Measure before you optimize. Solve the big problems first. Patch the in-production product, and THEN design its replacement. The perfect is the enemy of the good.

IsaacSchlueter··on How a job is created
It does affect your credit, in some cases, even IF an insurance company steps in (or fails to).

I got in a car accident in 2000, other driver at fault. Their insurance company agreed to pay the medical bill. I didn't realize until 3 years later, when the collection agency tracked me down, that they never did. That crap finally fell off just a few years ago, but cost me who knows how much in added interest rates over the years.

Not having health insurance is pretty stupid, even if you're healthy, young, broke, and in college. If you're starting a company, it's just completely irresponsible.

IsaacSchlueter··on Avatar: The Holocaust We Will Not See
Holy crap, I can't believe this. Let me say this for the record:

The slaughter of Native Americans by the Conquistadors was a terrible thing. Awful. Tragic. An abomination.

Also, and completely not taking anything away from the awful abominableness of that terrible tragedy, the Native Americans had lots of other problems with their culture, and were in many ways, quite savage.

The Conquistadors had really good food, and the technological know-how to cross the oceans, which are both quite good and important things.

Being a murderer doesn't mean your ships aren't great. Having great ships doesn't make you less of a murderer.

My point is that you can't just say "they did this awful thing, therefor everything about their culture was horrible".

My point is also that you can't just say "they had this awful thing done to them, therefor everything about their culture was better."

We can judge the act as bad without thinking that it somehow pollutes everything that is good about the culture that did the heinous thing.

We can also judge the act as bad without thinking that being the victim of a heinous act somehow erases everything that is bad in the victim.

The real world is complicated, and all-or-nothing thinking is irrationally and unforgivably lazy.

IsaacSchlueter··on Avatar: The Holocaust We Will Not See
Let's say there are two murderers, Frank and Bob. Frank murders Bob. Is Bob therefor less bad than Frank?

What if Bob had murdered 1000 children, and Frank wasn't a murderer until he murdered Bob?

Does being a victim cleanse your sins?

IsaacSchlueter··on Avatar: The Holocaust We Will Not See
I'm not defending rape, pillage, or plunder.

I'm defending rationality, and criticizing the all-or-nothing cognitive distortion.

IsaacSchlueter··on Avatar: The Holocaust We Will Not See
You missed the point, and then made exactly the error I was pointing at. And you did so in a way that gets very close to Godwin's Law without quite invoking it. Nicely done.

I'm not suggesting that Hitler's good roads made the holocaust less bad. I'm suggesting that the Holocaust didn't make the good roads less good.

Things aren't either all good or all bad. That includes the Conquistadors, Hitler, the Nazis, your children, a puppy, the Na'vi, the Native Americans, and everyone else.

IsaacSchlueter··on Avatar: The Holocaust We Will Not See
This article, and many of the comments here, hint at a deeper and more interesting phenomenon: the need to have things be either all good or all bad. That is, either (A) western civilization is good, and the things it has done were good, and the things it values are good values, etc., or (B) it's bad, and the things it has done were bad, and the things it values are bad values, etc.

Once this dichotomy is accepted, any evidence of goodness is proof of A, and any evidence of badness is proof of B. If A is accepted, then nothing can be bad, and if B is accepted, then nothing can be good. You get one guy saying "Medicine good!" and another saying "Slavery bad!" and they shout at each other forever.

In fact, A and B are both all-or-nothing cognitive distortions.

It's quite possible for the Native Americans to have been savages, and the Europeans to have been savages (with better weapons), and for one group of awful people to have murdered another group of awful people.

Losing doesn't make someone good, and neither does winning.

Having nice things today doesn't mean that genocide 400 years ago was a good idea.

Being good doesn't mean we came from good people or entirely good traditions. Neither does being bad.

Having some good traits doesn't mean we have nothing left to learn, or that we can't get better. In fact, good people can even learn things from bad people, or good cultures can learn things from bad cultures. Even if modern western culture is, on the net, much better for humans than aboriginal American culture, we can still probably learn a lot from it.

There's a lot of richness between these blacks and whites. Perfection is not required for goodness.

IsaacSchlueter··on [dead]
So, is no one watching those xray machines, or is it perfectly ok to have toddler skeletons in your luggage?

Security theater!

IsaacSchlueter··on Ask HN: Should one buy the N1 ?
The Motorola Droid is pretty awesome. If you want to support the Android movement, that's just as good. Also, if you like pull-out keyboards with real buttons, then that's pretty nice.
IsaacSchlueter··on Thinking of applying for a job at Google. Any tips or feedback on my résumé?
Hm, "protégé, émigré, née, and élan" all bother me, too. The diacritic means "pronounce this", imo, but English is as she is spoke.

Yeah, it's the web, it's probably safest to stick to ascii ;P

IsaacSchlueter··on Thinking of applying for a job at Google. Any tips or feedback on my résumé?
Yeah. It's spelled "resumé" or "resume", not "résumé". (That would be pron "ray-zu-may" rather than "reh-zu-may".)
IsaacSchlueter··on I am the Coin (Puzzle consisting of 20,000 custom minted coins)
You could also read the vertical text if you want to think ever so slightly less outside the box ;)
IsaacSchlueter··on Query DNS via a RESTful HTTP interface
Please serve JSON with the application/json content-type, not text/html.

If you want to debug it more easily in a browser, you can install the JSONView Firefox extension. It's quite handy: https://addons.mozilla.org/en-US/firefox/addon/10869

IsaacSchlueter··on Mac OS Evolution: From System 1.0 to Snow Leopard
Looking over these things, I realized why the Mac platform is not properly metal. Its volume only goes up to 7.
IsaacSchlueter··on The Harry Potter Economy
Heh. When I saw the title, my first thought was Srsly? An article on HN about Gringotts!?

(ref: http://en.wikipedia.org/wiki/Money_in_Harry_Potter#Economy)

IsaacSchlueter··on No Waiting Room
Oh, I'm sure that there are unintended consequences in any system that complex. But I'll tell you from unfortunate personal experience, if you go to an ER in the middle of the night in any American city, you'll see a crowd of people in the waiting room. Most of them are uninsured and poor, and thus don't have a doctor to go to for routine things, so they go without medical care until it is an emergency.

It's not efficient.

← PreviousPage 8 of 22Next →