HNHacker News
TopNewBestAskShowJobs

ndl

181 karma · joined February 10, 2010

submissionscomments
ndl··on A Solution of the P versus NP Problem?
Also interesting: if you look at the acknowledgements of Hauptmann's paper (at the end, just before references), he says, "I would like to thank Norbert Blum for carefully reading preliminary versions of the paper, for helpful remarks and discussions, for his guidance and patience and for being my mentor." This means Blum knew about this past attempt and presumably thought it correct enough to put on arXiv. I assume from the current paper that he has changed his mind since then.
ndl··on NP-complete problem solved with biological motors
Having worked worked in both quantum information and biology, I have a few things to say about this article...

1) The 1st paragraph really annoys me. Quantum computers don't solve NP Complete problems by trying every solution. This is a common misconception. In fact, it's widely believed that quantum computers wouldn't solve NP-Complete problems in polynomial time, though they may get a moderate speedup over classical computers related to their superior searching capability.

2) The biological computer in the article also doesn't solve NP problems in polynomial time. Rather, it proposes a highly parallel machine that divides runtime by a very large constant. The real claim is to make a low-energy parallel processor that makes it easier to throw lots of processors at the problem. It does not alter the complexity classes. The linked PNAS article states, "it is inherent to combinatorial and NP-complete problems (assuming P != NP) that the exploration of the entire solution space requires the use of exponentially increasing amounts of some resource, such as time, space, or material. In the present case this fundamental requirement manifests itself in the number of agents needed, which grows exponentially with 2^N. Effectively we are trading the need of time for the need of molecular mass." Unfortunately, the experiment hasn't quite got this far, since "the error rates of this first device are too large for scaling up to problems containing more than ∼ 10 variables." It may constitute a step in the right direction, though.

3) The popular science article (as opposed to the original research it links to) is probably too focused on trying to make this about P vs. NP and misses the actual accomplishment: that the researchers can control a microbiological system outside of their own brains well enough to compute with it. This is pretty cool and may be valuable progress in nano/biotech even if it doesn't end up being a viable computer.

ndl··on Ask HN: Freelancer? Seeking freelancer? (July 2012)
AVAILABLE FOR FREELANCE - NYC or remote - full stack web developer with scientific data analysis experience

-Scala/Akka/Play/Liftweb/neo4j/Java

-Python w/ Django

-PHP, C/C++, Nvidia CUDA

-HTML5/CSS/Javascript

See here for more, including contact info: http://fearofc.com/?page_id=19

https://github.com/Fear-of-C

ndl··on Locality-sensitive hashes are designed to cause collisions and are useful
I recently had some ideas about how to use the concept of locality-sensitive hashes with thread/worker pools that share locking resources. Basically, it's useful when want things which are going to take write locks on the same resources to end up on the same thread, since otherwise you are just needlessly blocking up extra workers waiting for other workers to finish. Also, in the case of having multiple actors with independent task queues, you can send tasks using a particular resource to the same queue, so that they will be processed in the same order they were received.

There are probably better ways to do this in most cases, but I thought it an interesting idea.

ndl··on Cheap GPUs rendering strong passwords useless?
Hopefully, the hashes are physically secure and accessed in a way that would require a great deal of human effort to steal. If that is the case, then yes, you can control the login process.

The technique in the article is relevant when one has the hashes and wants the plaintext (and according to some here, still easy to mitigate then) - if you're guessing a web login, different game.

ndl··on What's the canonical retort to “it's open source, submit a patch”?
These terse responses are always open to misinterpretation, especially by non-technical users who may not fully understand open source. That's the problem. "We have a backlog, but you're welcome to contribute to speed things up," or "I do this as a hobby, so take it or leave it," at least expresses some reasoning.
ndl··on What's the canonical retort to “it's open source, submit a patch”?
For paying a bounty, yes, assuming it can be arranged in a timely fashion.

For the latter, probably not. Assuming that for whatever reason I cannot write the patch myself, I do not have the time to start a new organization every time I encounter a new bug in some project. And I would guess that most ordinary consumers don't either.

This is not supposed to be a necessarily snarky response. Sometimes, an open source project exists, and it's not for everyone. The people behind the project should realize that every feature they choose not to include cause the software's value proposition to cease to exist for some users. It is up to them what to prioritize, and up to me whether using their software is worth the time of getting a patch committed.

Of course, my operating assumption here is that they want to hear about bugs/feature requests, and so it is worth something to them that I would bring it up in the 1st place. But I rarely ever make new feature requests. Usually this is in response to an evangelist telling me that I should switch to their platform, and my responding that it does not replace a current proprietary solution.

ndl··on What's the canonical retort to “it's open source, submit a patch”?
"Unfortunately, I don't have time to learn this system and work my way through your review process. I think I'll have to buy [insert (possibly proprietary) alternative] for now. Best of luck with the project."

For the record, I have written a couple patches and released open source code before. I say this after years of trying to convince all my friends to switch to Linux, and finally coming to terms with the fact that even I still have to keep a Windows boot for certain occasions.

ndl··on It's Time To Kill New User Confirmation Email Links
Compounding this problem, conventional security wisdom is that you should never acknowledge unsolicited email, because the spammer might be using a fake unsubscribe link to confirm your email address is real. So a system that requires manual unsubscription this way will actually punish accidentally subscribed users for following good protocol.

Furthermore, if the "confirmation" email winds up in a spam filter and the user never sees it, subsequent emails will still go out and probably be auto-marked as spam.

ndl··on Create web apps in JavaScript right from your browser
I have Firefox "3.6.16pre," through Ubuntu.

When I try to access the app, it tells me that my browser isn't supported and sends me to mozilla.com to download... Firefox 3.6.15

Version check bug?

ndl··on Ask HN: My co-founder bailed on me What do i do now?
You should still check this carefully. It would suck to find out after you have started making money that you're about to get slammed with litigation.
ndl··on Ask HN: My co-founder bailed on me What do i do now?
You can build stuff. In this economic climate, that gives you an advantage in cofounder negotations, as there's a huge supply of unattached business people floating around.

I've been in a vaguely similar position. Don't freak out, and don't think of yourself as desperate. Don't settle. Don't rush things either. University is a great place to meet people who could become cofounders, so meet people.

ndl··on Moving on from iPad "office productivity" apps
From my time as a volunteer high school tech support helper, I remember the first year that Dell shipped us laptops without the external floppy drives. This was annoying to many of the old-timers who had established techniques around booting from a floppy.

We got over it.

We don't understand touchscreens well enough yet. We are using an old metaphor (the keyboard) and porting it completely literally. We might never replace the keyboard fully, but surely there is room to innovate.

ndl··on Poll HN: Are you more likely to apply to YC now that you could get $150K?
With the huge amount of publicity and increased likelihood that more older entrepreneurs will apply, the probability of acceptance for some teams may decrease so much as to reduce the average return on investment. $150k seriously opens the space to entrepreneurs with a family to support and may draw out people who were previously hesitant to turn down a 6 figure salary. If experience grants a significant advantage, the just-out-of-college startups may find their acceptance probability approaching 0 and jump ship for smaller, easier sources.

I still plan to apply for this round but shall monitor the kind of startups YC funds in the future to determine how the probabilities change. It depends on how the selectors respond to changes in the applicant demographics.

ndl··on [dead]
I've never sold a company, but I've dealt with a couple of pretty questionable cofounding/employment contracts lately, and making a deal seem "very much like a standard-fair offer" seems to be an old trick. I had someone tell me they'd been using an agreement for years when there was an obvious typo and font change to show me it had probably been altered at the last minute.
ndl··on Poll: Have you ever applied to work at Google?
I applied for internships at both companies. Google actually mentioned in their rejection email that I should feel free to ask questions - so I did. No answer.

With Facebook, I at least had a phone interview and could run post-mortem on what I might've messed up there. Google appeared to just toss my resume down a black hole.

I later decided that really, I didn't want to be a programmer, I wanted to found a startup. I was still in school and not 100% sure of myself at this point, so I applied to 1 programming job at a small place in Connecticut. I got a phone interview and then a rejection. I blamed my "failure" then on my lack of interest probably showing through.

Sadly, I had the same null feedback experience with many seed funders that spring. Most of the time it was a black hole. 2 (Lightspeed and IO Ventures) of them gave a brief explanation, which matches some (but not all) of my own post-mortem analysis. I think that given the high probability of rejection, rejection feedback significantly increases the value of applying.

While I don't think rejection from a place like Google is necessarily "random," I would certainly agree that it rarely provides actionable info.

ndl··on Always pay your web developers
I'm still not sure why I upvoted this. I think because it was surprising - high entropy. I'm not sure if I consider this "right," but you have definitely made waves.
ndl··on Ask HN: Why do startups get acquired for a cost way more than the revenue made?
My first hypothesis is that it's a question of comparative opportunity cost, rather than absolute cost.

When a company gets very large, it usually struggles to keep innovating under inertia. Trying to build in completely new directions becomes both necessary and difficult. Buying a startup is often cheap compared to trying to fork an existing team to build new things. Furthermore, the startup's business model is already partially proven by time of acquisition - so they are buying some certainty compared to assigning a team to generate new ideas.

Another hypothesis is that with the resources of a large company behind it, the startup may grow very fast. Adobe seems to be good at this. Other companies don't seem as good at managing post-acquisition.

I have never been in or acquired by a large company, however, so what I say should come with a grain of salt.

ndl··on Fully functional adults with perfect ("endless") memory
What surprises me (and makes me most skeptical) is that they can remember days by date. Did these people actually know what the date was every year of their lives? This implies to me that it is not just a camcorder-like memory that these people possess, but an efficient, numerical search ability on those memories. It makes me wonder how much one could duplicate this ability by purposefully associating numbers with days in a hierarchical structure (analogous to building an explicit tree structure on them).

Also fascinating to me is how this links with OCD-like behavior. My memory has always been considered very good (though not like these people), and I had extremely mild OCD during my preteen years, which changed its form when I became a teenager until I stopped manifesting most symptoms.

I also wonder what would happen if these people were asked to gather days by an arbitrary filter. For example, on which days during 1999 did it rain? Would they have to step through day-by-day and check each day, or would they be able to instantly run through the rainy days? The latter seems almost too powerful.

ndl··on Should you take a pay cut to work at a startup?
This is an attitude that some recruiting startups like us all to believe, but even as a naive and inexperienced 22 year old, I think it's dangerous. I've had a startup implode, and it's nasty in ways one never expects - joining a startup is one of the easiest ways to ruin a relationship. You may love the work you expect to do, but a startup will throw you curveballs until you are sick of them. If you are willing to take crummy compensation because you love the team, think about what happens when they have an opportunity to discard you like used tissue - if they don't think you're worth a decent equity stake, they probably won't hesitate to.

You have to ask yourself if you couldn't gain better experience by a) working for a big company b) going to grad school c) founding your own startup. There might be cases in which the underpaying startup job really is the best next-stage career advancer. Even if this is true, read any non-compete agreement very carefully. I've had people shove non-competes in my face before telling me what the company actually did (so I could not compete with the entire industry? No thanks).

I would also not go in assuming that the company will be the next Facebook. Find out how the founders and investors plan to exit, and decide if that's acceptable to you. Furthermore, make sure you can deal with failure.

I think going in with realistic expectations and a clear head is just as important to the startup one wishes to join. I suppose there are some startups (many in NYC) whose goal is to suck in naive techies and dump them when they burn out, but most probably want to build a real team. If you sign something based on unwritten expectations, you are setting up for resentment and conflict when those expectations go unmet.

I probably sound overly pessimistic now, but I don't mean to be. Joining a startup can be a great opportunity in innumerable ways. I still intend to launch, even after some of the worst months of my life. Many of my friends who shared this sentiment no longer do. I think some had naive expectations about the lifestyle, how quickly we'd all be rolling in money, and what being an "entrepreneur" would look like to the rest of the world.

ndl··on Prof Gives Lecture to Prove He Knows Students Cheated; Over 200 Students Confess
1) Many of the students probably received the test from their peers and did not know that it had come from a private test bank. I seriously doubt 200 people independently and individually broke into the same test bank, unless it was actually open to students, in which case it was as much fair game as the rest of the Internet. There are plenty of universities that keep student-accessible test banks and records of old exams (including the two I've attended), so many students probably assumed it was from that type of source.

1.5) Also note that the concept of a "test bank" that is supposedly inaccessible to students is not entirely common knowledge. We don't know how easily accessible and/or clearly warned this information was.

2) I already said that the students were wrong not to mention that they'd seen the test.

ndl··on Prof Gives Lecture to Prove He Knows Students Cheated; Over 200 Students Confess
Some other threads (and news articles) mention a video clip in which the professor claims he will write the test himself. By doing so, this professor implicitly declared the test bank (and everything else on the Internet) fair game for studying from.

The students probably messed up big time by not reporting that the test was publicly available first, but I think we're missing some important facts and only seeing one man's edited version of events here.

ndl··on CL or Scheme?
I'm a huge fan of Scheme. Not so much because of the language itself as for its ubiquity. You can find a Scheme interpreter for almost any platform, and for those that don't have one yet, it's actually tractable to implement an interpreter yourself (in some other language).

It's also a very elegant and beautiful language. At the end of the day, though, your customers care whether your product is beautiful, less so whether the code is beautiful.

I've never used CL.

ndl··on Reporting a bug on a fragile analysis
Adding seemingly trivial things to code can sometimes throw off performance entirely, by disaligning cache tables and such. It's not always cheating.

That said, if this is a pure bug, it seems pretty pathetic. For one, it proves that the engine is not robust. For another, it probably means that someone spent hours upon hours tweaking the code with only the sunspider benchmark as test - analogous to over-fitting the training data. It's really tempting to do this, but it's also a common enough amateur mistake that Microsoft should have best practices to avoid it.

All this is speculative for now. Let's see what they say.

ndl··on A Follow-Up to "The Web is Public Domain"
"If my apology to Monica seemed shallow it was because I was angry about the harm she has inflicted on others on behalf of her own agenda."

This is neither an a letter of apology nor an admission of wrongdoing, it's a statement of blame.

"Thank you to all our readers, thanks to all our advertisers and writers... and to everyone who has been supportive and who has been a part of Cooks Source. To one writer in particular, Monica Gaudio, I wish you had given me a chance."

The "one writer in particular" directly after referring to the magazine's writers almost implies that she thinks Monica is one of their writers. I wonder if she thinks that the entire Internet are her writers?

I don't think that violating copyright is incurring her the wrath of the Internet. Plenty of people distribute content that isn't theirs, and usually they get sympathy when the big bad RIAA comes in. It's the fact that every time she gets called out on a mistake, she insults the victim. You can get away with being wrong or with being nasty, but not both.

ndl··on An Open Letter To Business People
I have a few things to add to this.

Know something I don't. Plenty of people seem to operate under a false dichotomy between code and business, where "not programming" gets treated as a business skill. I consider myself a hybrid hacker/businessman, but stronger on the hacker side for now. If I am to take a "business person" as a partner, I'm looking for that person to do things I couldn't learn easily from a day of reading. This could mean lots of things: truly understanding markets and pricing, being a professional member of a specialized target market, legal and accounting training, unlimited patience for customer support, etc.

I see some "business" people making the same mistakes they're supposed to prevent. The stereotype is of a programmer who builds and builds without testing the market, but how many non-programmers try to recruit techs to hack together a totally untested but "revolutionary" idea?

Another thing I've gotten wiser to is the use of vague terms, like "leadership" and "networking." To me this comes off as "I wanna be the boss and hang out." If you really are good at these things, try to give some specifics.

Finally, if I wanted to have a boss and live in a hole, I'd get a job at X big corporation. This is the point I expect the most disagreement on. I don't want a business founder who will "take over" all of the networking. By deciding to be a founder, I've already bet that I can manage myself better than someone else can manage me.

ndl··on Ask HN: What do you use?
Desktop - Unknown ABS model. AMD Phenom 9500 quad-core, 2.0GB RAM, ATI Radeon HD 3850, crummy old IDE HD. I found this computer half destroyed at a junk sale and spent a few hours and about $50 refurbishing it to usable condition. Wouldn't have been able to afford it otherwise. The HD was missing, so I threw in an old one.

Laptop - Asus 8JS. Geforce 7700 graphics, 2Ghz Intel Core Duo, 2GB RAM, 120GB HD. 14" screen with 1440x900 resolution (looks photorealistic on some games).

OS - Ubuntu 10.10 as primary. Standard low-maintenance Linux, though occasionally I have to custom install something that has gone stale in the repositories. I also have mostly unused Windows XP and Vista boots.

Code editing - Eclipse or Gedit. I have rudimentary knowledge of VIM and painful memories of Emacs. I code in a whole slew of languages and generally find that I'm either okay with the really simple text editor (Gedit) or want code completion and automated testing (Eclipse). I also like to put SVN repos into a Dropbox. It's a free way to keep my code private but still have it backed up and synchronized between computers. I've used Git and Bazaar, never in a way that convinced me they were truly more advanced than SVN.

Web Browsing - Firefox. Tried Chrome and Opera, and I think I'm just more used to Firefox now and can understand its quirks. I was using Phoenix 0.4 back in high school, and people thought I was crazy.

Phone - was pretty uninterested in phones until Android came out. Now I have an HD2 (that's a WinMo phone) that I'm hacking to run Android.

Sound - anything I can salvage. People throw away tons of audio equipment. I have a huge pair of Tannoy speakers that look like they could power a rock concert. I think I have a usable amp for these, but I'm still figuring out how to wire everything.

ndl··on Ask HN: What are your regrets?
Hmm, where shall I begin?

I turned down an offer of admission from MIT. Granted, I had my reasons, and had I accepted, there's an inappropriately high probability I would've had to discontinue halfway through. I guess what I really regret is letting circumstances reach that point.

What I really regret is things I didn't do. The girls I should have asked out. The musical instrument I didn't learn to play. I honestly wish I'd made more clear mistakes in high school, instead of constantly playing it safe and thereby skipping important life lessons.

I regret spending so much of my life in front of the computer. Indeed, the hacking skills I developed will help me when launching, but the social skills I didn't develop will kill me. One of my worst fears is that I will get pigeonholed into a being a backroom programmer, and this fear influences everything from my cofounder search to my current distribution of time.

On the flip side, what I regret from the past might not be so regrettable when I consider that I'm not making the same mistakes right now. It goes back to my hypothesis that what I should regret are the mistakes that I didn't make when I was younger, because I may have to make them when the stakes are higher.

ndl··on If you applied to YC this cycle, please put your email in your profile
Couldn't he have just rigged the algorithms to put this post at the top? That would be the backdoor equivalent of the "sticky" post.

It would actually be more interesting to me if pg had some quantitative way of knowing that this post would reach the top (some function of the # of YC applicants now nervously refreshing), but if I had to guess, I'd say he just knew from experience or something.

ndl··on Ask HN: How do you visualize code in your head?
Lots of moving shapes, especially if there are threads. Usually they are visual-kinesthetic representations of how the data structures fit together, what they do (as movements), and what it looks like when there's a bug.
Page 1 of 2Next →