HNHacker News
TopNewBestAskShowJobs

jd

1,398 karma · joined October 2, 2008

diederik@stunf.com
submissionscomments
jd··on Ask HN: How do you use your FreeBSD desktop box?
Not a guru, but I've used it for a while. Both as desktop and server. My main gripe is that FreeBSD doesn't have a reliable filesystem. FreeBSD still dies pretty horribly after a few hard crashes (power loss, whatever).

fsck? In 2008? No thanks. Messages about possibly corrupted inodes? How should that be my problem? I can't stress this enough, one day you will wake up and FreeBSD will refuse to boot. And that day will, by Murphy's Law, be one of those days where you have to get an incredible amount of real work done.

I'm a big fan of FreeBSD, ports, and the whole "do it right" and "proper documentation" philosophy. But until they get journalling right you should probably stay away.

(also: upgrading from FreeBSD 6.x to 6.(x+1) is incredibly painful. I don't think upgrading a 7.x system is going to be much easier. Reinstalling FreeBSD gets old fast, so you'll probably just shrug and stick with whatever version you already have)

jd··on [dead]
> I don't get interrupted by having to download files and open them in another app, then close them, delete the file if I don't want it, then get back to browsing.

Really? I use acrobat reader, and when I click a link the PDF just opens instantly on another monitor. If you have to manually download and open PDF files you're probably doing something wrong.

jd··on The Shallowest Generation
Is it just me, or does the author use a lot of unintentionally funny analogies?

Anyway, I'm going to chip in on the issue of CEO pay. Many, including the author, are outraged that they're paid 500 times the wage of the average worker. But the CEO job is generally given to somebody who

a) has proven himself (5mm <= net worth < 15mm)

b) is willing to work 80 hours per week

c) is willing to pick work over family/friends, no matter the circumstances

The CEO must:

a) focus on quarterlies at the expense of long term vision (maximize shareholder returns per quarter)

b) focus on quarterlies at the expense of employees and the company itself

Aside from perhaps the prestige and power that comes with the job, it's not going to be a lot of fun. So why would somebody who's already rich be willing to do this? Money. And lots of it. Does that make them sellouts? I guess. But if working for 2 more years means the CEO can retire and sustain his current lifestyle for the rest of his life it's probably pretty tempting.

You shouldn't ask yourself - does the guy deserve 500 times the average worker's salary? Ask instead - why did it take 500 times the average worker's salary to convince him to take the job?

I think that the CEO should focus on generating true value, both in the short and long term. And I don't think that's possible when you're only held accountable for short term results. Only CEOs like Steve Jobs can work on their vision, short term results be damned. His annual salary is $1. Why? Probably just to prove his independence.

Everything boils down to incentives. Whether it's CEO pay, greed on wall street or credit cards (ab)use. People do what's in their best interest. Fix the incentives, and the rest should fix itself.

jd··on Testing JavaScript performance on Windows XP is a crapshoot, at best
No. No. No. It doesn't matter. Not one bit. Exception: for FF maintainers, opera programmers. But ordinary javascript programmers never have to worry about a ms here or there.

Let me quote again from your blog post:

This was quite odd since the tests should've taken, at least, a couple milliseconds to run and getting consistent times of "0" is rather infeasible, especially for non-trivial code.

Conclusion 1: The code _is_ trivial! Why? it takes < 64ms to execute.

Conclusion 2: The actual time spent by the code doesn't matter, because you can't notice the difference between the reported 0ms and the actual 3ms or so that it takes to execute.

Next paragraph:

Second, I was running some performance tests, on Internet Explorer, in the SlickSpeed selector test suite and noticed the result times drastically fluctuating. When trying to figure out if changes that you've made are beneficial, or not, it's incredibly difficult to have the times constantly shifting by 15 - 60ms every page reload

Why does it matter if loads 15ms to 60ms faster/slower? It's not noticeable. And once you see that the difference is roughly 15ms a quick google search will reveal it's a simple timer accuracy issue.

So why the graphs? Why test different browsers on different platforms when the outcome can't be anything else than the 60ms fluctuations you've already seen? But you knew the second you saw a single time reported as 0ms that that the time accuracy is not on the 1ms precision level, which means that they use GetTickCount or something which has a 15ms precision.

> It certainly wasn't obvious to the WebKit, Firefox, and Chrome teams who were all happily testing on Windows XP using bum tests

If they used the tests they would've noticed the 0ms results. Therefore, they either thought 0ms means it's <15ms, which is fast enough, or they tested it primarily on other platforms.

I don't believe for a second that the WebKit, Firefox and Chrome teams have done ms comparisons with tests that don't report data on the ms level. 0ms results stand out, after all. They probably are pretty smart people, and they realized it doesn't matter.

> Any performance tests are better than no performance tests

Nope. Silly performance tests are worse than no performance tests.

jd··on Testing JavaScript performance on Windows XP is a crapshoot, at best
The wrong way? My point was that you don't need to test if the results are going to be uninteresting. Benchmarking javascript is useless because it's gui level code. Even if it takes 100ms to run you don't care.

Measure browser performance.... why? Why do you care how fast your browser is? Your web apps have to run in any browser, so -if- you care you just have to test if it runs fast enough in the slowest browser.

So yes, I'm claiming that SunSpider is trying to solve a problem that doesn't exist (except for javascript compiler writers). Let me quote from the site:

"[Sunspider is for measuring speed of] parsing JSON input, a 3D raytracer, cryptography tests, code decompression"

Great. Fast javascript client-side cryptography. Just what I need.

jd··on Testing JavaScript performance on Windows XP is a crapshoot, at best
I don't get this.

Quote: To better understand the results I was getting I built a little tool that runs a number of tests: Running an empty function, looping 10,000 times, querying and looping over a couple thousand divs, and finally looping over and modifying those divs. I ran all of these tests back-t0-back and constructed a histogram of the results.

What's the point of doing this? It's a microbenchmark, and it's pretty unclear what you're measuring. Why put so much effort in writing a blog post with graphs and the whole shebang just for this?

Even if you _did_ get constant results the results would be uninteresting. The results are either uninteresting and unreliable, or uninteresting and reliable. Shortcircuit logic keeps me from worrying about reliability.

And that the Windows GetTickCount/GetTime functions have a bad precision is common knowledge. No test is needed to establish that.

I'm pretty sure Resig is a smart guy, so I'm probably missing the point here. But I really don't understand what he's trying to accomplish here, or why the results are worth blogging about.

jd··on Apple's Leopard Garbage Collector Now Open Source
Nope, lisp without garbage collection isn't feasible. Tried it - didn't work out. Let's start with an ordinary lisp implementation, and replace garbage collection with stacklocal and manual allocation. Then using a couple of examples I'll show that you end up with a monstrosity.

You can do a lot with stack-local allocation, but not everything. I think it's fair to say that a Lisp without closures is a useless Lisp.

A clever compiler can optimize something like

    (print (reduce (list 1 2 3 4) (lambda (x y) (+ y x))))
such that it works without any garbage collection. The list you create is a local variable, the lambda function is a pure function without state (no closure necessary) and reduce is also a pure function.

You might think that if you can do this, you can express almost everything without garbage collection. Unfortunately, not really.

Suppose you have `revere-list` function. E.g.

    (reverse-list (list 1 2 3 4)) # '(4 3 2 1)
We previously assumed that the list was a local variable, created as a function argument. Now reverse-list must return a copy of the list, as the original list ceases to exist when the function returns. That's a problem, because it means you have to make deep-copies of every object on function calls. No big deal, you say: a lot of languages call-by-value. Well, yes, but it _is_ a big deal. Because it means you have to introduce & and * so you can describe when you want a by-copy and by-reference assignment.

So you get a lisp with pointers. A lot of fun, but not all that practical.

   (= *(elt my-list 3) (+ *(elt my-list 3) 1))
Yes, it's exactly what you think it is. 'elt now returns a reference to a list element, that you have to dereference before assignment. Ugly, but it works right?

Oh no. It gets worse. What if you create a function that returns a reference to a function argument (stack-local!)? Segfault.

A lisp with pointers that can segfault at any point? That's it. I'm going back to C.

I've skipped a lot of steps here (I could go on for hours), so you have to read really carefully to see how every problem is a logical consequence of each assumption. Sorry for that...

I've been trying to find the perfect balance between stack-allocation (RAII) and garbage collection, and it's a lot tougher than it seems.

jd··on How can C Programs be so Reliable?
It's even worse. For top level functions it can throw the UNION of the exceptions thrown by the functions it calls. Therefore, by changing a low level function's exception signature the exception signature of all higher level functions changes too. That always worried me, but it's doesn't seem to be a big deal in practice.
jd··on How can C Programs be so Reliable?
People often write in higher level languages because they want lots of bad code fast. Almost all business applications are CRUD apps (create/retrieve/update/destroy) with some business logic, and they're generally written in C#. The app may crash when you click the wrong button, but the app is cheap to develop and the programmers are easily replaceable.

Of course I'm generalizing, and a lot of C# programmers write great and reliable code. The point is that they often don't -need- to write great code, because lousy code is good enough for all business purposes (except when the software is your product, which is rarely the case).

The second issue is that people who choose C for their projects tend to (a) understand low-level concepts, (b) care about speed / memory usage / reliability / dependencies, (c) don't consider development time that important. That you create more reliable software that way is obvious - the same programmers would create reliable software in C# (or similar language). But there aren't many situations in which development speed doesn't matter, speed and memory usage don't matter, dependencies don't matter but, for some reason, reliability is very important.

jd··on Picking Time
Like the concept, but it violates Fitts' law. ( http://en.wikipedia.org/wiki/Fitts%27_law )

I don't want to make precise movements with my mouse. Buttons should be large and margins between buttons should keep me from accidentally clicking the wrong one. The time picker fails on both counts.

Also, first picking AM/PM before you pick the hour is confusing. Add to that that the control is huge, so it wouldn't fit in any normal web forms.

Good exercise in UI design, but I hope no web-app will ever force me to use it.

jd··on Tarsnap public beta
If the technology is solid somebody else will probably create some kind of company with it.

See also: github

jd··on Making Nested Parens with My Homeboy, Donald Knuth
I wonder how many people who wear Knuth t-shirts have actually read any of his books.
jd··on How (not) to get a job at a startup...
That's definitely a valid point. Even if you had the money to pay above market rates, you still wouldn't because you know people exist who are willing to work really hard for less than market rates, if that gives them the opportunity to make a difference and build something great. In your case, you have to pick between extra runway and salary. That's a no brainer: 2 months of runway can be the difference between profitability followed by success and failing.

About the end justifying the means: Scaring off people you don't want to hire in the first place is easy. The problem is that by doing so, you're bound to give off bad vibes to people who would otherwise consider your company. Bear in mind that the people you want to hire are -by definition- in high demand. That means that they can (and should) demand a lot from you.

Just like in dating, people need only one reason to dismiss you as a qualified employer/so. Don't give them that reason.

jd··on How (not) to get a job at a startup...
In a healthy company a lot of value is created. Therefore, there should be plenty money for salaries. So, simply, if salaries are low the company isn't generating enough value or the bosses are cheap.

How is that a good thing? Of course, in a startup you can't have everything - but that doesn't change the fact that in startups the employees often share a great deal of the risk (in opportunity cost) and don't get rewarded in the same scale when it all works out. Worrying about money, especially in times like these, is perfectly natural.

And quoting somebody's email verbatim, without permission? That shows a lack of class (it's really that rude), but worse, it shows a lack of -judgment- because Auston should know he can't gain anything by ridiculing somebody's cover letter and grammar mistakes.

Don't get me wrong. I do agree that a hurriedly written cover letter that only focuses on the salary should land the resume on the no-hire pile. But why attract negative publicity to your own company? I don't get it.

jd··on Ask HN: How do you stop reading the internet when you need to work?
It's OK to expect little payoffs constantly. Split up tasks in small chunks and tick them off as you complete them. Large tasks seem daunting. Small tasks are just that "tasks". Stuff you do without really worrying about it.

Using a TODO lists when you already know roughly what you have to do can help enormously. The mundane act of ticking off a box next to a small task is enough motivation to get started on the next task.

Especially in the morning it can be tempting to "catch up" with all the HN posts, but if you go through your TODO list and see that you have to "fix link on page X" it's really easy to just do it. Only takes a minute. You know what you have to do, and it doesn't "feel" like work. And when you've started the next task automatically follows.

You can even put off simple tasks so you can do them whenever you're not feeling motivated, just to help you get started.

jd··on Ask HN: How do you stop reading the internet when you need to work?
A few things work well for me:

1. 10% rule. Whenever you're doing something and feel like taking a break do 10%-20% more. Usually you go over the bump. After fixing a couple of bugs and you want to take a break - fix one more. Just read 50 pages? Read 10 pages more before you take a break. And so on. It gets easier once you're used to it. Concentration is something you have to work on, especially when you don't really like what you're doing.

2. Music helps me get started on work, but I usually do my best work in complete silence.

3. I get distracted more easily when tired.

4. Create deadlines. If you're a deadline-junkie you may do your best work by skipping sleep the night before the deadline and working for 16 hours straight. You can't slack for more than a few minutes when you know time is running out.

5. Realize that you don't really want to read social news sites, that's it mostly a waste of time. Think of the things you'd rather do, and then do that instead as "reward" for doing something productive.

jd··on Ask HN: How to get out of a startup cleanly to start a startup?
When you start a new startup it's better to have cash in the bank, so you can estimate how much run way you have left.

You don't want to worry about two startups. It's too much.

jd··on Ask HN: How to get out of a startup cleanly to start a startup?
Trying to get as much money as you possibly can fits the definition of greed, but that really doesn't matter. You want to get as much money as you can without feeling guilty.

There are different ways to determine the worth of a hosting company. One way is to look at revenues + growth in revenues + number of customers - risks. Another way is to look at the amount of money you'll get if you were to sell, minus the effort needed to sell.

Hosting companies are worth very little when you sell them. You experienced this yourself when you bought a competitor for 60k. So by comparing the revenues + health of that company with the merged company, and you'll get a reasonable valuation. I've seen hosting companies get sold for less than $30 per customer, so the number you'll get at is going to disappoint.

If your hosting company is still growing quickly you have to make an estimate of the value of the company in a couple of years, and your total contribution to that. Since hosting companies that grow too quickly always destroy themselves growth is bad indicator of value.

The bottom line - hosting companies don't create much value and the little value they have is decimated when sold. You don't have any IP to speak of, and it's a high-maintenance environment (unless you outsource everything, but the hosting companies I know still had to deal with all difficult issues themselves). Your partner also has to find somebody else to take your place (I assume), which can cost up to a year's salary easily. All in all, your partner isn't getting a great deal here either.

As the saying goes - if both parties are unhappy the deal is fair. And that's what it looks like from here.

Postscript:

- once you leave, your partner cannot leave anymore. He can't just walk away with 70k. He might not want to leave, but knowing that leaving isn't really an option can be depressing.

- most hosting companies go kaput within the first 5 or so years. I haven't looked at the data since I left the scene, but chances are your company will be gone in 3 years. You didn't mention any problems in the OP, so I take it's all sunshine now. However, if you're leaving (partially) because of burn-out (boredom) then burn-out is probably not far behind for your partner. In that case, you'll get 45% of 150k, and he'll end up with 100% of nothing + a total burn out.

- if the person your partner hires to replace you doesn't work out - see above. Big risk for him there too.

- in his position, how would you feel about your partner leaving and having to pay him 70k? Would you gladly give him 110k (or whatever amount you had in mind)?

jd··on Windows is a Ghetto
Building an installer isn't so difficult anymore. NSIS and similar installer builders are really easy to learn and very stable. Windows has many flaws, but the whole install/uninstall system works remarkably well in practice.

It's far more difficult to create RedHat RPM packages and Debian packages and so forth.

But 20% of all manpower? That seems a bit much.

jd··on The Dumbest Generation Is Only The Second Dumbest Generation
1.

Yes, absolutely. When somebody else makes the same mistakes I do I can see exactly what's wrong. If that person were to explain the same thing I would probably not understand. Or I would understand, but then it wouldn't have a lasting impact. Being indirectly confronted with your own stupidity/flaws is remarkably effective. It has that "damn, I can't believe I'm such an idiot" feel to it, which overrules the normal reaction to any statement: quiet skepticism "really, hmm, you could be right, but..." and you don't really change. Even if you're convinced what you're doing is wrong, it doesn't shock you, so it doesn't stick.

2.

People are horrendously bad at introspection. Every person believes he's more introspective than most other people, and less likely to adopt opinions based on feelings instead of facts. Logically impossible, as not everybody is equally introspective there must be many people who incorrectly deem themselves introspective. In essence, you are a poor judge of your own ability to introspect. Because there are so many stupid opinions on the internet it's easy to feel superior to others. Stupidity is much louder on the internet than anywhere else. Partially because any statement sounds stupid when you don't make an effort to understand which point the author is trying to make. Suddenly it's about -your- interpretation of somebody's opinion, and no longer about -understanding- the opinion and the merits thereof. So, reading stupid opinions leads to feelings of superiority, which leads to narcissism, which leads to easy dismissal of sensible opinions (less effort), which leads to more narcissism.

3.

So forums like these are, I feel, part of the problem. Here I am, spending far more time writing this reply than I spent on reading your original message. In fact, I started writing this before I fully understood which point you were trying to make. I had to rewrite the beginning of this all just to make what I'm writing -remotely- relevant.

My point? There isn't any. I'm just writing this to feed my narcissism.

jd··on Ask HN: how quickly do you answer support emails?
Of course, prevention is better than the cure. No argument there. But no matter what you do, you will still receive some support requests. And I'm curious how quickly people here feel obligated to respond to them.

It's quite expensive to reduce the risks of disaster, and funds are tight. Mirrored servers + high level SLA costs thousands of dollars. We can't spend that to soften the blow of a disaster, which has only a 5% chance/yr per server or so of occurring.

jd··on Ask HN: how quickly do you answer support emails?
No different levels of support: best-effort is the best we can do. This means that sometimes it may take a while for us to get respond to somebody, given that we have to sleep occasionally.

I'm mostly curious how other people deal with it. Do people carry a laptop everywhere so they can plug in whenever something happens? Or do people just hope for the best and deal with problems only during "office hours"?

jd··on Shut up and do the impossible
When people believe that a solution to a problem exists, they are much more likely to find a solution. Take for instance http://www.snopes.com/college/homework/unsolvable.asp

Hypothetically: what if Eliezer never ran the experiments? What if he just wrote the report to convince a bunch of people that a solution does indeed exist, to make it more likely somebody will find a solution and email it to Eliezer (to check if it's the "same one")?

It fits the facts. And this meta-experiment is more interesting than the experiment itself. After all, given enough time the AI will eventually run into somebody who _will_ let it out (AIs live a long time), therefore it might as well be you, especially considering the AI will reward you for releasing it. Alternatively: the fact that the AI exists proves that people are capable of creating superhuman intelligence, so eventually a "bad" person will create such an AI and release it. In essence, the existence of the AI dooms mankind. "I think, therefore I am", is all the AI needs to persuade the captor to let it out.

So the meta-experiment is the interesting one. See what other people come up with.

jd··on Angel investor: Want my money? Here's my checklist
$25 million is a lot of money, but so is $1 million in funding. Most web 2.0 companies need no more than $100k or so to get to profitability, and can easily exit at $2.5 million. Same ratio, but it sounds a lot more achievable. So the only real issue is scale.

Bear in he's talking about enterprise software (i.e. support contracts, custom software, consultants). When you start doing custom work and get paid by the hour your revenue goes through the roof. So you can get to a $25 million valuation pretty easily, if you're willing to be a software/consultancy hybrid.

jd··on Where's the task management category killer?
That is great, but it doesn't work well for teams. Paper also attracts coffee stains, so you tend to write a new list every other day. Gets tedious quickly.

I really think a good software solution is the way to go. (Disclaimer: my startup is working on one)

jd··on Story of Phil Katz (PKZip)
You've raised a lot of interesting questions, and I cannot possibly respond to them all.

I think you'd enjoy The Paypal Wars (Jackson). It's about how Paypal survived unfair fights with much bigger companies. Fascinating story. And it shows how sometimes there are options that lead to better outcomes... you just have to be willing to fight hard.

jd··on Story of Phil Katz (PKZip)
The point was that Katz (allegedly) took the source code of arczip, improved it, and called it pkzip. This was in violation of the license agreement.

If you then have to start a lawsuit against the person who has stolen your code (to protect your business), and get hate mail instead of fanmail motivation to keep fighting vanishes. This is what happened to the arc people. Coding was fun, fighting legal battles... not so much.

Phil gave something away that wasn't his. He made a lot of money by selling the same thing to businesses. He destroyed a family business in the process.

It's not about PR. It's not about which product is better. It's about right and wrong. If the video is accurate then what Phil did was pretty despicable.

jd··on Story of Phil Katz (PKZip)
That's her.

What happened? She got death threats because she said something about bloggers having the right to moderate/delete comments. From what I gather, somebody posted an anti-Sierra message and then a bunch of people (who didn't even know her) started harassing her. It makes no sense.

Quote:

It's not clear what provoked such a vitriolic response to Sierra. She attributes it to comments she made a year ago in support of bloggers' rights to delete comments on their own blogs.

Reaction to Sierra's announcement was swift and polarizing, with many people remarking on the viciousness of the commentary, and others defending the original posts on meankids.org as non-threatening satire.

http://www.wired.com/techbiz/people/news/2007/04/kathysierra

jd··on Story of Phil Katz (PKZip)
That same sentence stuck a chord with me too. We all know it's true: perception trumps reality. In this case the guy had to chose between fighting a PR war (which he didn't want to do - he wanted to win on merit) or losing everything he worked so hard for. Harsh.

Don't get me started on hate-mail. People see it as a joke, as a bit of harmless fun. But vicious letters can do very real damage. Look at what happened to Kathy Sierra and so many others...

jd··on Story of Phil Katz (PKZip)
This clip (20 mins or so) shows how the authors of Arc feel about it all. It is probably a bit biased, but it looks like Katz really hurt some people.

http://www.esva.net/~thom/arczip.wmv

← PreviousPage 7 of 8Next →