HN user

palish

6,596 karma

=======

To whomever that has read upto here: you hereby implicitly agree my EULA, in which you swear to enjoy each of your scientific pursuits with intensity and to your fullest degree; and sometimes even to a dangerous degree, if the mood carries you thus. Additionally, you agree to never allow an employer, family member, or any other authority to break your intrinsic spirit; for they have no means of dominating your spirit except that which you subconsciously allow them. You shall be true to yourself and to your own principles, regardless of society (though in privacy). You shall hereby refuse to believe any scientific statement as "true", however benign, except those in which you alone have proven to yourself to be true, by your own hand and evidence. (Though it doesn't hurt to check out what other people have to say on the subject, from time to time; in fact, it turns out to often be a more valuable course of action, for the careful analysis of a close friend can often reveal subtle flaws in your process and in your logic, while occasionally forcing you to re-evaluate your core reasoning for choosing that process in the first place, which always leads to the path of learning and thus improvement and satisfaction.) You agree to eventually die with no regrets. Let no one impose themselves upon your judgement without merit. You shall endeavor to enjoy life to the fullest extent of the law (where applicable), and to realize that money is merely a means, not an end unto itself. In your spare time, you shall research that which is impossible, but intriguing, in order to always have something to strive for, thereby improving your skill and your spirit. You shall follow your curiosity wherever it leads (but keep both eyes open for signs of danger).

Most importantly: thou shalt enjoy every week, else thou shalt fix your life's situation regardless of how immutable it may seem.

=======

Posts85
Comments2,048
View on HN
github.com 14y ago

Show HN: JSMin fork (allows Bootstrap's idiom)

palish
23pts4
news.ycombinator.com 14y ago

Show HN: Learn iPhone and iPad development in less than ten minutes

palish
2pts1
news.ycombinator.com 15y ago

Tell HN: Bitcoin currently trading for $30 USD

palish
5pts4
news.ycombinator.com 15y ago

Ask HN: Instant Messaging for the paranoid?

palish
21pts22
img600.imageshack.us 15y ago

Ask HN: What do these symbols mean? Anything special?

palish
3pts2
shawnpresser.blogspot.com 15y ago

How to Become a Game Programmer

palish
143pts44
news.ycombinator.com 15y ago

Ask HN: Cleaning a MacBook by submerging it in distilled water?

palish
21pts32
chrome.blogspot.com 17y ago

Google Chrome Without 3D

palish
20pts2
news.ycombinator.com 17y ago

Vector Math Tricks (Distance of a Point to a Line, Explained)

palish
9pts0
www.kraln.com 17y ago

Indie iPhone Game Design: Triphids - a Developer's hindsight

palish
3pts0
news.ycombinator.com 17y ago

Ask HN: What would you want to be if you couldn't work with software?

palish
4pts9
news.ycombinator.com 17y ago

Programming Frustration Rants

palish
1pts3
ytmnd.com 17y ago

How the entrepreneurial lifestyle crippled YTMND's founder

palish
2pts0
news.ycombinator.com 17y ago

Ask HN: Do you think primarily in English?

palish
56pts85
news.ycombinator.com 17y ago

Open-source your product

palish
29pts13
shawnpresser.blogspot.com 17y ago

Why is a "business day" distinct from any other?

palish
2pts0
news.ycombinator.com 17y ago

Ask News.YC: Were logical people born logical?

palish
9pts29
video.google.com 17y ago

Should Google Go Nuclear? Clean, cheap nuclear power

palish
1pts0
dl-client.getdropbox.com 17y ago

Here's a code snippet to load a BMP file, in case you need it.

palish
1pts0
shawnpresser.blogspot.com 17y ago

ABC Development

palish
1pts0
gooncity.com 17y ago

Crowdsourcing a Pixel-Art City

palish
28pts10
news.ycombinator.com 17y ago

I'm out, baby

palish
164pts99
news.ycombinator.com 18y ago

Game development with Lisp, how to acquire knowledge (from manuals), and other random thoughts

palish
30pts0
shawnpresser.blogspot.com 18y ago

Simple brain exercise that may boost your short term memory (open-source, feel free to tinker with it)

palish
7pts4
arxiv.org 18y ago

The Computational Capacity of the Universe

palish
6pts3
news.ycombinator.com 18y ago

Self-Commenting Code

palish
2pts4
dl.getdropbox.com 18y ago

A simple example of Radix Sort (a linear-time sorting algorithm)

palish
2pts1
shawnpresser.blogspot.com 18y ago

What's your opinion of "Correctness vs. Completion"?

palish
2pts2
digilander.libero.it 18y ago

Hagakure: Book of the Samurai [pdf]

palish
1pts0
dl.getdropbox.com 18y ago

Implementing Lisp Without Lists

palish
13pts2
Life is Short 11 years ago

Check how long I've been here. Not only did I know all of that, but it's the entire reason why I left a reply, and why I've stayed on the site. The goal was to characterize the problem for you in a way that you may not have considered, and I was trying to be thorough about it. (I also tried to come up with some new idea so that it wouldn't read as a complaint, even if it was probably a bad one.)

Making the Principle of Charity part of the guidelines implies that you'll ban people who specifically refuse to follow it. When I said "It probably won't work," I meant "Remember orange usernames, and how badly it fragmented the community? Just be careful." Dealing with these people by trying to apply social pressure might backfire, since they are very vocal and motivated by something other than curiosity.

It would be good to read the study's paper. Studies often don't reach any explicit conclusions, which is one of the important features of the scientific process. Other people make inferences that aren't supported by the actual findings.

Some studies are intentionally deceptive, e.g. https://news.ycombinator.com/item?id=97299. I've pointed that one out a few times over the years, since it's such an excellent showcase of incentives gone wrong. The researcher ended up getting a lot of funding, partly thanks to the pretense of "rat brain flies plane." No one bothered to try to pull apart their paper.

It takes a lot of effort to do this. The only reason I spent hours reverse engineering that paper was because of how excited I was about the implications. Discovering that it was nothing more than a rube goldberg nearly shattered my faith in academia. Especially the realization that sometimes researchers have to do that sort of thing to get funding, or lose.

It's entirely possible that what you said is true. All I'm saying is, it's best to seek out the original paper. (If it's locked behind a paywall, post a request to /r/scholar and you'll usually get it in under an hour.) Sometimes the truth is quite different from appearances.

Life is Short 11 years ago

It's worth trying, but it probably won't work. The bitterness in this thread can't be countered with social pressure, and you can't ban people for appearing disingenuous. They believe what they're writing. These comments aren't coming from people in a mindset to observe their own actions from a distance, which is what the Principle of Charity requires.

When a commenter is convinced that a topic is very important, and that it's a moral imperative to change the minds of whoever opposes them, "zealot" is one way to describe this situation. It seems to be the underlying force behind all this bitterness.

Scrolling down in hopes of finding a reasonable comment is a recipe for disappointment. Worse, it adds fuel: Many of these comments are from people fed up with zealotry.

Ideally, the mean-spirited comments would be whisked away to the bottom of the thread, where they belong. But they're not offtopic so they can't be detached.

I've often wished for a way to view a thread without any nesting, i.e. like /newcomments but for one specific thread. That way I could at least come back later without having to scroll past the same tired meanness. It'd be a lot easier to spot the gems posted as replies.

I'm leaving Bitcoin 14 years ago

May I ask how much money in total you personally netted from making Bitcoinica? I'm intensely curious, but I'd understand if you'd prefer not to tell.

Hey, thank you for the critique. It's a rare gift to find someone who's willing to disagree + solid reasoning + references to existing work. Thank you.

In a later post, you mentioned mapping teeth with a toothbrush. That's not a trivial thing to do - without a fixed frame of reference it would not only be very complex mathematically, but also pretty unreliable.

Of course. That is why I'd incorporate a frame of reference into the design of the toothbrush. The point of the post was to quickly paint a picture of what "the future" could be like if I were given time and freedom to pursue these designs. I assumed that if anyone was interested in the details, then they'd simply ask me to provide them.

The toothbrush contains two technologies that enable it to build a map of the surfaces of the teeth you brush. #1: a three-axis gyroscope + accelerometer (e.g. same as an iPhone's). This gets me the rotation of the toothbrush relative to the direction of gravity. Now, of course, this would not be enough by itself; we also need some way of determining the position of the bristles within the mouth. This is accomplished with sensor #2: along the length of the toothbrush near the mouthpiece, there are dozens of tiny light sensors. The more the toothbrush is inserted into the mouth, the less light that reaches the light sensors. This gets you a reading of "how deeply is the toothbrush into the mouth?" which you can easily combine with "what are the current angles of rotation?" to conclude e.g. "the bristles are therefore currently brushing the front surface of your bottom-left-rearmost molar."

Light sensors are easy to work with, but probably not the most reliable way of doing this. I would look into using some kind of sonar sensor, possibly. Or you could do something as simple as "detect which part of the toothbrush that your lips are currently touching"; that might work too.

The goal is straightforward: "to determine an accurate-enough approximation of how deeply the toothbrush is currently inserted into the mouth", because that can be combined with the rotation angles to give you a solid frame of reference.

I of course don't know which technique will prove to be the most pragmatic, since I haven't tested any them yet. =) This is a solvable problem, however.

I've got to run for now, so unfortunately I ran out of time to address your other [excellent] points. But I'm not sure anyone is even reading this discussion anymore anyway. Feel free to post a reply if you'd like to continue, or shoot me an email (see profile). Thanks again!

Using Kickstarter is a good idea, but I'm struggling with the moral implications of it. The chance that I'll succeed is inherently small, and I'd feel absolutely awful if that $1M wound up not resulting in some useful contribution.

Still, I have ideas, along with the skill necessary to test them. And if I were independently wealthy, then this is how I'd spend my time...

If I were to Kickstart this, then I'd keep a public daily journal of my efforts and short-term goals. There would be a webpage showing exactly how the money was being spent. I'd make everything as transparent as possible.

The thing is, most of my ideas will turn out to be impractical, but there's no way to know which until I test each of them. That process would require money from people who are okay with gambling on the off-chance that one of my ideas turn out to work. (Sidenote: if I happen to succeed, then I want to repay the people who funded me, at the very least.)

Here is a glimpse into the future I envision:

- A sensor in your bed scans for tumors as you sleep.

- If you have a heart attack, a sensor in your clothing immediately detects it and pushes an alert to your phone, which dispatches emergency services to your exact GPS location. (Most people keep their phone in their pocket or purse, so this seems doable.) A speaker embedded in your belt yells out step-by-step CPR instructions to the people around you.

- Your toothbrush takes your temperature and absorbs a sample of your saliva, which it analyzes for deviations from your long-term norm. It uses wifi to upload this data to your computer, along with a map of the surfaces of the teeth you brushed. The next time you use your computer, you'll see a visualization of your teeth; any surfaces which you missed when brushing are highlighted in red. (e.g. if you aren't brushing behind your molars, then those areas are highlighted.)

- As you're driving, a sensor on your rearview mirror will detect if you fall asleep at the wheel (your eyelids close for more than one second) which triggers an audible alert to wake you.

I'd love to spend my life coming up with pragmatic ways to use technology to benefit your health / monitor for emergency conditions. I'm just not sure it'd be ethical to use Kickstarter to fund possibly-crazy endeavors like this. I don't know.

What breaks my heart is that this kind of tragedy is avoidable. He was only 51; died of colon cancer. All we need is to design a wearable device which continuously monitors your body for changes that correlate with "might be developing cancer". (An undershirt, for example.)

This is a solvable problem. Cancer causes measurable (but typically unnoticed) changes to the rest of your body. If it can be measured, it can be monitored; and when that change is detected, a quick trip to the doctor's office would likely save the next 30 years of your life (if it was indeed the very early stages of cancer).

Cancer is beatable; we simply need to beat it before it has the chance to incubate.

This is a problem that I would like to personally work on, but unfortunately it would take at least a year to arrive at a feasible design. It'd need only a small investment (~$1M) but I doubt any investor would be interested in "zero profitability for at least 12 months".

Semicolon.js 14 years ago

Heh heh. You may have just found a fatal flaw.

On the other hand, is "do" the only reserved keyword which matters? Then it might be okay to special case that one instance as well.

There is no doubt that my approach is the wrong approach; I'm just curious whether it's easier to handle each of the ~dozen special cases than to fundamentally rewrite JSMin (as a full ECMAScript parser).

EDIT: Amusingly, I've special-cased the 'do' keyword in a fairly straightforward way, so now the code handles every example thus far. I wonder if these are the only special cases required, and whether they add any adverse side-effects. Also, you're extremely talented and creative.

Semicolon.js 14 years ago

The "prior character blacklist" is now:

  & | + - * ? : % = ( [ { ,
Currently hunting for more problems, and a more elegant solution...

Offtopic, the reason I did this JSMin fork was just to challenge myself, not to make a political statement or anything like that. My cat was just diagnosed with feline lukemia. I know this project is a little silly, but it's been fantastic for keeping my mind off of real-world stuff. You're awesome for providing all of these examples; thank you.

More usefully, this serves to prove that Mr. Crockford was likely correct in his assessment.

Semicolon.js 14 years ago

Fixed. Thanks so much! I added % and = to the blacklist.

I'm searching for a fundamentally elegant solution. My current one is more of a kludge... though, if it fixes all cases and doesn't introduce problems, then maybe it's worth a few extra lines.

Semicolon.js 14 years ago

Fixed. Thank you, keep 'em coming.

As of now, semicolon substitution isn't performed if the character before the newline is any of: & | + - * ? :

Semicolon.js 14 years ago

I have a simple fix. Standby.

EDIT: Fixed. Thanks for pointing that out. Let me know if you find anything else.

Hey all,

Mr. Crockford has recently refused to fix JSMin (https://github.com/twitter/bootstrap/issues/3057).

Thus, I've fixed it. You can get the updated code from https://github.com/shawnpresser/JSMin/blob/master/jsmin.c

The fix was simple. It simply scans for "newline, optional whitespace, exclamation point" and replaces the newline with a semicolon.

I've given special attention to safety. This code works exactly as JSMin did, except it implements the aforementioned semicolon substitution, thus supporting the Javascript idiom:

  a()
  !b && c()
I hope this proves useful to someone (possibly the authors of Bootstrap). It was a fun project.
I hereby resign 14 years ago

Nobody is calling him a liar.

Whalliburton directly called him a liar.

Those without inside information may not know what is true and what is not true.

Then email him.

There's really no way anyone can say "everything michaelochurch says is wrong".

It's incredibly creepy that HN is fact-checking a personal anecdote about a nameless company; an anecdote which he clearly wanted to share with us in order to simply chill with us and be happy with us. He wasn't even hurting anyone or saying anything about anyone. You all chose to dig for no reason at all.

Let me put it another way. His original story did not whistleblow anything. It was just a story without a particular purpose. It doesn't matter why he wrote it, nor does it matter whether it was true. He wrote it in order to feel happy. HN went out of its way to check whether it could ruin that happiness, for no reason whatsoever.

I hereby resign 14 years ago

I can't believe that HN is blatantly calling you liar. I can't believe you're calmly responding to it.

Guys, whether or not someone might or might not be lying about their own personal life is strictly their business, and not yours -- and certainly not a public matter!

I exploited this about 5 years ago. (I think it was called "Startup News" back then, though!)

http://news.ycombinator.com/item?id=27615

I think you need to set "showdead" in your profile to see this. It got killed pretty quickly, but netted me ~150 karma which was amusingly nontrivial back then. And as a byproduct, I think I became the first "public member" to get a glimpse of Arc, which was closed-source at the time. I won't disclose how (since I haven't asked for permission to share the details) but it was pretty much one of the happiest days of my life, for some stupid reason. I was young and giddy and felt like I'd just won something special.

To give you an idea of how ancient this is, check out the id of the thread -- only #27,615. Man, time flies when you're watching a community grow, eh? It's like watching a child mature over years -- into an increasingly-annoying version of themselves while slowly getting fatter and fatter over the years, of course. (I kid, I kid.)

Bonus: I just now noticed that I'd gotten into a debate with Paul B in that thread. Hah. I was too cocky back then... I should have been listening and asking questions, not talking!

Man, I miss those days so much. I never knew how rare they were until they were gone. Like, my girlfriend (now wife) and I went on vacation, during which we prototyped and launched a whole webapp in Rails 1.0! Who does that? Not me, anymore -- At least, not until I lose my day job like a bad case of music. Makes me wonder if I still have my old "hey, I'm 18 and ignorant of my own flaws!" level of productivity...

====

EDIT: Oh, look. I have the attention of the majority of HN. Allow me to now exploit you:

To whomever has read upto here: you hereby implicitly agree my EULA, in which you swear to enjoy each of your scientific pursuits with intensity and to your fullest degree; and sometimes even to a dangerous degree, if the mood carries you thus. Additionally, you agree to never allow an employer, family member, or any other authority to break your intrinsic spirit; for they have no means of dominating your spirit except that which you subconsciously allow them. You shall be true to yourself and to your own principles, regardless of society (though in privacy). You shall hereby refuse to believe any scientific statement as "true", however benign, except those in which you alone have proven to yourself to be true, by your own hand and evidence. (Though it doesn't hurt to check out what other people have to say on the subject, from time to time; in fact, it turns out to often be a more valuable course of action, for the careful analysis of a close friend can often reveal subtle flaws in your process and in your logic, while occasionally forcing you to re-evaluate your core reasoning for choosing that process in the first place, which always leads to the path of learning and thus improvement and satisfaction.) You agree to eventually die with no regrets. Let no one impose themselves upon your judgement without merit. You shall endeavor to enjoy life to the fullest extent of the law (where applicable), and to realize that money is merely a means, not an end unto itself. In your spare time, you shall research that which is impossible, but intriguing, in order to always have something to strive for, thereby improving your skill and your spirit. You shall follow your curiosity wherever it leads (but keep both eyes open for signs of danger).

Most importantly: thou shalt enjoy every week, else thou shalt fix your life's situation regardless of how immutable it may seem.

Go -- build something out of passion. Right now!

Apple's domains 14 years ago

Sorry, could you expand on that? It sounds interesting, but I don't understand the logic.

Sorry about that. I felt like a wet blanket asking about the consequences of disaster when this seems like a time for celebration, so I deleted my question.

Thank you for the time you spent crafting such a thoroughly amazing answer. I hope that most people will still feel as you do even after the first true commercial manned spaceflight disaster.

It seems like there's no way for the majority of people to care.

I wish I could explain this better, but... I've been living in the Midwest area for the past few years. The day-to-day lives of the people here are just so incredibly different from the vibrant and politically-active crowd in NY, or the tech scene in SF.

My wife's father is in a desperate struggle to prevent his family from going bankrupt. He owned a business that designed and built pole barns and other buildings (in fact, he built a restaurant for one of his clients). Just before 2008, it was doing so well that he actually quit his day job. Then the economy tanked, and all of his signed contracts became meaningless. The clients literally just bailed. Anyway, he suddenly found that he had a lot of business debt (which unfortunately was personal debt) and no way to pay it off since no income was coming in. Needless to say, he and his family have been in a rather poor situation for the past few years.

What's my point? Well, here's what I've noticed: everyone around here seems to be dealing with a "disaster situation". Not necessarily due to 2008; just in general. The people here seem to mostly be in "oh-crap" situations. Most of them have more debt than they can handle. The students barely care about doing well in school (and have a massive amount of debt from it). Most people have poor credit.

What I'm saying is... There just seem to be so many problems that people have to deal with nowadays. Average people. I don't know why; the problems certainly aren't due to any single reason. It's a combination of globalization and the current economic situation, I think. But regardless, people just can't seem to spare the time to care about anything except survival and drowning their concerns via alcohol or pot.

Not everyone is like this. I'm just saying most people seem like this, to me, from my point of view here in St Louis Missouri (and previously Michigan). I realize that this is hardly a statistically significant viewpoint. I'm just trying to understand why our government is so focused on the rest of the world, when there are so many crisis-level issues that face the day-to-day lives of average American citizens.

It's not that these people are lazy, either. My wife's father is one of the hardest workers I've had the pleasure of knowing. Though... people do seem to make bad decisions without realizing it (e.g. taking on personal debt to support business operations). So I know they're not blameless -- and in fact, when the situations are examined with a critical eye, most would conclude that it was entirely their fault that they are in these "oh-crap" situations. Nevertheless, the fact is that they are in terrible personal situations, and we must study the implications of that.

I look around and see that so many average people around here seem to be spending most of their lives simply surviving: dealing with some sort of personal disaster, or paying off student debt, or... etc. Yes, they messed up. But it's unreasonable to expect them to care about nebulous long-term issues when every day is a constant struggle simply to keep their head above water.

I don't know what to do about this; I'm not even sure anything can be done. I, too, wish more people cared. But we'd be foolish to not try to examine the reasons why people aren't caring, and to ask ourselves, "Why is this so? Are people merely lazy? Is it because they feel powerless? Or is it due to their day-to-day situation? How can we change this? Can it be changed?"

Whoa, that's bizarre: http://screencast.com/t/TA5fF8CDf3

And look at the timestamp on #171618: http://screencast.com/t/Kzzwiyi9Mz ... The timestamp reads "21:35:01". But the timestamp of the previous block is "21:35:35". So it's "in the past, by half a minute". What's up with that? I mean, I could understand a timestamp uncertainty of a few seconds when discovering new blocks ... but that's a discrepency of over half a minute. (Maybe this is a totally insignificant observation -- I have no idea. I'm just pointing it out.)

Bigger question: what's up with those "1-transaction blocks"? Could you talk a little bit more about that / why that's an indication that someone is cheating? Also, do you have any idea why they're doing this / what the benefit is?

This is my rough understanding:

As you're aware, Bitcoin uses certain cryptographic guarantees in order to publish a public and immutable "block chain", which is essentially a public list of all Bitcoin transactions since the beginning of time.

Each block in the block chain is essentially a list of transactions which occurred between the time frame "after the previous block was discovered, but before this block was discovered".

(A block is 'discovered' by searching the hash space brute-force, searching for a valid code.)

When a new transaction is initiated, it is an interesting situation because it needs to be done in a way where neither party can somehow cheat the system. I believe this is accomplished by sending the transaction to many Bitcoin peers simultaneously. When, say, 5 or more peers have "acknowledged" this transaction, then you can be fairly confident (>99.9%) that your transaction will be encoded into the next block in the block chain.

The only reason this works is because it's assumed that each peer in the Bitcoin network is following the protocol in an unbiased way. E.g. it's assumed that peers aren't "going out of their way to do shady things". What kind of things? One example: acknowledge a transaction, but then discard/ignore that transaction, thereby attempting to trick you into thinking your transaction was processed when it wasn't.

Right now it doesn't matter if only a few people are doing shady things. This is because the majority of people are known to not be cheaters. Therefore, by the law of large numbers, you can assume that by waiting for N acknowledgements then you can become exponentially more confident that your transaction will be encoded into the public block chain, rather than maliciously ignored. The only reason this works is because less than 50% of the Bitcoin peers are attempting to cheat. If more than 50% were cheaters, then you'd have no way to "verify that your transaction will definitely make it into the public block chain". Thus, the system would cease to be useful.

Now, notice I'm talking in terms of "more than 50% of peers", but the article is talking about "more than 50% of processing power". I think the argument for "why 50% of the computation power needs to be non-malicious" is the same or very similar to my argument which I presented above. But I'm not positive on that.

(Essentially, if you control more than 50% of your "new block-finding capability", then you would have control over which transactions will/will not make it into the public block chain. Thus, we would lose our cryptographic guarantee that "if my transaction was acknowledged by at least N peers, then it will definitely be entered into the public block chain un-tampered.")