Outperforming LAPACK with C++ metaprogramming - <AUTHOR> http://wordsandbuttons.online/vastly_outperforming_lapack_with_cpp_metaprogramming.html <comment><USER2> For those wondering the lapack guys are working on a new version of lapack to run on heterogeneous architecture including gpus. See their work at [http://www.icl.utk.edu/research](http://www.icl.utk.edu/research)

I have worked with these guys and all I can say is good luck outperforming the highly optimized routines they have written. My bet is that the the guy writing this blog used a non optimized version of lapack.

<comment><USER3> There's no mystery here, author is only solving a 5x5 system. LAPACK will have barely finished checking function call parameters by the time a fully specialized and inlined solver is finished. Also, from a cursory inspection, author does no pivoting [edit: worse, it just uses Cramer's rule, which is insane], so their solver will be much less numerically robust (but this is admittedly less of a problem for the 5x5 case).

The performance is completely expected--in fact, I would expect an optimized 5x5 solver to be _faster_ than this.

<comment><USER4> A better comparison might be a C++ library like Eigen that is intended for use on these small systems, that should optimize out function calls in a similar way, and that uses intrinsics.

<comment><USER5> If your matrices are of arbitrary size, Blaze [0] would be my pick. It has the best performance on their benchmarks, Baptiste Wicht's benchmarks, and my own.

Though if the matrices are guaranteed to be small (like in this example), libxsmm [1] is specialized and highly optimized for this use case and beats its competitors above.

And yes, it's absolutely essential to make sure you didn't just move computations to compile-time.

[0]: [https://bitbucket.org/blaze-lib/blaze](https://bitbucket.org/blaze- lib/blaze)

[1]: [https://github.com/hfp/libxsmm](https://github.com/hfp/libxsmm)

</comment></comment></comment></comment><comment><USER6> Please check with array initialized from file or other dynamic source. With maximal inlining, there's a risk of constant propagation resulting in a lot of computation happening at compile time rather than run time.

<comment><USER7> As an anecdote of just how powerful this can be, I once wrote a prototype of a simulation (written in C) that used a lot of integer divisions and needed to be run many times with different parameters.

As a quick and dirty hack that took about half hour to implement, I decided to just have the program as a template string and the parameters be substituted in by a python script that called GCC. To the amazement of a very sceptical friend, the result was a 5x speedup.

A lot of this speedup was consistent with replacing the integer divisions with multiplicative inverses, but also merging constants in a way that would have made things quite unreadable. I was quite impressed with how far GCC had gone.

Considering each instance of this simulation ran for tens of minutes, it was well worth compilation time of a few seconds. It kept the code really simple, too.

<comment><USER8> You should check out this presentation done by Matt Godbolt about compiler internals. He talks about what kind of optimizations are being done by GCC and Clang. Pretty amazing stuff. For example, the compiler will figure out you are trying to write a pop count in high level code and replace it with a single popcount instruction.

[https://www.youtube.com/watch?v=bSkpMdDe4g4](https://www.youtube.com/watch?v=bSkpMdDe4g4)

<comment><USER9> Amazing, yes. Scary, also.

If you're going to figure this out, please output a warning and ask me to call the optimized intrinsic or something.

<comment><USER10> Why? The intrinsics aren't portable, the other code is.

<comment><USER7> Even with intrinsics that do have a degree of portability, I prefer the more explicit form of the bit counting just for readability. Nobody has to learn what popcnt means.

These optimizations really mean that as software writers we can declare our intent and have the compiler do safe optimizations.

It seems like these optimizations of Clang are also quite insensitive to the many different ways of writing the same thing that C++ has earned notoriety for.

<comment><USER9> > I prefer the more explicit form

Huh? It's not _explicit_ , the purpose is _implicit_. You are writing down an algorithm that _implements_ a popcount algorithm. The compiler than has to _infer_ the fact that you actually wanted popcount (maybe you just wanted to waste a bit of time in a timing loop?) and then substitute something based on that inference.

I am all for it being _explicit_ , i.e. some library function that has a name that somewhere mentions "popcount" or some such. Then have the compiler generate whatever code it needs for that function.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> It is somewhat unclear from his writing but did he compare this metaprogramming solution against OpenBlas or Atlas or just the reference BLAS/LAPACK implementation? If I was trying to do any significant linear algebra computations, I would definitely first try an optimized BLAS/LAPACK solution first.

<comment><USER12> Also, it seems the author solved a triangular system. LAPACK has special routines for that. Were they used?

LAPACK is typically optimized for larger systems, not 5 unknowns. Also, 5 is not a great number for vectorized operations - it might even be beneficial to zero/one pad the matrix.

Optimized LAPACK is often 5-10x faster than «basic LAPACK».

BLAS/LAPACK was originally written in the 70s/80s and sometimes unroll loops to the tune of 5 or 7 - it made sense then. Not so much these days.

I didn't read the article in detail, but there appear to be a lot of holes in it.

<comment><USER13> Personally, my biggest reason to prefer LAPACK in general is that its authors have already put a great deal of effort into correctness and numerical stability, so I don't have to. Even basic LAPACK is pretty fast, let alone the optimized libraries. Hand-optimizing my own special case is an absolute last resort.

<comment><USER12> Yes, Cramer's rule (referred to in the article) does not give numerically stable results AFAIK - which is yet another can of worms. Good catch.

<comment><USER14> I don't think I have heard Cramer's rule mentioned without the caveat "but don't use this for real problems".

<comment><USER12> It's useful for certain theoretical proofs in analytic math - or so I've heard. Not all math is well suited to be coded into reliable software.

</comment></comment></comment></comment></comment></comment><comment><USER15> In his first factorial example, he could've avoided templates altogether with constexpr:

[https://godbolt.org/g/ZaoMNa](https://godbolt.org/g/ZaoMNa)

Or just use a template specialisation:

[https://godbolt.org/g/TVkHMd](https://godbolt.org/g/TVkHMd)

<comment><USER16> Thanks for sharing the godbolt site, can see myself using it for debugging.

<comment><USER17> the author of the site (Matt Godbolt) is in general pretty great.

</comment></comment></comment><comment><USER18> This article makes no sense at all. It compares a numerically unstable O(n!) algorithm (Cramer's rule) to a numerically stable O(n^3) algorithm (Gaussian elimination).

<comment><USER19> What bothers me more is the fact that the article seems to compare LAPACKs function for solving any-sized systems of equations with a specialized function for solving 5x5 systems.

I mean, it's neat trick and all, but the comparison with LAPACK does not really stand on equal ground.

</comment></comment><comment><USER20> The proposed C++ tricks are useful and I think that its reasonably well-known (at least to people who do numerics) that a C++ compiler, with the right flags, can beautifully unroll loops when array sizes are known at compile- time.

> brute force Cramer's rule solution

This isn't really a fair comparison: trusty old DGESV will yield far more accurate results for badly conditioned problems since it does row swaps (partial pivoting). It might also rescale values; I don't remember the details. It would be much more reasonable to compare a hypothetical DGEC (double precision general matrix cramer's rule) routine.

</comment><comment><USER21> D's Mir does the same sort of thing, and metaprogramming in D is much nicer, because it was designed from the ground up instead of the bug elevated to feature that metaprogramming is in C++.

[http://docs.mir.dlang.io/latest/index.html](http://docs.mir.dlang.io/latest/index.html)

[http://blog.mir.dlang.io/glas/benchmark/openblas/2016/09/23/...](http://blog.mir.dlang.io/glas/benchmark/openblas/2016/09/23/glas- gemm-benchmark.html)

<comment><USER22> >and metaprogramming in D is much nicer, because it was designed from the ground up instead of the bug elevated to feature that metaprogramming is in C++

Yet neither of them are as elegant as LISP macros.

<comment><USER23> I'm not sure how you're measuring elegance, but writing Lisp macros and getting them to work correctly has never been something I'd call elegant. You have the Common Lisp approach, where you work in a complicated sublanguage like this example from PCL:

      (defmacro when (condition &rest body)
        `(if ,condition (progn ,@body)))

and then you think hard about where the leaks are. Or else you take the Scheme approach of hygienic macros which are even less elegant. Macros in Lisp are powerful, but I'm not sure metaprogramming in Lisp is better than in a language like D.

<comment><USER24> > You have the Common Lisp approach, where you work in a complicated > sublanguage like this example from PCL:

I don't think you actually understand anything about the example code you posted. There is no special "complicated sublanguage" \- the backquote[1] is an extension of the quote shorthand notation[2] for list literals. It is for building data structures and has nothing to do with "sublanguages" or macros. There is no special syntax for macros in Common Lisp. Common Lisp macros do not produce source code - they produce any type of Common Lisp objects directly. That is why they are simpler and strictly more powerful than D templates.

When it comes to templates, I wouldn't call anything from this list of D examples[3] elegant.

[1] [http://www.lispworks.com/documentation/HyperSpec/Body/02_df....](http://www.lispworks.com/documentation/HyperSpec/Body/02_df.htm) [2] [http://www.lispworks.com/documentation/HyperSpec/Body/s_quot...](http://www.lispworks.com/documentation/HyperSpec/Body/s_quote.htm) [3] [https://dlang.org/templates-revisited.html](https://dlang.org/templates- revisited.html)

<comment><USER23> > I don't think you actually understand anything about the example code you > posted.

This doesn't add anything to the conversation. If you want to discuss my post, I'm happy to discuss. You're clearly upset that I didn't praise Common Lisp, but things like that don't lead to useful discussion.

> There is no special "complicated sublanguage" \- the backquote[1] is an > extension of the quote shorthand notation[2] for list literals. It is for > building data structures and has nothing to do with "sublanguages" or > macros. There is no special syntax for macros in Common Lisp.

I've never seen anyone write macros using only s-expressions. True, you don't need to learn any special syntax to do it, but that's not how anyone writes macros.

> When it comes to templates, I wouldn't call anything from this list of D > examples[3] elegant.

How is that is relevant to my comment?

<comment><USER24> > You're clearly upset that I didn't praise Common Lisp, but things like that > don't lead to useful discussion. > How is that is relevant to my comment?

No, I am upset that you are posting misinformed comments about Common Lisp macros vs D templating while representing yourself as being knowledgeable about the subject. You clearly do not understand how the former works.

> I've never seen anyone write macros using only s-expressions. True, you > don't need to learn any special syntax to do it, but that's not how anyone > writes macros.

Please stop pretending that you have enough experience with Common Lisp to say things like "I've never seen anyone do X." Writing macros that call functions that return code is a basic technique - Graham's _On Lisp_ is full of examples. Saying that quoting as a way of specifying list literals is a "complicated sublanguage" is on the level of "C++ templates have too many pointy brackets" of criticism.

</comment></comment></comment></comment></comment></comment><comment><USER25> I wonder if the similar tricks work in other languages with similarily optimizing compilers, but "nicer" metaprogramming, such as Common LISP, Rust and perhaps OCaml? (with camlp4)

Even more interesting would be whether this leads to the same huge performance gains in those languages as well.

<comment><USER26> It does lead to performance gains. This kind of stuff is done all the time in Julia's numerical codes. Flexible macros definitely make this easier, and multiple dispatch + automatic function specialization on types + inlining + interprocedural optimizations makes a lot of what's discussed here automatic. If it's not automatic, then libraries like StaticArrays.jl make functions that use small arrays do these kinds of tricks automatically (it overloads and unrolls operations specifically to match the size of the array which is compile time information). I am sure other languages can do this too, but having it semi-automatic is pretty cool if what you do all day is write numerical codes.

<comment><USER27> Julia's flexibility in the numerical space is why it's my daily driver language for prototyping and implementation nowadays. Truly a fantastic language.

</comment></comment></comment><comment><USER28> Template metaprogramming just shifts the burden of computation to compile time. Sure, I could pre-compute the first 10000 factorials, put them in an array, compile and then print the answer in constant time. But it'll work for the first 10000 numbers only.

<comment><USER29> It's not nearly that simple. You can use template meta-programming to make expressions both easy to read and efficient, by avoiding creation of temporary objects, fusion, lifting, etc. etc.

In some domains (e.g. linear algebra) this can be very powerful because you don't have write non idiomatic expressions just to feed the compiler things it can understand.

</comment></comment><comment><USER30> Modern Fortran (especially upcoming Fortran 2018 standard) is good enough already for those kind of libraries. Moreover, big chunks of the computations are implemented in assembly in BLAS/LAPACK. What surprises me, that authors of those libraries still stuck in Fortran 90.

</comment><comment><USER31> [edit] I had a bug in my code; it does seem that the compiler is not picking up constants at compiletime. That is to say, it's not precomputing the final value at compiletime based on the value from those matrices.

Here's how I modified the code to make sure: [https://pastebin.com/iG21pTiP](https://pastebin.com/iG21pTiP)

<comment><USER32> There needs to be a j in the exit condition of the inner loop of the clobber function.

</comment></comment><comment><USER33> in C++17 you can get generic loop unrolling templates in 8 lines of code: [https://godbolt.org/g/2Di4PM](https://godbolt.org/g/2Di4PM)

</comment><comment><USER34> There's also a closed form for the Fibonacci numbers. It runs in O(1).

[http://stsievert.com/blog/2015/01/31/the-mysterious- eigenval...](http://stsievert.com/blog/2015/01/31/the-mysterious-eigenvalue/)

</comment><comment><USER35> Others have already mentioned Cramer's rule, but even if this code were switched to Gaussian elimination it might not beat lapack on big problems. Lapack implementations do extra tricks to optimize cache usage on big matrices. Would be interesting to include eigen in the benchmark too.

<comment><USER23> I've read your comment several times and can't follow it. I think you're saying that even if the author continued to use Cramer's rule, he would lose to LAPACK on big problems.

<comment><USER36> No. If he continued to use Cramer's rule, he would definitely lose to LAPACK on big problems, _purely because of using Cramer 's rule_. But even if he didn't continue to use Cramer's rule (if he switched to Gaussian elimination), he still might lose to LAPACK, because LAPACK is pretty well optimized.

At least, that's how I interpreted the comment...

<comment><USER19> > he would definitely lose to LAPACK on big problems, purely because of using > Cramer's rule.

More importantly though, the code would probably take ages (as in, "age of the universe" ages) to compile, as Cramer's rule is O(n!) (using a naive implementation, I think one could get to O(n^4) if determinant was computed using LU factorization, but what's the point of Cramer's rule then...).</comment></comment></comment></comment>


Lame Venture Capital Firm Made Its Companies Make This Lame Video - <AUTHOR> http://gizmodo.com/5869837/lame-venture-capital-firm-made-its-companies-make-this-lame-video

<comment><USER2> Lame gadget blog discovers HN has mountains of traffic up for grabs, commences writing content for it.</comment>


Death to the 'noreply' mailbox - <AUTHOR> http://www.josscrowcroft.com/2011/random/death-to-the-noreply-mailbox/ <comment><USER3> "So I've given you my email address. I've given you the permission to contact me directly, via the medium I check more than anything (nasty habit, I know.) And this is how you repay me?"

Hear, hear. We've been preaching the same at Mailgun. A lot of companies pay good money for affiliate lists, scrape web sites; basically do whatever it takes to get emails for marketing/spam. Yet, here are companies with permission to engage their users through email and they totally whiff. EVERY email you send should be considered an opportunity to increase engagement with your users. Tell them them that they can respond with questions, comments, whatever. Grubwithus does a good job of this. They specifically say in the body of the emails that you can provide feedback just by replying.

Email should be considered another interface into your application.

<comment><USER4> I know this is totally not the right place to ask this, but what's happened to <http://bouncr.com/> ?

It just plain doesn't work now, you can't register new emails and the MX for it (mailgun) doesn't accept mail for it.

But the website is still up.

<comment><USER5> _> I know this is totally not the right place to ask this, ..._

You might want to ask your question at a right place instead.

<comment><USER4> I've tried. I get crickets. I should have posted that in my comment.

</comment></comment></comment></comment><comment><USER6> The no-reply email is like sending your error logs to /dev/null

THAT BEING SAID

I used to be responsible for 600 active websites, and when we switched to using a help-desk system for auto-sent emails we broke things and had to go back to no-reply.

Lesson learned for us: it's worse to give the appearance of attention if you don't have the means to deliver on that promise.

<comment><AUTHOR> >> it's worse to give the appearance of attention if you don't have the means to deliver on that promise.

Good call actually. In which case I think better to go with something like what Wufoo does, I believe theirs is something like "friendlyrobot" and if you reply to it, it sends you a friendly message explaining that nobody checks that mailbox, but there is a support desk they can contact. FTW.

<comment><USER7> Would be better if they didn't go to that trouble and just forwarded it on.

<comment><USER8> It's acting as a captcha — otherwise they'd have to deal with a shitton of automated replies and bounces from the customers and their crappy mailservers

<comment><USER9> Surely it's the job description of customer service to deal with hassles in order to make users' lives easier?

<comment><USER10> OK, so set up a filtration system. If you're good enough to build a system capable of running at that level you should be able to set up some basic mail filters or even a more complex bayesian filter to knock out at least bounces and probably a good percentage of autoreplies too.

Removing noise from a system isn't a job where it's perfect or useless; a substantial reduction is often quite good enough.

<comment><USER11> I don't see why it's necessary to make this complicated: "friendlyrobot" _is_ the filtration system. As you said, it doesn't need to be perfect to be useful.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> I thought sending notifications from email@example.com and ending them with 'Any problems, just reply to this email!' was a good idea too.

However, I've had to introduce noreply for a lot of transactional emails for a reason I didn't expect.

If you send an email like:

        Subject: X has requested you become friends/posted a photo/tagged you/sent you a message

...even if you mention that replying to the email will come to you, not X, many users will instinctively reply. E.g.,

        Hey X, So glad you got in touch. Love the picture. Want to grab a coffee soon?

Then you feel bad that you're intercepting personal emails.

I switched to noreply and put a help email link in the signature (which is ridiculed as the height of too muchery in the article).

If anyone's got a better solution, I'd love to hear it.

<comment><USER13> Do as Facebook (or GitHub) does - make replying to the e-mail reply to the person.

<comment><USER12> That's what we do, using the Reply-to header, in case people hit reply. But the From header (which is what users see) still has to be one of ours. This is a requirement of SendGrid, AWS SES, etc., and it'd look pretty spammy otherwise.

Also, I just checked the latest notification I received from Facebook (someone posted on my wall) and its headers were

        From: "Facebook" <email@example.com>
        Reply-to: noreply <firstname.lastname@example.com>

<comment><USER14> It's a requirement of US law, in fact.

</comment></comment></comment></comment><comment><USER15> I consider the no-reply address a courtesy to me to know that I won't end up writing a reply to an address that isn't monitored. Things like bank notifications and alerts are designed to be one-way communications, so the no- reply address makes sense. Usually the body or footer of the message contains the proper contact methods/addresses. It does not hurt my feelings to have to click on an email address within the message vs. clicking the 'reply' button in my client.

That being said, I agree that a no-reply address sends the wrong message for start-ups, welcome messages, signup confirmations, etc. I think they are good for recurring message that are inherently one-way, and when the user knows the preferred contact info for the company.

<comment><USER7> But any email they send out could be set up to reply right to somebody appropriate. Customers don't want a face of the company that only speaks and doesn't listen. Seems like they should be nearly never needed.

<comment><USER15> True, if it is a relatively small support operation. This would be harder to do with larger companies that had separate addresses for billing questions, service problems, troubleshooting, etc. If every outbound message had a singular live reply-to email address, then you'd need someone to sift through all those and route to the appropriate department.

<comment><USER16> Large companies should dedicate the thought and resources to get their customer human interface right. I hate that many large companies that expect customers to navigate through a morass of the companies half-baked organizational scheme. It's a terrible sign if a company expects a customer to coordinate or route an issue among different internal company departments.

</comment></comment></comment></comment><comment><USER17> I was head of support for a good size startup and we set all of our reply-tos to go into our support system. There was not much junk (thanks Gmail) but lots of autoresponders. But it's totally manageable. I set up some hairy Gmail filters to try to weed out the autoresponders (would be nice if Gmail could help out more here).

My email account was also the "catch all" and even that wasn't too bad. And some good email comes in.

The thing that is astounding is that these companies otherwise spend millions of dollars to try to talk to these very same customers. Unbelievable.

<comment><USER18> This is my strategy. I almost missed some important client email by not checking noreply often enough, so our noreply now gets forwarded to those responsible for customer service and following up with customers. So far, very few delivery failures, and a few autoresponders. Autoresponders are important messages too however: if we send a booking notification to someone, and they're on vacation, we know we need to contact someone else in the company.

</comment></comment><comment><USER19> Nope.

noreply is for all the auto responders to not litter your inbox. At the end or beginning of the email is the contact address. A human responder clicks it and replies.

</comment><comment><USER20> I agree 1080% about letting your customers easily contact you. That said, I think you completely missed why this terrible practice came about:

1) When dealing with a lot of automated emails, you get a lot of automated responses like out-of-office messages and failure notices (I know others have mentioned this). 2) Many companies have a support process that doesn't take place in email, because email doesn't scale very well.

So rather than just open up your inbox to thousands of junk messages and customer inquiries that you lose in the shuffle, I'd amend your call to action:

Get rid of the no-reply. Set a reply-to that goes into your support ticket system (you have one, right?). Set up rules/filters to automatically get rid of the auto-cruft and route responses to different mailings to the right place.

With that addition, I say: hear hear! Commit to listening to your customers and banish the reply-to! I know our team is going to after reading this.

<comment><AUTHOR> Good points, and I like the amended CTA. I've added your comment to the end of the post.

</comment></comment><comment><USER21> Couldn't agree with this more. A big part of putting a service out there is getting in touch with your users and potential users.

If a user wants to engage/communicate with you, then you should be making it as easy as possible (Generally true, but particularly for an early-stage startup). The noreply seems brain-dead in this light.

</comment><comment><USER22> Can't you solve the autoresponder problem by setting the correct Envelope headers? Bounces and automatic responders would go to noreply, actual people pressing reply would each you. Our am I too naive in assuming reasonably well- written autoresponders that know the RfC..?

</comment><comment><USER23> Unfortunately, lots of people have vacation responders or autoresponders saying you have to click on a URL to get delivered...

<comment><USER24> Most autoresponders send highly predictable responses that can be reliably filtered on.

<comment><USER25> And when that filtering fails, causing an email to be filtered out as an auto- response even when it was written by a "real person"? What happens then?

<comment><USER17> 1) This is rare but unfortunate. 2) Autoresponders are almost totally useless these days. 3) If this was handled like spam (at last by Google), it probably would not be a problem.

</comment></comment></comment></comment><comment><USER26> I think the worst example I have come across of this is my employers e-invoice operator's support email address they use to dispatch error messages from. The error messages (which tend to be fairly huge) have a small disclaimer saying that they wont answer any emails and that you must call a support number that costs almost two Euros a minute. The worst bit however is that the address itself is firstname.lastname@example.com, how much do they hate their customers?

</comment><comment><USER14> I used to monitor the reply address for a newsletter list with ~250,000 people on it. At this scale, a simple filter on "out of office" in the subject line really doesn't cut it.

To do it right, it's easily a full time job (and not a very fun one). "Noreply" addresses are bad for customers, but that doesn't mean they're always the wrong choice. As others have mentioned, it's better to bounce a reply than to accept it but not dedicate the resources to deal with it efficiently.

<comment><USER27> I used to work for a company that fed all replies to a custom CRM system which filtered out of office and bounces (unsubscribing on hard bounces automatically) and it worked great!

Those are enquiries from your (potential) customers. That's what you have support & sales people for!

It's strange that there are companies paying fortune to funnel people from AdWords to their sales enquiry form, but refuse to look at enquiries via e-mail.

</comment></comment><comment><USER28> > Some people have pointed out (fairly) that by not using noreply, you open > yourself up to autoresponders and delivery failure notices. My response to > that would be to go with an email address like friendlyrobot, which, when > somebody replies to it, replies with a friendly helpful message explaining > that nobody checks this address, and offering other addresses to contact.

Does this not run the risk of ending up in a loop?

</comment><comment><USER29> I generally read 'noreply' as, "Here is something useful. And, we're not asking you for anything in return."

'noreply's are usually something you chose to receive. They're a service.

That's not to say that feedback should be discouraged. Just that, unlike the great majority of startup email, something is being given instead of requested.

</comment><comment><USER30> I disagree with the logical premise of this article, at least for our specific case (social networking app sending notifications about activity). We most certainly _don't_ want replies. The sender of the emails is not us, our company, but the application itself. When a calendar app on your smartphone reminds you of a meeting, there's no "Reply" button because having one simply doesn't make sense.

The fact that email is a system where it's implied that anything is replyable is unfortunate. Email is currently the best option for sending out notifications on the Internet, since most people don't know about feeds or how to use them. If there were a better, equally established technology for one- way notifications, we would use it. (We use SMS messaging, too, but only when it makes sense, since it's pretty invasive.)

Anyway, we did try to kill the no-reply behaviour at one point. Sounded good on paper, but it was impossible to execute in practice. Some issues, off the top of my head:

* We got a ton of vacation autoresponses, in all sorts of languages and all sorts of phrasings. It would be too time-consuming to set up rules to deal with all of the variations.

* We got an onslaught of replies accusing us of spamming them. These were users of our site, remember; a lot of sign up to an app and then promptly forget that they were now members. They never read the actual email, which has a very visible footer explaining how to disable notifications.

* A lot of confused users replied to the emails, either to thank us for the notification (not useful), or intended as a reply to a specific user, such as in the case of "new comment" notifications.

Sure, in some cases (like comment follow-ups) we could automatically process the rely. However, I'm really skeptical about our ability to handle email formatting well, though. Things like quoting, HTML, "On June 12th, John Doe wrote:" headers (which often are not in English) and signatures must be stripped, and I could not find an existing library that would do this reliably.

Maybe if you are Facebook or Google you can spend the necessary manpower to deal with the technical challenges, but we can't; our company is small enough that we can't even afford the resources necessary to screen replies manually.

</comment><comment><USER31> I hate noreply as well, at least as it relates to paying customers. At Hover, we switched to a policy of using firstname.lastname@example.com for the default reply-to on all mailers and it works quite well. Zendesk and our mail system do a great job of filtering out the automated messages and bounce backs and a human being gets the rest. The remainder are usually full of opportunity for us. Consider this Startups - every time you use no reply, you are throwing away an opportunity to solidify a relationship with a customer or potential customer.

</comment><comment><USER32> > Hey asshole, what if I want to reply?

> What's that? You don't want crazies emailing you? You're worried about spam?

Based on these lines, it seems like you're misunderstanding what "noreply@" means... They're not saying it's against the "rules" to reply, they're just saying nobody is monitoring the mailbox so it would be a waste of your time to do so. It's almost a courtesy, really...

<comment><USER33> You missed the point. The article is arguing that companies should put a monitored mailbox as the default reply-to, and not use unmonitored mailboxes, as they are missing out on valuable feedback and interactions.

<comment><USER34> I think for things where feedback is warranted, sure. But for automated email sending, alerts, notifications, things which may have very high bounce rates, using a real mailbox is basically spamming yourself or your support team.

I tend to use 'automated@' or 'a.robot@' though, to reflect that it was sent on behave of a process.

<comment><USER35> But you won't know whether feedback is warranted. You don't get to decide - the user does.

As an example, yesterday I got an e-mail where a template variable hadn't been expanded. noreply means they don't get to find out. It's worth my time replying to an e-mail. It's not worth finding a contact form and filling it out.

</comment></comment></comment></comment><comment><USER27> If you don't want to deal with e-mails as such and prefer that people contact you via a web form (hooked to some CRM), then add this to /etc/aliases:

         yes-reply "|/your/script/that/reads/email"

It will pipe incoming emails straight to a script that can decode and file them appropriately.

</comment><comment><USER36> Over at <http://halftoneapp.com> we use email@example.com

<comment><USER37> When it works ;)

</comment></comment><comment><USER38> I hate seeing that evil no-reply email address. Completely agree that if companies want to better understand their customers, they need to leave the communication door open and allow candid responses to freely flow.

</comment><comment><USER39> How many legit businesses would not include a return postal address on their snail mail? Why do people expect customers to go to their home page and look for a contact form? Joss has a point.

<comment> T-hawk How many postal mailboxes do you know that trigger automated out-of-office responses and all the other noise?

Bounces do happen in postal mail, but 1) the PO usually has the option to discard marketing mail instead of bouncing it, and 2) the sender has a much higher incentive in wasted postage cost to avoid bounces in postal mail, as compared to an email bounce of a few packets.

</comment></comment><comment><USER40> I have a tiny company, and any automated emails always have written at the bottom "If you have any questions, simply reply to this email"

People are always slightly surprised by it, in a good way.

</comment><comment><USER41> What's funny is that many of these same companies will later spam users with surveys to illicit feedback.

</comment><comment><USER42> I hope you're volunteering for Facebook to use your email as their return address on everything.

<comment><USER43> Facebook already maps replies to meaningful responses in many cases.

<comment><USER42> Even if it were just the emails where they don't already map to a meaningful response...

With N million users, odds are high that at least N thousand of them: are irrational, just need someone to talk to, can't express themselves in writing, think you're their new pen pal, find you attractive (even if they've never seen you) and just want to meet you, etc.

I know that as users and customers we all want to be treated as beautiful and unique snowflakes. But a service of any scale will have many thousands (or more) of users that are just completely batshit crazy.

</comment></comment></comment><comment><USER44> I don't understand why this has become a trendy pet peeve to have now, at least 5 years after email ceased to be a relevant form of communication. If you care about email, you've already lost.

Overuse of automated out-of-office respondes does far more damage to the medium.

<comment><USER45> I get and send dozens of important emails a day. Why is email irrelevant?

 _"A May 2011 Pew Internet survey finds that 92% of online adults use search engines to find information on the Web, including 59% who do so on a typical day. This places search at the top of the list of most popular online activities among U.S. adults. But it is not alone at the top. Among online adults, 92% use email, with 61% using it on an average day."_

Source: Search and email still top the list of most popular online activities ([http://pewinternet.org/Reports/2011/Search-and- email/Report....](http://pewinternet.org/Reports/2011/Search-and- email/Report.aspx))

<comment><USER46> ...But me and all my (hipster|geeky|20-something) friends only communicate using a combination of Facebook, Twitter, and SMS! If it's not relevant within my inner circle of friends, then 'anyone who's anyone' doesn't care about it!

<comment><USER44> i hear what you're saying. however, i think it goes beyond that - <USER2> phenomenon of people's parents using facebook is widespread.

email, in a non-work context, has become a communications channel for low- value broadcast messages.

</comment></comment></comment></comment><comment><USER47> jesus. get a grip. its a stupid bot email. if thats the only way you can communicate with your users is through their hitting reply to an obvious no- reply email then you've got other problems.

</comment><comment><USER48> Hey. Genius. Some of us send over a million emails a week as a free service to users who are happy to hear from us. We just can't afford to check the damn inbox for that many people, so noreply makes it clear. Don't fucking reply because if we had to pay an agony auntie on the other end to feel your pain, the service wouldn't be free.

<comment><USER5> _> Some of us send over a million emails a week as a free service to users who are happy to hear from us._

I find that very hard to believe, but probably I'm just missing the point. What kind of service are you talking about?

<comment><USER49> Facebook? Reddit? StackOverflow? There are more than enough free high-volume- email services.</comment></comment></comment>


Ask HN: Does anyone ever hire non-tech help from here? - <AUTHOR>

I'm a very tech savvy generalist (previous experience includes some tech and design with mostly business).  I responded to the Freelancer and "Who wants to be hired" posts but got no response and noticed that both threads were full of replies about purely technical postings.  So I wondered if HNers actually posted/searched here at all when hiring for non-tech positions.  Thought I should ask separately in case there was a non-tech hiring thread that I missed.
My reply (with skill description) to Sept hiring thread: https://news.ycombinator.com/item?id=8253729
Thanks. <comment><USER2> Yes. We do+have.

Quartzy YC S11.

<comment><AUTHOR> Good to know. Did you post the opening or search through a "who wants to be hired" type thread?</comment></comment>


Show HN: Encrypto – Encrypt the files you send - <AUTHOR> https://macpaw.com/encrypto

<comment><USER2> Looks very nice.

Other than the concerns a closed source application carries, I worry about its longevity. I use gpg with symmetrical encryption to encrypt my files today. Not as GUI friendly, but as least I know I will die, and my files will still be of use. Encrypto looks great, but how long will it last? How long will it be updated? Are files encrypted with it going to last one or two generations, at least?

</comment><comment><USER3> Nice, the world need more of this type of closed-sourced software, it is the only way of preventing of information from being compromised. There's simply nothing better than closed-source security freeware. Well done! Kudos to you!</sarcastic></comment>


Show HN: Execute any comment from issues and pull requests on GitHub - <AUTHOR> https://github.com/nwtgck/actions-comment-run <comment><USER2> Wonder if this was developed for [https://githubhackathon.com/](https://githubhackathon.com/) or not.

This is by far the most interesting Action I've seen yet.

<comment><AUTHOR> Thanks! OK, I'll submit it.

<comment><AUTHOR> I submitted it.

</comment></comment></comment><comment><USER3> This is very useful actually.. I guess it's a stupid question, but is there room for XSS injection then into the actual bot source itself ? Or is that all taken care of already ?

I know you have authorized users and such, but should one get through.

I really like this.

</comment><comment><USER4> It'd be cool to have this accept comment reactions as extra inputs or controls. Don't run until rocket or run again for thumbsup. :eyes: could be run with verbose output.

I don't have an actual use case for this that I can think of but it is neat!

</comment><comment><USER5> Nice! One thing actions was missing (at least for me, or I couldn't figure it out) was the ability to run them on-demand/ad hoc.

I'm planning to use this to run a build+release script for a specific issue and reply with a changelog then close the issue/change the status for an open- source project I run.

<comment><USER6> You could create a workflow that listens for the `repository_dispatch` event, see [https://developer.github.com/v3/repos/#create-a- repository-d...](https://developer.github.com/v3/repos/#create-a-repository- dispatch-event)

:)

<comment><USER5> Awesome thanks! The project I run has a lot of emergency updates so this, being able to release simply with a comment referring to a specific issue in context is really helpful. this is how I've set it up:

[https://github.com/smashah/sulla/issues/197](https://github.com/smashah/sulla/issues/197)

</comment></comment></comment><comment><USER7> This is a very cool concept! It would be useful for CLI commands like `npm test someSpecificTest`.

<comment><AUTHOR> Thanks! You can use shebang. Learn more: [https://github.com/nwtgck/actions- comment-run#tips-run-other...](https://github.com/nwtgck/actions-comment- run#tips-run-other-languages)

</comment></comment><comment><USER8> Shameless plug: my Telegram bots that run arbitrary Lua[1] and jq[2] code.

[1]: [https://t.me/runluabot](https://t.me/runluabot)

[2]: [https://t.me/runjqbot](https://t.me/runjqbot)

</comment><comment><USER9> Next step: setting up email filters for @github-actions and various combinations of things you really don't need to see.

It's cool for sure, but maybe not for things like their big "lgtm" example.

</comment><comment><USER10> This is awesome!

Aside, does anyone know how to change labels to PRs based on merge status with github actions?

</comment><comment><USER11> I'm honestly not sure what I'd use this for, but only because I don't use GitHub for much.

The amount of integration is impressive, and I'm actually kinda sad this isn't being more highly voted up.

There's only one feature I think is really missing, and that's stored functions. Right now, I have to insert the full code snippet I want to run every. single. time. For scenarios where I want to modify the code snippet each time, this makes perfect sense, and is a valid first-class use-case that should stick around. But for all the scenarios where I just want to run the same old tidbit of code, I still have to reimport it fresh each time.

A few rambling thoughts/ideas:

\- Referencing a Gist (which should only work when the full #gistcomment-... fragment is included)

\- Referencing a code snippet in another issue, either by #number or by full URL (which should similarly only work when the full #issuecomment-... fragment is present)

\- Referencing a code snippet _from an issue in another project_

\- Allowing for the insertion of a SHA256 hash (either in hexadecimal (aabbccdd) or base64 (AbCd==) format) at the top of script bodies, for use in scenarios where I'd need to provide explicit authorization that I do indeed want to run a script that I didn't post myself

\- Referencing a script from a file in my repo

\- Referencing a script from a file in someone else's repo

You may ask why I am so insistent on dereferencing. a) it allows me to do magic things by wrangling URLs instead of entire blocks of code, and b) it lets me keep my posts tidy and not full of source code. My own bias strongly suggests to me that adopting a model like this might lead to slightly more widespread success. Your bias may disagree. I don't know what's closer to the truth.

Regarding the SHA idea, the way I concretely imagine this might work is that you'd introduce an alternate, optional block start like "`js SHA256:xxxxxxx", with the hash being applied to everything between the first and last lines (I think you might want to include the trailing newline after the script in the hash input - this will make life easier for those using editors that enforce one trailing newline).

This would indeed introduce massive redundancy - I now have to hash my blocks of code in order for them to run - but it would mean that people looking for code to run could straightforwardly and safely reference random stored functions (via something along the lines of "@github-actions run [http://github.com/.......](http://github.com/.......). SHA256:XXX") and they'll only be run if the code matches its own checksum _along with_ the checksum in the run link.

I also think that perhaps there might be an explicit "reference" syntax, like "@github-actions ref" or something, for scenarios where the bot would be ignoring the code in question, and only running it when someone references it later. Perhaps in this scenario an alternate header format could be used that doesn't cause the bot to be notified; perhaps this could be as simple as removing the @.

I'm imagining scenarios where issues get created then closed as a stashing ground for code snippets.

<comment> o-__-o GitHub has saved replies so the function is already stored and can be recalled with as little as two clicks</comment></comment>


Intel demos 7Gbps wireless docking - <AUTHOR> http://www.computerworld.com/s/article/9231264/Intel_demos_7Gbps_wireless_docking <comment><USER2> Probably won't make the front page which is too bad.

The nice thing about 60ghz is that its the resonant frequency of oxygen so that limits propagation, the bad thing is that it doesn't limit it enough.

So if you're familiar with the 'bluetooth' problem you may be familar with this. That is where you have different peripherals which cause a mating frenzy when they get near other things, or cause problems. My favorite example is my Apple bluetooth keyboard which I got for my iPad. If it gets bumped on, even if my backpack where it resides in in a different room, I can't bring up a keyboard on my iPad. Go to bluetooth, turn it off, but oops, that disables my headset/speaker too, argh! Get the picture?

Wires provide a fabulously tangible authorization protocol, further they are selective and disabling one doesn't disable them all. What is more, I don't have wires that crawl into my space from 25' away and try to plug into my machine. Bluetooth would have been a much nicer technology if some of these critical interface issues were considered and addressed. WiGig has the same problem.

<comment><AUTHOR> I dont doubt you, but how often does that happen? I have a a2dp headset, a touchpad and a keyboard (all BT) and havn't experienced any issues.

<comment><USER2> So do you ever wish to use your a2dp headset with both your desktop and your tablet and your phone? Took me forever to find one that could do two pairings, have yet to find three.

I'd love a keyboard I could pair to all three as well, but don't know how that would work either (maybe a selector for which device it should send to)

When I see this sort of thing I think "KVM switch without the switch" (monitor connected to multiple machines, keyboard, mouse, and speakers similarly, if only where I have a desktop and a place to put my laptop (2 machines) but that isn't the use case these guys have in their head, its put your laptop down and 'dock' which is great for that case but I'd love them to put enough hooks in that I can meet my perhaps unusual use case as well.

<comment><AUTHOR> My headset can do two devices at a time, but its a bother as only the first device can do a2dp, the second is talking only. This would be survive able if it didn't switch device if it lost connection to the first.</comment></comment></comment></comment>


How to deal with painful cofounder / friend? - <AUTHOR> 3 close friends started a company that does automated analysis of sensor data.
3 years in we have zero costs and 1 big customer. The company had revenues of $150K in 2015.
All profits are split 1/3 each. Equity is split 1/3 each.
1 of the friends/cofounders is a pain. The other 2 founders agree on this assessment. The main problems with annoying cofounder is his dogmatic attitude and short term vision. He would rather charge our only customer for every minor software tweak instead of enabling our customer to build their business bigger which would in turn help our business. He does not want to do any work to seek out new business.  He refuses to help on any parts of the business that he did not explicitly choose to work on.
I tried to offer a deal to him this week where I would take on new development efforts for a new product. I would not expect him to contribute at all but he insisted that he still get 1/3 split because I would be using some functionality that we had already developed though I plan to rewrite everything from scratch because our existing code base is a POS.
I would like to get him to agree to take a lower revenue split because I don't want to work with him but he took a hard line and offered to help build the product which is not what I wanted.
The 2 cofounders that agree on his poor attitude have not kicked him out because of long standing friendship.
Any comments or suggestions are greatly appreciated? <comment><USER2> you should be focused on finding new clients. why would you spend a bunch of effort on a new product unless you've exhausted sales efforts for your existing one. Each sales on your existing product is money in everyone's pocket. New development seems like a distraction. Also, maybe you should view his opinion as a good counter sink to you and your other friends opinions. Different view points is a good thing and will happen a lot more if you ever bring on more people. And if your main method of convincing people of your view point is "because I say so" you will have a bunch of yes man working for you. Also, you all need to work on a process to come to making decisions that will get better over time. A lot of times you can test ideas out and see if one is better. As for general high level things like charging customers maybe find a middle ground. or agree on a 2/3 vote for decisions. If he's coding and working on things then I would choose advice against "cutting him out"</comment>


Google Container Engine Is Generally Available - <AUTHOR> http://googlecloudplatform.blogspot.com/2015/08/Google-Container-Engine-is-Generally-Available.html <comment><USER2> Who isn't a hosting company these days?</comment>


Study Shows Student Loan Borrower Igorance - <AUTHOR> While only 477 undergrads were interviewed (at 3 universities in the Bay Area), the stats leave little mystery as to why Student Loans have spiraled.
Highlights:
- 72.95% thought Sallie Mae was a person, not a company
- 92.87% do not know the difference between subsidized and unsubsidized loans
- 97.90% do not know which loans accumulate interest in-school or during deferment
- 71.07% do not know the basic risks of a cosigner
- 75.89% with private student loans do not know the major differences between private and federal student loans
- 7.90% know their current interest rates
- 6.10% know their repayment terms
- 58.90% thought the total amount of outstanding student loan debt was in the millions (not billions or trillions)
- 96.02% did not know that student loan refinancing was an option after graduation
---
Source: https://lendedu.com/blog/January-student-loan-survey <comment><USER2> That is the lending industry in general. Ask any person on the tree to explain their loan... I would bet more that 75% are grossly incorrect.

I used to work for GMAC...

</comment><comment><USER3> All of these questions except interest and repayment terms are not indicative if anything.

</comment><comment><USER4> Now tell me why students should know about these things.

<comment><AUTHOR> ??

Ones financial commitments in life are rather important..</comment></comment>


The pros and cons of placebo buttons - <AUTHOR> https://www.economist.com/science-and-technology/2019/01/26/the-pros-and-cons-of-placebo-buttons <comment><USER2> This makes me so annoyed. I much prefer ones without buttons because I don't have to mess with it; when there is a button, I assume I have to go over and press it, but it sounds like in some cases I don't (for a while now I've suspected them to be pointless). But there's no way to tell the difference so I still have to everywhere.

<comment><USER3> This whole piece, and to be honest most of the comments here come from such a dark, authoritarian, arrogant perspective.

"lying to the plebs modifies their behavior very slightly in a good way or is it in a bad way?"

It's irrelevant, treat your fellow humans with some modicum of respect and dignity. Terry Pratchett's first rule of morality "don't treat people as if they're objects".

Anyone caught casually deceiving people for some tiny perceived benefit to either themselves or the people deserves a severe lesson in how "irrationally" angry people get when they're lied to.

You can save this page and the comments as an example to future generations of how the elites of this century had become morally bankrupt.

<comment><USER4> There's a spectrum to "nudges". Some government nudging is actually morally justifiable, IMO. Things like making retirement saving opt-out instead of opt- in, or hiding information about a probable disaster to avoid panic[0]. Placebo buttons I find somewhere between justifiable cost saving (if buttons were working in the past, or could in the future) and being disrespectful to people. But in this case, and in almost all cases, you can avoid _lying_ to people.

Beyond that, I strongly agree with your sentiment, and I frequently point out that if you were to apply standard marketing practice to your friends, you'd quickly get punched in the face - and justifiably so. To me, lying needs _heavy_ justification - on the level of saving lives.

I like this quote: "Promoting less than maximally accurate beliefs is an act of sabotage. Don't do it to anyone unless you'd also slash their tires." [1]

\--

[0] - E.g. evacuating a city of million+ will necessarily cause a lot of deaths _and_ heavily disrupt regional economy, leading to further deaths and suffering. Therefore, it's IMO justified for the government to avoid triggering evacuations if the risk is low, even if that means sitting on some information.

[1] - [https://web.archive.org/web/20130728200940/http://www.accele...](https://web.archive.org/web/20130728200940/http://www.acceleratingfuture.com/steven/?p=124), via [https://www.lesswrong.com/posts/XTWkjCJScy2GFAgDt/dark- side-...](https://www.lesswrong.com/posts/XTWkjCJScy2GFAgDt/dark-side- epistemology)

<comment><USER5> > To me, lying needs heavy justification - on the level of saving lives.

Agreed, and in case someone is looking for scientific justification, you can just look at it as specialized market economy (as quite a lot of things can be). Lying in this case reducing market information, which reduces efficiency. In this case, that translated into you wasting a small amount time and effort pushing a fake button. But multiply it across all the times you do it, and all the people that do it, and it's actually a fairly large drain overall (not to mention the frustration of expecting your actions to matter and them never seeming to).

I think the common refrain against this is that people don't act rationally or in the best interest of the whole in these cases, but I think that's more often just another case of poor market information leading to inefficiency, even if the source is different. The problem with manipulating the market by reducing information even more (deceiving people) is that if it works it likely only works while existing conditions persist, and may become much less useful later as conditions change. I.e. if people were crossing before the button was pressed and the placebo button helped, what happens when crosswalk sings start showing countdowns and people then become accustomed to noting that and waiting for them regardless if there's a button or not? Better information has make the system more efficient... except for those that still waste their time with the buttons that don't do anything, and now the prior strategy to manipulate people is making the system _less_ efficient than if it wasn't present.

Which is all just a really drawn out way of saying and showing that treating people with respect and giving them as much information as possible (and definitely not giving them false information) should lead to better outcomes overall.

</comment></comment></comment></comment><comment><USER6> I work in New York, but I go to Seattle periodically because that's where my company's headquarters is. How people treat the buttons is wildly different between those two cities. I hardly ever see anyone press the cross button in NY, since the convention is to wait for there to be no cars and then cross (and not bother with the button). In Seattle, I've seen people wait patiently at a cross walk even though there's no cars anywhere in sight.

I would imagine rather than a placebo effect, it's more of a self-selection phenomenon - rather than pressing a button making people more patient, the people who are more likely to follow "the rules" are more likely to press the button. And even if there is hypothetically a placebo effect, the result would be irrelevant if almost no one presses the button.

<comment><USER7> I believe jaywalking is illegal, and enforced in Seattle.

When I'm in the UK I will normally not press the pedestrian button (unless its the type of pedestrian only crossing which only activate with the button, not on traffic lights on a junction) . But when I'm in the US, or a different country with jaywalking laws, I will stick to the rules much more rigidly.

I also really enjoy the first time crossing a road when I get back, the taste of freedom!

<comment><USER8> Jaywalking is illegal pretty much everywhere in the US, but enforcement is very selective and regional.

<comment><USER9> Jaywalking is a $1 ticket in Massachusetts. I believe it's there simply to assign fault in a crash.

<comment><USER10> A crash involving whom? I'd be shocked if a driver can hit a jaywalking pedestrian and not be at fault.

<comment><USER11> Massachusetts pedestrians are only guaranteed right of way in marked crosswalks that do not have a signal. When there is a signal the light denotes right of way.

[https://malegislature.gov/Laws/GeneralLaws/PartI/TitleXIV/Ch...](https://malegislature.gov/Laws/GeneralLaws/PartI/TitleXIV/Chapter89/Section11)

</comment></comment></comment></comment></comment></comment><comment><USER12> For my daughter quite often the highlight of our walk to the shops is that she gets to push the button at the traffic lights. Whether they do anything or not, she just loves pushing buttons.

<comment><USER13> My 3 little ones have to take turns pressing the button, otherwise it gets messy... by the time they have all pressed the button it's time to cross

</comment></comment><comment><USER14> I notice a lot in London that there are a bunch of pedestrian lights in areas witha steady flow of traffic that will only work if the button has been pressed, yet every single day I see people, often the same people, stand there until someone else presses the button.

Part of me wonders if there's almost an aspect of not wanting to cause offense involved. If you're the person who presses the button, you're responsible for the ire of whatever drivers you delay, so you'll either wait for an gap to run across the road or someone else'll press the button and absolve you.

<comment><USER15> Not a Londoner, but I have zero regard for the interests and sensibilities of drivers. As a pedestrian, cyclist and driver, I feel safe in saying that the worst road users generally are (in order) drivers, cyclists and pedestrians.

Amusingly, that also goes in the same order of 'who is more likely to kill you if they run into you', which may play a part.

Eitherway, I always press the button. It doesn't matter if it's rush hour, middle of the day, or middle of the night.

My safety is more important than saving a driver a minute on their journey.

<comment><USER16> When I'm driving, it's the pedestrians that are idiots. When I'm walking, it's the drivers. Something I've always noted with amusement, how quickly the perspective changes. Like going through a Costco parking lot to find a spot, then parking and walking into the store.

</comment></comment></comment><comment><USER17> In Toronto, most of the buttons have long done nothing to control the light cycle, and only trigger the audio crossing indicator. Lately they've been replacing the signs signs on these, with each now saying "Button for audible signal only". Good way to re-purpose the existing hardware.

See here for a comparison of old vs. new [https://i.imgur.com/a0FXI5c.png](https://i.imgur.com/a0FXI5c.png)

<comment><USER18> In Kitchener (just west of Toronto), we have a bunch of intersections where there are two possible changes. For a car-triggered change (from the inductive loop in the pavement), the light just changes for a few seconds, to get the car through. If you push the beg button, you get the pedestrian change, where there's a momentary walk signal followed by a countdown.

I get why this exists in terms of not having cars on the busy street waiting for a countdown when there's no actual person there, but I find it very frustrating that there's basically zero chance that I will just "get a green" crossing the busy street, since it's such a narrow window now. And because I can't trigger the road sensor with my bicycle, it also means I have to ride up on the sidewalk to get to the button.

I would really rather it was just a timer.

<comment><USER19> Interesting about the road sensor. In Vancouver (years ago, admittedly), I had no problem triggering the road sensor with my bike.

<comment><USER18> Interesting! I've never had success triggering them, though that's not surprising given I'm on an aluminum and carbon frame.

There was actually a kickstarter a few years ago to build a magnetic loop you could put on your bike to trigger the sensor via a button press, but unfortunately it didn't meet its funding target and seems to have gone underground: [https://www.veloloop.com/faq/](https://www.veloloop.com/faq/)

<comment><USER20> If you've got metal rims, and the loops are reasonably tuned, you should be able to trigger them if you're well positioned. Apparently, adding a copper wire loop under your rim tape will work for carbon fiber rims as well.

There's some pretty good information here: [https://www.bikewalknc.org/bicycle-detection-at-traffic- sign...](https://www.bikewalknc.org/bicycle-detection-at-traffic-signals/)

But I've been lucky enough to have California government on my side, I guess.

</comment></comment></comment></comment></comment><comment><USER21> Worse yet, at least in Somerville and the general Boston area, I'm seeing touch-sensitive buttons instead of physical buttons that depress--with no haptic feedback; and only some of them play a recorded "Wait" when you press.

I'm gradually training myself not to jam my finger painfully against them to be "sure" I pressed.

If it turns out they're also placebos, I think I'm just going to give one a good kick next time I go by...

<comment><USER22> Those aren't placebo buttons, rather for the hard of sight. The audible "Wait" is to tell to not cross yet, and it will then tick when it's safe to cross, and increasingly tick faster the time lowers.

<comment><USER23> Which doesn't explain the ones with neither haptic nor audible feedback.

</comment></comment></comment><comment><USER24> I'm fairly certain most, if not all, the lights in my area are automatic, however pressing the button rapidly causes the "wait" message to repeat as fast as you press it, which is a good way to pass the time while waiting.

More on topic, I wonder if people who jaywalk don't press buttons, or people who press buttons don't jaywalk? Seems like people who are already not going to jaywalk are more predisposed to button presses, but will not cross against the light even if they don't press the button.

<comment><USER25> I'll press if I think I can't jaywalk in a reasonable timeframe. If I can then no sense holding up traffic.

</comment></comment><comment><USER26> "people more readily obey a system which purports to heed their input". Sounds like democracy.

<comment><USER27> Care to clarify your point?

<comment><USER26> In a country with millions of voters, a single vote isn't likely to be what decides who gets elected. In the limit of infinite voters, casting a vote is a lot like pressing a placebo button. It's not directly useful for the voter, but it makes the voter more likely to accept the outcome.

<comment><USER28> >In a country with millions of voters, a single vote isn't likely to be what decides who gets elected.

Forget worrying about single votes: even having most of the votes isn't necessarily enough to influence things! (Referring to the 2000 and 2016 presidential elections, and to the concept of gerrymandering.)

</comment></comment></comment></comment><comment><USER29> If people's behavior can be modified simply by giving them the perception of their input mattering then I would expect the coming AI interfaces/assistants and goal oriented concierge services to pick up on this and leverage it, which could get pretty creepy depending on the goals involved. Advertisement disguised as meaningful interaction.

</comment><comment><USER30> I feel like there is a bit of ethical hysteresis here.

If you have buttons that are designed to be placebo from the start, I find that unethical.

If you have buttons that work, but have to be disabled due to a change in plans, that strikes me as less problematic (but they should still eventually be removed).

So, how you get there matters.

<comment><USER31> Eh. I think although it's a 'dark pattern', it's one with measured effects on behaviour that result in less people crossing against the light, which (I would assume) correlates with less accidents. I think calling it unethical is a bit much.

<comment><USER32> I'm sure I'm in the minority but I don't even think it is that. If the button at each intersection prevents one accident (hospital or even death) then it is worth it. So people got tricked to be safer? Oh, the humanity. People who are going to cross anyway still will.

<comment><USER3> It's immoral because you don't have the right to deceive and make decisions for other people.

Let's take the example further and see if you can find a point where it starts to be obviously unethical, then work your way backwards on the principle discovered.

How about we lie to you about the contents of your food, in some way that manipulates you to be healthier?

Still OK with that, why don't we tell you that something is vegetarian if you can never tell the difference, by your utilitarian metric you've increased my happiness, I got to enjoy some delicious meal.

If I find out you have one day left to live and that day will be happier not knowing that fact, do I have the right to lie to you about it? The utilitarian benefit calculation goes up so case closed right?

If someone if a devout Jehovah's witness, give them a blood transplant and deny that it ever happened, do you have the right to do that?

Not everyone is on the same utilitarian value curve as you and you don't have the right to mess with and deceive them because you think you're smarter than they are. Some (most) people value truth, dignity or reality in their utility function, and you might not even be smarter than all of them.

<comment><USER32> I'm sorry but I don't buy the slippery slope argument here. No one is saying that the ends justify the means. Is adding a stop sign to a random intersection any different? Who decided that people should stop there? In small towns, a lot of times it is because an elderly person went to the township meeting every week for years complaining so they gave up and added one, not because there is any inherent safety issue.

Governments and corporations literally lie to us every day. Not causing a light to change three seconds earlier (because it _will_ still change) doesn't violate anyone's civil liberties or religion or cause their death. Governments do manipulate things already to make people healthier and safer. Soda taxes, seat belts, food pyramids (bought by the FDA) are all examples.

In this case, most municipalities have laws against jay walking. One could argue this is just an enforcement of that law.

</comment></comment></comment></comment></comment><comment><USER33> This reminds me of an elevator's "Door Close" button. Manufacturers still include them for the peace of mind of passengers, despite computerized systems and many area laws (in the US, the ADA has language regarding door-open timespan for wheelchair access).

EDIT: Thanks to a_c_s for pointing out that the button can work when the elevator is in emergency/service mode. More fun information on elevators, crosswalk and other buttons can be found here: [https://www.nytimes.com/2016/10/28/us/placebo-buttons- elevat...](https://www.nytimes.com/2016/10/28/us/placebo-buttons-elevators- crosswalks.html)

<comment><USER34> In my office (in Germany), when the elevator door opens and I hold the "close door" button, it _immediately_ starts closing as soon as it's finished opening. So at least that one is definitely not a placebo.

<comment><USER35> Same here in the UK. Both the close and open buttons work immediately after being pressed in my office, so they're clearly not placebos.

</comment></comment></comment><comment><USER36> Pros: You save money & reduce jaywalking. Cons: you spread germs and further erode trust and respect for government. The saved money and jaywalking compliance are Pyrrhic victories as citizens sass officers and vote for tax- cutting politicians.

<comment><USER37> > you spread germs

Really? I don't think there would be _any_ change or effect regarding microbes passed around the population if pedestrian crossing buttons did not exist. They just aren't a disease vector, or at the most optimistic are down in the statistical noise at a one in millions chance of having an effect.

<comment><USER36> Yeah. Given that coffee pots are the most virulent vector in the workplace, it seems unlikely that a button everyone presses with their fingers is not an important vector as well. The issue is getting germs on your fingertips, and then wiping your eyes or nose with those fingers.

If pump handles are a problem, I bet traffic buttons are as well.

<comment><USER37> Interesting, did not know about coffee pots. However for pump handles the contact area and time in contact is _much_ greater than a single touch of one fingertip, plus the fact that it is much more likely for the hand on the pump to then immediately be in contact with drinking utensils or even wiping the mouth etc. So I still think crossing buttons are not a plausible vector. Be happy to read any sources that contradict this though...

<comment><USER36> Just a quick and dirty literature search on pubmed:

When you have a cold or flu and wipe your nose, pressing a light switch transfers active viruses to the switch. (J Med Virol. 2007 Oct;79(10):1606-10. Environmental contamination with rhinovirus and transfer to fingers of healthy individuals by daily life activity. Winther B1, McCue K, Ashe K, Rubino JR, Hendley JO.)

Flu and cold viruses found on handrails, TSA luggage trays, & buttons of airport payment machines (BMC Infect Dis. 2018 Aug 29;18(1):437. doi: 10.1186/s12879-018-3150-5. Deposition of respiratory virus pathogens on frequently touched surfaces at airports. Ikonen N1, Savolainen-Kopra C2, Enstone JE3, Kulmala I4, Pasanen P5, Salmela A5, Salo S4, Nguyen-Van-Tam JS3, Ruutu P2; PANDHUB consortium.

Viruses contaminating touched surfaces last for about 7 days, maybe more. (Am J Infect Control. 2018 Jan;46(1):105-107. doi: 10.1016/j.ajic.2017.07.014. Epub 2017 Oct 12. Isolation and identification of human coronavirus 229E from frequently touched environmental surfaces of a university classroom that is cleaned daily. Bonny TS1, Yezli S2, Lednicky JA3.

Viruses on contaminated surfaces last longer outdoors in sub-zero temperatures than in heated indoor environments (Appl Environ Microbiol. 1983 Oct;46(4):901-5. Survival of human parainfluenza viruses in the South Polar environment. Parkinson AJ, Muchmore HG, Scott EN, Scott LV.)

Touching a surface and then wiping your eyes or nose gives you a 50% chance of getting a cold/flu (Am J Epidemiol. 1982 Nov;116(5):828-33. Transmission of experimental rhinovirus infection by contaminated surfaces. Gwaltney JM Jr, Hendley JO.)

</comment></comment></comment></comment></comment><comment><USER38> So it means sometimes cars should stop even when there is no pedestrian trying to cross the road? I thought initially these buttons were made to improve road traffic.

<comment><USER16> In the article they point out that the switches have been removed/deactivated on intersections where there is no benefit. In other words, there is nearly always a pedestrian waiting at that point in the cycle. Some intersections that don't see that same pattern continue to have a working button.

</comment></comment><comment><USER39> You don't have this kind of problems in Paris. Nobody cares about the crossing lights here :)

It's pretty impressive, or scary, when you come from a country where people respect the crossing lights, but once you're accustomed to it, you just can't stand waiting for the green light if there is no car in sight (let's be honest, no car in 30m range is enough)

</comment><comment><USER40> In Germany, there is a twist: When you press such a placebo button, a white light that reads "warte" (wait) starts flashing.

<comment><USER41> We have many different kinds of buttons. Difference 1, of course, is functional vs non-functional. Both exist. Then there are acoustic buttons that activate the sound upon turning green. Sometimes these are normal buttons, sometimes you can't press the normal ones and the sound button is below it, and sometimes there are two buttons. Some traffic lights have some kind of notification that one of all these types of buttons was pressed, sometimes they don't.

There is no rhyme or reason for how traffic light buttons work in Germany. It all seems random.

</comment></comment><comment><USER42> With all that AI fuss and widespread video surveillance, would it be that hard to mix the two, then count the number of cars and optimize traffic/pedestrian lights accordingly?

<comment><USER43> The number of frusturating failure modes and possible abuses simply boggles the mind.

</comment></comment><comment><USER44> Seems there is an important opportunity here to apply machine learning to video feeds of incoming traffic and people flow, and shape the phases to minimize wait time for all citizens, equally. The current systems require expensive induction loops and only care about cars and button pushers, this being how we got here.

If people learn the system acknowledges their needs and tries it best to let them cross safely, it might lead to much better long term compliance then some fake buttons which are bound to be exposed as fake. The whole idea of giving higher priority to cars is an insult to taxpayers walking their neighborhoods.

<comment><USER45> It would be better to just build smaller intersections that do not need millions of dollars worth of signals and cameras and ML inference rigs.

<comment><USER44> The cost of smart trafic lights is peanuts compared to the costs of reconfiguring and rebuilding a major intersection.

<comment><USER46> Your comment is based on no data at all and just a handful of assumptions that are most certainly far from true.

<comment><USER44> I happen to work for a council and know the general order of magnitude for road infrastructure investments - I participate in their approval. I would file this suggestion of "building smaller intersections", that is, completely re-routing the traffic flows in a given area, in the _purely fantastical_ bin.

If we could squeeze 20% more traffic capacity from a given congested intersection with a one time investment of, say, under €200K, it would be a major breakthrough. We use a complex system that involves periodically measuring traffic flows using pneumatic tubes, then feeding that data to a computerized model that will produce the timing sequences for the lights lights and their evolution during a day. There is a crew moving around the district installing these tubes and counters for a week or so.

The current state of the art are induction loops embedded in the asphalt that measure the number of incoming vehicles and adjust the timings in real time. A purely optical detection that can work in all weather and recognize all types of vehicles or even pedestrians would be quite a feat.

Anyway, thank you for your factual and data infused contribution.

<comment><USER46> Hahaha well that's all you had to say! You're more informed than your first comment led me to believe. Thanks for writing this out. If you wish to avoid my disparaging remarks in the future, lead with this and not vacuous negativity on someone else's thoughts.

</comment></comment></comment></comment></comment></comment><comment><USER47> To me the only purpose for having a button is for intersections that only go red when there is a car or pedestrian waiting to cross.

</comment><comment><USER48> [https://outline.com/kAmVHb](https://outline.com/kAmVHb)</comment>


Capital Factory Demo Day: Five Startups on Display - <AUTHOR> http://austinist.com/2009/09/10/capital_factory_demo_day_five_start.php <comment><USER2> I'm not impressed by any of these ideas. It's hard to believe out of 200+ business plans submitted, these were the best 5. It's also hard to believe that they are just _ideas_. Any of these ideas, except maybe Famingo (I'm not sure how complicated that thing will be), could have a prototype or even a fully functional version up and running in no time.

Where is the innovation? Where are the _hard_ problems being solved? These are me too ideas. Maybe I'm being overly critical, but I just don't see the value and I don't see any competitive advantage to an idea that could be a side project for anyone more capable. Imagine a pet store throwing money at the pet health idea or ebay or craigslist going after shared storage or an iPhone app on the networked games.

I personally would never invest in any of these ideas.

<comment><USER3> I feel this is problem systemic to any company funded by a seed incubator. Solving really hard problems or developing truly breakthrough technology typically requires significant funding, which seed incubators don't have. Companies solving these problems are better served by going to traditional VCs - not only for money, but also for more direct expertise.

Edit: Not that seed incubators are a bad thing.. they just serve a funding need for a different type of company. It's no surprise that most seed incubated companies are web companies.

<comment><USER4> Some of the other seed stage groups, esp YC, assume their program is just the first step on the way to more funding.

Capital Factory doesn't seem to have this mindset, so they're aiming lower.

I agree with the GP, I wasn't impressed by their choices either. (disclosure: they didn't pick me)</comment></comment></comment>


Internet advertising: Going up, up, up - <AUTHOR> http://news.com.com/8301-10784_3-9735979-7.html?tag=nefd.only <comment><USER2> The big advertising spender is Proctor & Gamble, which leads at $4.9 billion.

4,900,000,000 dollars to differentiate soap.

I'm surprised Newspapers are still as high as they are. It's going to look more and more like the _Geritol and Gold Bond powder presents Lawrence Welk and his Champagne dancers hour_. Can Geritol save the NY Times?

<comment><USER3> The more generic your product is, the more you have to spend to differentiate it.

Coke is just sugarwater. Few could tell it from Pepsi if you switched the can. Nearly all its "value" is brand.

<comment><USER4> Maybe I'm one of the few, but I can instantly spot the difference between Diet Coke, Coca Cola, and caffeine-free Diet Coke and have done when mistakenly given one for another in a glass. The difference between Coke, Pepsi, and other colas is more marked.

I suspect a lot of people that automatically reach for a Diet Coke every day would also spot the difference.

I get the impression you don't drink it?

<comment><USER2> It would be interesting to give people who make claims like that a taste test. We sometimes see odd results from professional testers in blind tests: You know, Two-buck chuck and MCD's premium coffee winning huge competitions. Put some boone's farm in a decanter, and I'll bet your snootiest guest will like it, even if its "a little sweet".

I _think_ I can tell the difference between caffeine and non-caffeine coke, but it might just be the label. Maybe I'll test myself sometime...

<comment><USER5> You're mixing identifying which you like better with being able to differentiate.

PG used a bad example, but I think it'd be hard to argue that it's not true in general. Bottled water might be a better example.

BTW, I can quite easily tell the difference between non-caffeinated diet coke and regular diet coke. There's an unmistakable difference in smell with the non-caffeinated one. I don't even have to taste it. It gets way trickier telling the difference between the various "diet" cokes in the US, Europe, and Asia.

</comment></comment></comment></comment></comment><comment><USER6> Here's an interesting article: Bob Garfield's 'Chaos Scenario' A Look at the Marketing Industry's Coming Disaster <http://adage.com/print?article_id=45561></comment>


Twitter "Unintentionally" Used Your Phone Number for Targeted Advertising - <AUTHOR> https://www.eff.org/deeplinks/2019/10/twitter-unintentionally-used-your-phone-number-targeted-advertising <comment><USER2> I don't understand why this isn't a bigger story here on HN - have I simply missed the big discussion?

[https://news.ycombinator.com/item?id=21197104](https://news.ycombinator.com/item?id=21197104) (1 comment)

[https://news.ycombinator.com/item?id=21197322](https://news.ycombinator.com/item?id=21197322) (2 comments)

[https://news.ycombinator.com/item?id=21199742](https://news.ycombinator.com/item?id=21199742) (no comments)

[https://news.ycombinator.com/item?id=21200363](https://news.ycombinator.com/item?id=21200363) (no comments)

[https://news.ycombinator.com/item?id=21201922](https://news.ycombinator.com/item?id=21201922) (no comments)

[https://news.ycombinator.com/item?id=21203937](https://news.ycombinator.com/item?id=21203937) (1 comment)

[https://news.ycombinator.com/item?id=21203978](https://news.ycombinator.com/item?id=21203978) (1 comment)

[https://news.ycombinator.com/item?id=21204630](https://news.ycombinator.com/item?id=21204630) (no comments)

[https://news.ycombinator.com/item?id=21206624](https://news.ycombinator.com/item?id=21206624) (no comments)

Hah! Here it is !!

[https://news.ycombinator.com/item?id=21196833](https://news.ycombinator.com/item?id=21196833) (220 comments)</comment>


Ask HN: How do you monetize from Patenting? - <AUTHOR> I have filed quite a few IPs through my current company. But, the rewards my company pays are meagre. I think I have some more promising ideas that can be patented in areas of Autonomous driving/Computer vision.<p>How do I monetize them if I have to file on my own? Is it worth filing on my own as there is significant Cost I need to bear for Patenting. or are there any alternative options. Pls suggest. <comment><USER2> Patents are cheap and fairly easy to file - you can get a provisional patent for a few hundred dollars that gives you about a year to test the waters and see if you want to get the final patent. The total cost if you file yourself will be under $2k. Lawyers will add another 5-10k to that, but you don't need them if you're willing to do a little research. The big benefit of lawyers is that they know how to make the patent language vague so it is easily "weaponized."

The next step while you're preparing your provisional patent/final patent is to create a really slick demo to sell prospective licensees.

Once you have a provisional patent and a demo the next step is to actually find people to license to. If you have lots of industry contacts this could involve making a few phone calls, but in most cases you are going to need to work trade shows. Cold calling can work too but it's tough.

<comment><USER3> I second the recommendation to write/file patents yourself vice wasting money on lawyers. As implied, you generally won't be succesful selling an idea without a decent demo prototype, so dont fall into the trap of thinking the patent is the end-game. If you do consult a lawyer, I suggest thinking twice before filing any foreign patents (assuming you're outsie of the USA). If found foreign patents to be a major money pit, which pobably isnt worthwhile unless you've invented something like, say, "the wheel."

For patent images, you can do just about everything in PowerPoint and Sketchup.

Lastly, if you do file yourself, note that you can file your first few patents as a micro-entity, which lets you pay a little less. Don't forget however that ther are mainennance fees down the road though after the non-provisional is published. These can be a shock if you're not expecting them. Here's a rough summary of small entity USPTO patent lifecycle costs.if you file yourself (its a little cheaper for micro), details may vary slightly:

1\. Provisional Filing - $130 ______________ (after 1 yr file non-provisional) 2\. Non-prov. Filling - $140 3\. Utility Search - $300 4\. Utility Exam - $300

Total non-provisional fees (2-4): $800 ______________ (after ~2yrs patent will issue) 5\. Notice of Allowance (i.e. issuance) fee: $480 ______________ (Maintenance fees over patent's life) 6\. @ 3.5yr: $800 7\. @ 7.5yr: $1800 8\. @ 11.5yr: $3700

<comment><AUTHOR> That's a really good info. Thank you.

</comment></comment></comment><comment><USER4> My two cents....Patents are only worth what you can afford to defend them.

A product that is hard to reverse engineer is almost as good as a patent. And a product might be the quickest way to monetize any idea.</comment>


Running Mac OS X on standard PCs - <AUTHOR> http://reviews.zdnet.co.uk/software/os/0,1000001098,39415279,00.htm <comment><USER2> Not a bad guide. I run Mac OS X 10.5.2 on my Dell XPS M1330 with (almost) no issues. It's my primary OS, and I use VMWare Fusion to boot Vista. If you want further guides and a great OSx86 community, try the forums at insanelymac.com

</comment><comment><USER3> I got iATKOS just a few days ago, version 2.0 came out the other week. Its working OK on my 3-year old Dell Precision M70. osx86.com and insanelymac forums are great places to learn more, though to actually download the isos you'll need to go to less scrupulous sites...after all no matter what you do you're breaking copyright law by installing a hackintosh!</comment>


Ask HN: how much to budget for design? - <AUTHOR>

I've been working part time on a web app for the industry I work in.  I've almost finished the back-end but have next to no design skill and very little front-end experience.  What would be a reasonable budget to outsource the design?  I'll need 5 unique pages and another 5 generic ones to use as a model for further pages.  I'd like the design to be responsive to be mobile devices, tablets and desktops. <comment><USER2> 1\. Spec the job - page count is good, but how complex are those pages? Make a wireframe which shows EVERYTHING. And if there is something you can't show (example: "a logo flies onto the screen") make a note of it.

2\. Show your well thought out spec to any designer and ask for an estimate!

3\. Eve if you designer is a kid out of school with no experience you can make them take a guess on each page.

4\. factor in the fact that there will be a number of revisions after the designer shows you something. Figure at least two to three rounds.

Just so you know, as a designer I can tell you that so many people never bother with step #1 and waste money and have their projects go off the tracks as a result.

</comment><comment><USER3> So, you need 10 templates or just 10 HTML pages built from the same template?

Is there a lot of front-end functionality that needs to be built (ajax calls, form validation, etc) or just basic HTML pages?

</comment><comment><USER4> Depends on the scale. Check sortfolio.com for some ideas though :)</comment>


Incomplete page loads on HN. What is going wrong?  - <AUTHOR>

With every page loading partially (Specifically the first post or thread) I am not even sure if all of you would see this post. But I am sure PG can.<p>Something wrong with specific posts or my account or some javascript mess up that the posts are not loading completely. <comment><USER2> We're up against some MzScheme memory limit. Usually it's not a problem because we lazily load items from disk. Eventually, though, the news process runs out of memory and starts GCing excessively. We have other software that notices this and restarts it, but this time it missed the problem.

<comment><USER3> Is HN flat-file based ala Viaweb, or is it on top of a relational database now?

<comment><USER2> Still files.

<comment><USER4> still files as in "we're looking at something else"?

</comment></comment></comment></comment><comment><USER5> Must be all those tables, pg ;)

</comment><comment><USER6> If you build it on rails this wouldn't.... err, wait a second. Nevermind.

</comment><comment><USER7> Every once in a while my profile page and the submit page show the page header but no content for several hours. Same problem?

</comment><comment><USER3> I was getting that too all morning (about 4:30 - 8:00 EST)... just stopped about 10 minutes ago. During the outage Google Reader still had all the new stories from overnight, though.

</comment><comment><USER8> Looks like the server was just reset (the site was completely offline for a short time) and it's fixed now.</comment>


Show HN: SpaceBase - a New Realtime Spatial Data Store - <AUTHOR> http://blog.paralleluniverse.co/post/19681275988/introducing-spacebase

<comment><AUTHOR> I can tell HN that in about a month we'll be open-sourcing the in-memory data grid that's at the heart of the SpaceBase grid. It's an IMDG different from all others, as it has some very unique performance characteristics that make it suitable for certain use-cases.

<comment><USER2> Can Spacebase support locations which are Parameterized in time? For example, could one have a solar system whose planets move according to equations based on GMT?

<comment><AUTHOR> You would need to update the locations according to the equations yourself, so that at any given moment (if you update all of them in one atomic transaction), their locations are up to date. We have not yet seen a compelling reason to support spatiotemporal objects, but this is something we might consider.

Note, however, that SpaceBase truly shines when there is a large number of objects and a lot of queries/transactions.

</comment></comment></comment><comment><USER3> Awesome stuff.

 _Which brings us to another important point: SpaceBase is built to scale. It scales gracefully across CPUs and across a computing grid. It scales so well that it allows building large shardless MMO games. In-fact, shardless MMO games and virtual worlds were one of the use-cases SpaceBase was specifically built to handle. (Distributed SpaceBase, or SpaceBase-on-a-grid is currently in the advanced stages of testing, and will be available for evaluation and purchase within a couple of months. The single-node, multi- and many- core deployment is available for evaluation right now!)_</comment>