Stop sending emails for real time requests - <AUTHOR> http://www.cyrusstoller.com/2014/01/08/stop-sending-emails-for-real-time-requests/ <comment><USER3> I'm actually quite the opposite. I usually have my phone off or silenced when I'm in the middle of working. That being said, I'll take a break every half an hour or so to check up on my e-mail inbox and address the urgent messages.

I also absolutely despise when people text me with "call me asap", "hi", "yo", "hey", or any other meaningless variant. It's vague and I have no idea if what they need is actually important or something that I can address later, without needing to interrupt my workflow. Rather, if you must text me, I much prefer some context and information about issue in the message, i.e: "call me asap, i have a question about ______/i need _______." Really, I prefer an e-mail of a few or more sentences describing what you need.

Above all, I try to avoid the following interaction via text messages:

> Hey

< Sup?

> Nm, do you have a sec?

< Yeah, what do you need?

> I need blah blah blah blah.

Why can't people just do:

> Hey, when you have a sec, I need blah blah blah blah...

This is texting, not TCP.

<comment><AUTHOR> I agree with your point re: pseudo TCP.

I don't like that I feel the need to compulsively check my email. It always takes me longer to respond than it should.

<comment><USER4> I don't get the part about needing to check your email as in anyway difficult? My iPhone with the gmail app has a very pleasant tone when I get an email in my priority inbox. I don't have to check anything or be compulsive on any way.

<comment><AUTHOR> You must be better at multitasking than me. Those types of interruptions take me out of the zone.

</comment></comment></comment></comment><comment><USER5> By far, the most important thing is to understand your recipient's preference, not the technical merits of a particular medium/protocol.

I'm active in several tennis leagues locally. Between arranging team practice, scheduling flex matches, putting together pick-up practice matches, etc, I spend a lot of time communicating with a diverse group of folks about last minute planning updates. Though I generally prefer email for most things since it immediately pushes to my phone just the same as a text or IM, it's been interesting to discover the wide range of preferences that other people have.

Some people are 100% email, period, and will respond to emails from red lights, just a few minutes away from meeting you in person.

A surprising number of people in their 30s and 40s do not have Facebook accounts (not out of privacy concerns, but general disinterest), completely ruling out Facebook messages/IMs.

Some people do prefer text messages, but I haven't found that SMS guarantees any particular immediacy. Some people actually reply to their emails hours quicker than their texts.

A few people I've dealt with share a single email account with their spouse and/or only check email once or twice a day (which blows my mind on both counts...). I'm talking about people young and active enough to play competitive tennis too, not your grandparents. In one of those cases, I can get in touch with the guy in real-time almost every time by using iMessage.

A few people insist on Skype, Google Hangouts, WhatApp, or some other proprietary network. Guess what? If I want to get in touch with them ASAP, I suck it up and use their preferred network.

Maybe the weirdest one is there are a few people I can most reliably get in touch with via Twitter DMs, even though I have their phone number.

Point being, selecting an optimal set of communication protocols almost always fails when that set of rules comes in contact with the real world. If you really want to get in touch with people immediately and consistently, you have to tailor your approach to the person.

<comment><USER6> " _Some people do prefer text messages, but I haven 't found that SMS guarantees any particular immediacy._"

Forget immediacy, SMS doesn't even have reliable delivery. According to Wikipedia:

" _SMS messages are generally treated as lower-priority traffic than voice, and various studies have shown that around 1% to 5% of messages are lost entirely, even during normal operation conditions, and others may not be delivered until long after their relevance has passed. The use of SMS as an emergency notification service in particular has been starkly criticized._ "[1]

Compare to e-mail, which will make repeated attempts to deliver your message and notify you if your message couldn't be delivered.

[1] [https://en.wikipedia.org/wiki/SMS#Unreliability](https://en.wikipedia.org/wiki/SMS#Unreliability)

<comment><AUTHOR> If it's urgent, wouldn't it make sense to just call?

<comment><USER5> There's a difference between something urgent and something that's merely time sensitive, I think.

In my example of scheduling tennis practice, updates need to be timely, but they aren't urgent enough to warrant spending time on the phone with everyone involved. Firing off a few asynchronous messages actually means the last few people I would have called get the information quicker than if I had called each person individually.

Voice calls are great for a lot of things, but are slow, tedious, and unnecessarily single-threaded when it comes to plenty of time sensitive communication needs.

</comment></comment></comment></comment><comment><USER7> The reason people use email for everything, including urgent matters, is because email is the only thing of the 4 channels mentioned in the article that we usually type on a full size keyboard. It's much more convenient when working than calling/texting/IM(when the phone is needed)

the proper solution is prioritizing email, and making your email client/device notify you according to the priority level

<comment><USER8> I completely agree with this- emails are cross-platform and available on the vast majority of connected devices, no phone required.

The IM option of this theory also fails to mention that the number of different IM options all fail to talk to each other, or even an overarching client (like Pidgin or imo). Remembering which of my contacts use Snapchat vs Whatsapp vs Facebook vs Hangouts seems utterly incompatible with the idea of the internet connecting people.

<comment><USER9> Yes plus a lot of these networks fail pretty hard... with Gtalk/Hangouts for example it's not rare to miss notifications because you got them on the laptop but not on your phone, or the opposite.

Also Whatsapp stupidly doesn't provide a web or desktop interface.

Skype on mobile devices uses way more power than it should.

In the end I hate Facebook for a number of reasons but it's the only reliable solution I have found so far: fast, reliable, (nearly) everyone is there.

<comment><USER10> > In the end I hate Facebook for a number of reasons but it's the only > reliable solution I have found so far: fast, reliable, (nearly) everyone is > there.

Doesn't this even more so apply to email? I don't know a single person who has a facebook account but not an email address. And even for those there is a build-in email bridge: [https://www.facebook.com/help/224049364288051](https://www.facebook.com/help/224049364288051)

</comment></comment></comment></comment><comment><USER11> Texting and using IM is bad advice. It's such bad habits that cause us to feel anxious because we need to be reachable via N different channels all the time.

Better advice: use the phone if it's urgent and you need to talk to someone immediately, otherwise use e-mail to allow the recipient to process your request asynchronously. It's not your fault if they have issues with e-mail in general.

<comment><USER4> How is the phone any different to txt in this regard? Both use the same channel and txt has the advantage that it's less invasive.

Txt/bbm/iMessage etc are all much better options than calling someone. For me and most of my friends the phone is the last resort, I hate talking on the phone.

<comment><USER11> > _How is the phone any different to txt in this regard?_

The phone is immediate, you can talk to someone _now_ if they are available at all. Texting is asynchronous and people cannot tell from the notification sound whether it's urgent or not and may choose to ignore messages for a while.

> _For me and most of my friends the phone is the last resort, I hate talking > on the phone._

I guess you must be texting too much. Old people like me, while hating the phone too, despise texting with its cumbersome, slow input and frequently unimportant use cases. If people would stick to text for important stuff only, it might be more useful. But they don't, so it isn't. The same goes for IM, it's just a distraction channel.

</comment></comment></comment><comment><USER12> Makes no difference to me, honestly. Calls, texts, IM, and of course email all go to my inbox, and all are equally accessible.

I _never_ answer voice calls unless they're pre-scheduled (and even then I much prefer to call than be called). The transcribed message goes in my email. 99% of the time, the ringer on my phone is off, unless there's a specific reason to have it on. Often my phone is off.

Texts go both to my phone directly, IM, and as an email.

</comment><comment><USER13> I much prefer people to spend the time constructing a clear request in an email than an ad hoc phone call, especially those that are out of the blue.

If you call me, you'd better follow up with an email.

If you email me and it's urgent, you'd better follow up with a phone call.

That's all there is to it.

</comment><comment><USER14> I prefer to use email for most communications as it makes it a whole lot easier to pull up past conversations. If I'd had communication in the form of calls, texts, IM's (probably on multiple clients) as well as email, it'd probably be more difficult to pull up any information that I may need later on.

Using email alone allows me to search for specific conversations, and not have the trouble of losing or having great difficulty finding conversations.

I do occasionally use Skype and IRC, but I know which people I communicate with on these platforms, and keep on top of documenting anything I may later need to refer to.

I agree that if you need something urgently, then a call can be great. However, for general communication, I see no issue with using email.

I think it'd be a more interesting topic to discuss how to efficiently use subject headings, as I've often had important emails slip under the radar, and less important emails demand some form of urgency that isn't existent.

<comment><AUTHOR> I agree that general communication is a different animal all together. I'm talking about when you need someone to do something.

</comment></comment><comment><USER15> I wish there were a way for recipients to define a message routing and format conversion protocol, incentivized by money.

e.g., you can call me at night for $5k. You can call me during "phone hour" for $100. You an call at other times for $250. If your call turns out to be worth my time, I don't bill you; if it was a waste of my time (spam, pointless, etc.), I'll charge up to 100% of that amount.

Senders would get to see a menu of costs for various technologies, and would get to see how I handle them (various guarantees). They may vary based on sender, topic, etc. e.g. I'd be willing to take YC applicant advice emails during a few weeks of the year for 10% of normal price, with a guaranteed response within 12h. I'd charge a lot less for email than for phone, etc.

Part of this would be some kind of ecash system, and the other part would be format conversion; being able to turn phone calls into text messages, read back to the user to verify.

<comment><USER16> If such a service were available, scammers would start baiting people to contact them. The victims would then be billed the full amount.

Actually, this already happens with premium rate SMS.

<comment><USER15> Yes, they would. This is an easier problem to solve than spam.

</comment></comment></comment><comment><USER17> It's important to realize that everyone has a different social contract for how quickly they expect responses across different channels. The better advice is to actually have open, honest conversations with those you work with most frequently and those with whom communication is important to define and understand how people are going to perceive those different channels and contracts.

Setting up social contracts for different communication expectations doesn't have to result in everyone having the same guidelines, but does let you know that Alice is okay with texts while Bob really prefers emails to be allow 8hrs+ for replies.

</comment><comment><USER18> For work, I'd much rather receive an email than a text.

We have smartphones, I can get your email just as easily as I get your text.

Texts are for personally urgent things that don't merit the complexity of a phone call (it fits in 160 characters)

And the Phone call priority is incorrect if you consider voicemail (which it seems that nobody does any more). If I'm in a meeting, a call is actually much lower priority to me than a text. I only escalate a phone call during a meeting if I get the call many times, or if a text indicates the urgency.

<comment><AUTHOR> It seems like you have a different convention that works for you. I think the most important thing is that you have one that the people who are asking you to do things are aware of.

</comment></comment><comment><USER19> All my realtime 'pings' (phone/text/im) inevitably start with some form of the question: "Hi, how busy are you?" IMHO, this is a sneaky way to get the person to be honest about their immediate availability. By acknowledging straightaway that they might be busy, I give them a polite 'out', of sorts.

If I urgently need something done, my openings are usually of the form, "Listen, I have a(n urgent) favor to ask. How busy are you?" Almost always works for me regardless of the communication medium used.

Email, by its very nature, is supposed to be asynchronous. I wouldn't rely on email to convey anything more than delayed request/response conversation.

<comment><USER4> If you start a message that way you're likely to irk your recipient. It's very rude to start out with "listen".

And there's nothing about the nature of email that is asynchronous, gmail has blurred the lines between email and chat. An email reaches me just as quickly as iMessage et al

My guidelines are use iMessage/bbm/txt for conversational inquiries where there is a need for back and forth type interaction and email for everything else. There's no difference in their delivery time with gmail.

My daughter thinks of email as just for school stuff. Everything else is over other mediums, mainly iMessage (mainly due to the magic like "..." Indication) or Instagram. Time has changed things. Email is now as instant as instant messaging and IM is now as media rich as email, supporting photos and video etc. the lines between these have blurred mainly due to the smartphone. Once your messaging channel was coupled to the delivery vector, but now my MacBook Pro can receive iMessages and my phone can receive emails. I don't want a unified messaging interface because I can use different ones for different people and don't feel anxious about any of this. If I want to avoid the world for a while I have a mute button.

<comment><USER19> The contacts on my realtime communication media are all close people - <USER2> kind that won't hesitate to ignore my interruption if they are really truly busy. Also, I use the Hindi word "Sunn..." which means the same as (but is not as intrusive-sounding as) "Listen" but it doesn't translate very well in English.

For me, email is more of a documenting system rather than conversation. Also, in my mind, I still consider email to be a medium for formal exchange inspite of the fact that smartphones have made them almost instantaneous, as you very well put it.

Still, to each their own, I guess. Thanks for the insight! :)

</comment></comment></comment><comment><USER20> You actually forgot that many people still send physical letters -> 1 week or more?

<comment><AUTHOR> Good point ... I probably should add fax as well :P

<comment><USER21> I do quite a bit of work in Japan, and you would not believe the amount of time I spend faxing documents back and forth. I once had a service provider — who I know personally — hang up and refuse to speak to me on the phone until I had faxed in a form designating myself as a contact.

</comment></comment></comment><comment><USER22> IM and Phone call feel the exact same to me, except IM enables you to show your availability status to the people you're connected to.

< 30 minutes : IM if I'm available, if else call

2 hours : IM if away/busy, if else text

...

If someone appears as available and online and takes a day to answer my question, I'm not sure how I'd take it but it would piss me off.

On a sidenote, I think email is best suited for "when you're done with whatever you're doing' kind of timeframes due to the "mark as unread" which would prevent me from forgetting to reply if I decide to read what I received, realized I can't/don't want to answer right now.

<comment><AUTHOR> I see what you're saying. Unfortunately, I'm not good about making sure my away status is up to date. I'll often go a whole day, saying I'm away, even though I'm available.

</comment></comment><comment><USER23> It's important to note that email is often the only contact info you'll have for a person. In fact I would highly prefer not to share my other social contact points(cell # etc). Email wins big in this regard. Really big.

</comment><comment><USER24> I get requests through every medium described here, as well as coming into the office to ask me. Email is nice in that you can have a relatively long description that will be searchable later on. It can have formatting and attachments (you don't get the same level of formatting IM, and afterwards it isn't as easy to search).

Also its kind of nice to not respond immediately when I am in "in the zone".

</comment><comment><USER25> An important consideration, for me, is having an easily searchable record of conversations. Because of this, for work-related issues, I definitely prefer email or gchat, which affords almost the same search-ability. What I hate most are medium-switches when conversation threads are spread across emails, gchats, and texts.

<comment><AUTHOR> I agree having a searchable record is useful. I try to send a follow up email to confirm what was said during phone calls.</comment></comment>


Ask HN: What should I expect as typical Amazon Redshift charges? - <AUTHOR> Just finished on a two month trial with Amazon Redshift but still none the wiser. Im on the most basic cluster package but i dont know how to estimate what our monthly charges are likely to be. Can someone provide some guidance? <comment><USER2> You can't really shut down and restart a Redshift cluster on-demand, since they take hours to start up on a larger dataset. So you should take the standard pricing and assume it's running 24/7(maybe you can shut it down on weekends or on holidays).

Last I looked, that was something like $7500/year on-demand for a single 2TB node. Multiply that by the number of nodes you need to store your data. Probably you'll want to prepurchase a year to get the better pricing and tax benefits; I think that brings it down to $5000/year.

<comment><USER3> Hours to start up? On what size dataset does that start to become the case?

Been experimenting with BigQuery, and interested in how pricing compares: Usage vs instance based.

<comment><USER2> The one I had in mind was about 50TB. A year ago, that would take up to 17 hours from startup to be 'fully available'(I think it prioritizes which tables to load based on how you query them). I haven't worked with it since; Amazon may have improved the startup times.

We were thinking about trying BigQuery at one point since the pricing matched our usage better, but Redshift was good enough. The concern there was that Redshift was similar enough to Postgres we could use our existing database libraries, while BigQuery was some entirely custom protocol that didn't have a Perl SDK.

</comment></comment></comment><comment><USER4> The pricing is pretty self explanatory: [https://aws.amazon.com/redshift/pricing/](https://aws.amazon.com/redshift/pricing/)

Now, if you're asking what kind of cluster you'd need for optimal usage, that is a different question.</comment>


Show HN: Easily consume REST APIs with Go - <AUTHOR> https://github.com/bndr/gopencils

<comment><USER3> I have some constructive criticism for the author, please take this in the manner that it is intended :)

1) Nothing I see here is restful at all. Please consider changing your documentation to specifically mention consuming JSON Web APIs rather than REST, because its simply misleading.

2) Personally I LOATH chained function/method calls. As per your example:

api.Res("users", resp).Id(1).Get()

What happens if the argument passed to api.Res is not "users"? Or "users" is incorrect? Or if Id 1 doesnt exist? Or you cant use the HTTP method Get on the selected resource? Or if I want to use a HTTP method you haven't got a function for?

I assume the code panics because you are using method chaining your methods must return a single type you can't use the neat feature of Go of returning multiple types, specifically for errors.

3) By not being restful you have now made any code I write that consumes an API brittle to the changes of the API supplier i.e. the JSON response may change structure and break my code (this is less a criticism of your package and more about JSON Web APIs that refuse to learn from the lessons of REST).

4) How in the hell is this safe in any sense of the word, especially in an example of the use of the library:

resource := api.Res("users").Id(123).Res("items", resp).Get(querystring)

if one of my developers wrote a line of code like that I would be having serious words with them regarding error checking. Encouraging this kind of foolhardy coding is irresponsible in my opinion, but that is just my opinion as I see an awful lot of this style of coding.

Sorry to be a debbie downer, but I think as a community of developers we should be promoting the best practices of our industry not constantly trying to explore shortcuts. For example, nothing I have seen in this package even acknowledges the existence of the network in the process. How does the developer using your package deal with network timeouts? 404s? 302s? 500s even?

Again, I hate seeing HN devolve into a bitching session just like the next person, so apologies to everyone, but this pushed a few of my personal insta- rage buttons.

<comment><USER4> >api.Res("users", resp).Id(1).Get()

>What happens if the argument passed to api.Res is not "users"? Or "users" is incorrect? Or if Id 1 doesnt exist? Or you cant use the HTTP method Get on the selected resource? Or if I want to use a HTTP method you haven't got a function for?

It is places like this where i would love to use railway oriented programming[1] or monads.

I love chaining function calls but can't do them without worrying about errors as you said, Someday i'll sit and try to implement Monads in Go

[1][http://fsharpforfunandprofit.com/posts/recipe- part2/](http://fsharpforfunandprofit.com/posts/recipe-part2/)

</comment></comment><comment><USER5> It's interesting to see how project like this gained attention for the HN crowds because it's written in Go while in platform like Java, client-side REST library like JAX-RS is a done-deal-dont-have-to-talk-about-it-lets-get- things-done.

</comment><comment><USER6> Looks simple enough, but I simply cannot push myself to using Go with json because the approach feels so static and unnatural.

Also note that this library has no tests, which would be a showstopper for me.

</comment><comment><USER7> Is creating a new named type, creating a instance, and passing a pointer really what passes for "dynamic" in the Go world?

<comment><USER8> There isn't much in Go that is dynamic. This looks to me to be some convenience around commonly consumed patterns applied to normal static struct definitions in Go.

Go does have reflection, but it's inspection mostly to take formatted data (JSON, etc.) and fill in statically defined structs with some hinting.

I don't think this is trying to be "passed off" as "dynamic."

Edit: I see "dynamic" is in the repo title. I concede the point - <USER2> ain't the right word here, I would think.</comment></comment>


California's largest lake dries up, threatening communities with toxic dust - <AUTHOR> https://www.theverge.com/2018/6/6/17433294/salton-sea-crisis-drying-up-asthma-toxic-dust-pictures <comment><AUTHOR> I'm from Denmark, but I lived in San Diego for a while. Between a bit of offroading and weekend trips, I have spent more time in Imperial Valley than most "tourists."

I find it a deeply fascinating place. Whenever I showed visitors around in California, I would take them past Salton Sea. Not only is Salvation Mountain an interesting place, the vibe of the entire valley seems special. Most tourists from Europe see only the coast, the big cities, and perhaps a couple of the larger national parks. The contrast from those places to Imperial Valley is stark. Everybody I brought there appreciated the experience.

I did know that Salton Sea was polluted (5 minutes in Bombay Beach will convince you), but I did not know it was as bad at this article portrays.</comment>


Breaks Observed in Rover Wheel Treads - <AUTHOR> https://www.jpl.nasa.gov/news/news.php?feature=6785 <comment><USER2> Always loved the name of the Curiosity rover, was just reading the wikipedia article, apparently it was crowd sourced from 9,000 proposals and the selected name was from a 12 year old student. Very cool

"A NASA panel selected the name Curiosity following a nationwide student contest that attracted more than 9,000 proposals via the Internet and mail. A sixth-grade student from Kansas, twelve-year-old Clara Ma from Sunflower Elementary School in Lenexa, Kansas, submitted the winning entry. As her prize, Ma won a trip to NASA's Jet Propulsion Laboratory (JPL) in Pasadena, California, where she signed her name directly onto the rover as it was being assembled.

Ma wrote in her winning essay:

Curiosity is an everlasting flame that burns in everyone's mind. It makes me get out of bed in the morning and wonder what surprises life will throw at me that day. Curiosity is such a powerful force. Without it, we wouldn't be who we are today. Curiosity is the passion that drives us through our everyday lives. We have become explorers and scientists with our need to ask questions and to wonder."

[https://en.wikipedia.org/wiki/Curiosity_(rover)](https://en.wikipedia.org/wiki/Curiosity_\(rover\))

<comment><USER3> I'm very happy that we're involving students and helping increase passion for space.

Is it crowd-sourcing when the result is selected? If infinite monkeys give us Shakespeare, 9000 students should generate a pretty dense set of data given student vocabulary.

Cynicism:

1\. Know what you want to call it

2\. Canvass 9000 people

3\. Pick the best one that agrees with you (because there must have been collisions)

<comment><USER4> If you know what result you want, why not just have a patsy write your suggestion in, so that you can select it?

</comment></comment></comment><comment><USER5> This seems dramatic, but there is a ton of life left in the wheels. Some of my colleagues performed life testing on the wheels after we first discovered the cracks and found the rover is capable of driving around on the titanium support struts even after the aluminum wheels have completely disintegrated. We've got a long way to go yet!

<comment><USER6> If Kerbal Space Program taught be anything about space, it's that most problems can be solved with struts.

<comment><USER5> If only Curiosity were as fast as the KSP rovers... top speed is somewhere around 100 meters/hour, and usually more like 40!

<comment><USER7> Should have strapped an SRB on the rover.

Reminds me; I wonder just how much ion engines are overpowered in KSP compared to their real-life equivalents. Or, put differently, if one could replicate a hovering Minmus rover I made in KSP (which used ion engines to stay afloat for a long time).

<comment><USER8> Minmus surface gravity is 0.491 m/s^2; current ion drives thrust with a couple hundred millinewtons, so I don't think a drive could even support itself against that level of gravity let alone with power and a ship attached.

However, we currently design our ion drives for power-to-thrust efficiency and long-term effectiveness. I'm not sure what we could get if we designed them for maximal thrust. Especially since in real life, right now the answer to "Do you want a 'maximal thrust' ion drive?" is pretty much "Well, have you considered using... _not_ an ion drive?", so I'm not sure I've ever seen a treatment of that question based on current tech.

<comment><USER9> > I'm not sure what we could get if we designed them for maximal thrust.

Probably something with a worse specific impulse than a chemical engine.

</comment></comment></comment></comment></comment></comment><comment><USER10> This appears to be a brilliant case of reliability engineering. I'm always super impressed with these sorts of tales; given how NASAs budget always seems to be concern seeing them deliver solutions which have just enough wiggle room in them to deliver the intended results without going too far into gold plating their solutions really leaves the software infrastructure engineer in me in awe. Even more so when you consider the time spans involved in this; I personally believe we've a ton to learn in the software space from practices like this.

<comment><USER11> I think we also have a ton to learn in the software project management space. Agile for example would be quickly laughed off and dismissed.

Our field is currently full of cargo-cult practices, studies and best practices without any empirical research, java schools, a strong focus on "awesome" and easy to get started instead of useful and simple; we're still a pop culture for the most part.

<comment><USER12> To be fair, NASA software engineers don't exactly act like your average agile start-up team,because once the "product" is out, patching is really feasible. Whereas for your average webapp, it's more strategic to iterate based on feedback.

<comment><USER12> Whoops too late to edit. Should be "patching _isn 't_ really feasible".

<comment><USER13> Except they DO send out patches. Just not very often.

<comment><USER12> Well, my point was it's a bit more trouble to patch something on another planet that it is to `heroku push.`

</comment></comment></comment></comment></comment></comment><comment><USER14> Breaking after a mere 10 miles, to me sounded really awful, but apparently they planned on this. The construction must have been to save on weight, making the wheels no more reliable than the exact distance they wanted to travel: "...milled out of solid aluminum. The wheels contact ground with a skin that's about half as thick as a U.S. dime, except at thicker treads."

<comment><USER15> I thought NASA used metric units; would be nice if their press releases did too. I have no clue what "half as thick as a U.S. dime" means.

<comment><USER16> That's a description that most Americans can more easily picture than something like 0.68 mm (including people who are comfortable with metric units like myself) and they seem to be focusing a lot in recent years on making the information they provide more accessible to average Americans, undoubtedly to help drive interest in and support for what they're doing.

<comment><USER17> I'd prefer if they wrote something like "0.68 mm (about half as thick as a US dime)." That way the number is still there for people who don't want to look up how thick a dime is.

</comment></comment></comment></comment><comment><USER18> This comment from a while ago links to a really good blog about the wheels: [https://news.ycombinator.com/item?id=8206378](https://news.ycombinator.com/item?id=8206378)

Here's a direct link to the 2014 blog talking about damage to the wheels: [http://www.planetary.org/blogs/emily- lakdawalla/2014/0819063...](http://www.planetary.org/blogs/emily- lakdawalla/2014/08190630-curiosity-wheel-damage.html)

</comment><comment><USER19> Apparently the new rover - Mars 2020 - will have narrower, thicker wheels with more growsers with a different shape [https://mars.nasa.gov/mars2020/mission/rover/wheels/](https://mars.nasa.gov/mars2020/mission/rover/wheels/)

</comment><comment><USER20> NASA is funded by Americans, and this is a press release not a scientific paper. US customary units and dimes is intentional for the audience.

<comment><USER21> Also very descriptive, since dimes are also noticeably thinner than our other coins.

</comment></comment><comment><USER22> The wear patterns on these wheels always seemed so strange to me, considering the extremely slow pace at which this thing moves. The wheels look like they've been hit by shrapnel. Obviously I have no context as to what conditions are like on Mars, but it just seems strange that driving over rock, slowly produces wear like that. Seems like they were never strong enough to support the weight, over something sharp.

<comment><USER5> There are two major factors - fatigue (think bending a paper clip repeatedly) due to driving over tons of small rocks, and the the mechanics of having six wheels contributing additional damage to the front and middle wheels. Think of pushing a rolling suitcase versus pulling one - when hitting an obstacle it tends to dig in instead of easy popping up. The front and middle wheels are in front of their pivots, and so tend to get driven in to rocks by the other wheels.

<comment><USER23> In terms of metal fatigue, aluminium doesn't last very long at all. That's one reason why you want electric cables made of copper, not aluminium.

<comment><USER5> True! The actual induced strain is not particularly high (the wheels do not visibly deform) but it's the cycle count that will get you. The chevron-shaped grousers also act as stress concentrators, which is why the cracks are all starting at those tips.

</comment></comment></comment></comment><comment><USER24> Tangential, but the quality and resolution of that image is incredible.

</comment><comment><USER25> Are the materials used in the rover wheels _too_ exotic? I'm metallurgist, but I know that steel, though heavy, is malleable and, if correctly tempered, unlikely to break like the rover's wheels. At what cost ultralight, exotic metals?

Edit: Are they really made of aluminum? If so, while hardly exotic, definitely more brittle than steel. I know steel is heavy as hell, but of course you can use a thinner steel for an equivalent strength (still heavier I suppose).

<comment><USER26> One of the first things that I got told in my materials class was that for the strength and weight, carbon steel and aluminum are essentially the same. Steel is about 3x as dense, but also 3x as strong, and does not fatigue like aluminum.

I'm assuming that NASA knows this, and chose aluminum for another reason that I'm not aware of.

</comment></comment><comment><USER27> I would love to see a write-up of everything we've learned about wheel engineering from the Mars rovers. What would the team(s) responsible for Curiousity's wheels do different now? (I don't mean to imply that their design is not successful -- just that I'm sure they've learned from this iteration)

</comment><comment><USER28> Fun little bit of trivia: those slots in the wheels are Morse code, and they spell out "JPL." The original design had the letters JPL emblazoned on the wheels but they felt this was a little too tooting-your-own-horn, so they made them Morse code instead.[0]

0\. Personal communication from MSL engineer

</comment><comment><USER29> Would be less confusion in this thread, if the title added "as predicted and on schedule for successful mission completion"

<comment><USER30> as predicted after more tests. they where surprised about the ammount of damage initially.

</comment></comment><comment><USER31> So ir broke after how many years of life longer than the expected utility? Like forever, iirc...

<comment><USER32> You're probably thinking of Spirit and Opportunity, the smaller rovers which landed in the early 2000s and long outlived their primary scientific missions. This is Curiosity, the SUV-sized rover which landed in 2012, and is still in its primary mission.

<comment><USER5> Not quite - primary mission was two years (one Martian year). We are in Extended Mission #2.

<comment><USER32> Oops, you're right! Thanks.

</comment></comment></comment></comment><comment><USER33> Did you know the wheels have morse code embedded in their tread? [https://www.jpl.nasa.gov/news/news.php?feature=3497](https://www.jpl.nasa.gov/news/news.php?feature=3497)

</comment><comment><USER34> Meanwhile, Opportunity keeps going after 13 years.

[https://mars.nasa.gov/mer/mission/status.html](https://mars.nasa.gov/mer/mission/status.html)

</comment><comment> gene-h It's a shame that the trend in increasing rover size probably won't continue. If scaling does continue, we might expect to have rovers the size of monster trucks on Mars by 2030.

</comment><comment><USER35> Am I the only one that thought they meant the tracks left on the ground?

</comment><comment> awinter-py even blizzak coatings last more than 10 miles

this doesn't bode well for their JD Power rating

I guess if you start the odometer at launch their numbers look a little better

</comment><comment><USER36> What surprises me is that the wheels aren't covered with a honeycomb-like texture instead of these longitudinals M's

</comment><comment><USER37> The spin machine is always on at NASA. It's not that the wheel is failing it's "nearing a wheel-wear milestone." Still it's impressive what they have achieved.

</comment><comment><USER38> How's it possible to get all that wear in ten miles? That's just a trip to church. My car tires don't even register that.

<comment><USER39> Your car tires are rubber, and designed to last for a long time at speed. Curiosity's tires are aluminum, and are designed for much less and much slower driving. That seems weird, but the important point is their mass: they only weigh 3 lbs (~1,4kg) per wheel, compared to over 20 lbs for the tire alone (without the rim) on a normal car. Mass budgets are extremely tight on space missions, every pound saved can either go towards more scientific payload or significantly decrease launch costs.

<comment><USER35> Car tires also have the benefit of a nearby support system. They were looking for wheels that would do the job with 100% certainty of never being able to be replaced.

</comment></comment></comment><comment><USER40> Martians popping our tires?

In all seriousness its unclear to me how this could happen so quickly? The article does not really explain why they didn't think through this.

<comment><USER41> They did think through it, but the rover has already exceeded its planned mission time by over 2.5 years! Wheels can't last indefinitely, and more than doubling the time of a 2 year mission before they see any wear is pretty incredible.

</comment></comment><comment><USER42> Does anyone else think it's odd that the treads are wearing like that after TEN miles? They probably could have done better by sticking a Goodyear on it.

</comment><comment><USER43> I assume they're titanium. I wonder though if they use titanium crystals as per jet engine turbine blades?

<comment><USER44> Turbine blades are made from inconel. And all solid metal is crystalline.

<comment><USER45> SpaceX "3D Prints" their merlin engine chambers from the same alloy, inconel.

[http://www.spacex.com/news/2014/07/31/spacex- launches-3d-pri...](http://www.spacex.com/news/2014/07/31/spacex- launches-3d-printed-part-space-creates-printed-engine-chamber-crewed)

<comment><USER13> SpaceX's entire Super Draco rocket engine is 3d printed, too.</comment></comment></comment></comment>


Oracle's Open Source Java for Mac OS X built - <AUTHOR> http://www.techeye.net/software/oracles-open-source-java-for-mac-os-x-built

<comment><USER2> "an experienced French open sauce project programmer"

This is making fun of the nationality of the developer right?

</comment><comment><USER3> Sounds like a riff on the SoyLatte project <http://landonf.bikemonkey.org/static/soylatte/> Although, it does appear to come with a nice OSX installer... The real leap forward will need all Apple's soon-to-be-opened-sourced bindings.</comment>


Are timing vulnerabilities discoverable by formal verification? - <AUTHOR> <comment><USER2> Yes

<comment><AUTHOR> How is the time dimension modeled?</comment></comment>


The Bacon Boom Was Not an Accident - <AUTHOR> http://www.businessweek.com/articles/2014-10-06/bacon-why-americas-favorite-food-mania-happened?google_editors_picks=true <comment><USER2> What's interesting about this story is that it starts out seemingly like it's going to be about devious marketers devising a way to turn a product nobody wanted into a hot seller strictly through marketing, in much the same way that clever marketing turned the universally reviled Patagonian toothfish into a big seller by bestowing upon it the more upscale name "Chilean sea bass" (see [http://priceonomics.com/the-invention-of-the-chilean-sea- bas...](http://priceonomics.com/the-invention-of-the-chilean-sea-bass/)).

But then you get into the meat of it (sorry) and find that the root of the turnaround is an actual technical accomplishment -- a method to cook and distribute pre-cooked bacon that wouldn't rob the bacon of its flavor:

 _> The early 1990s was a time of great advancements in precooked bacon technology. Pork producers, food labs, and agricultural schools such as Iowa State University began investing substantially in precooked R&D. Hormel and Swift worked on microwaveable precooked slices for home consumers, while Chicago's OSI and the now-defunct Wilson Foods poured their efforts into bacon spirals that would fit perfectly atop a hamburger._

These technical innovations turned out to be the key, because the pork marketers were pitching bacon to fast-food chains as a "flavor enhancer," but the chains that tried it mostly came away dissatisfied: the hassle of adding bacon-cooking to their highly regimented kitchens created expense and added time to the burger-assembly process, while existing methods for pre-cooking bacon yielded a tasteless product. Pre-cooked bacon with taste intact (that came in shapes ready to plop on top of a hamburger patty, no less) took all that friction away.

My only regret is that the whole thing is written from the perspective of the Pork Marketing Board, which funded the research into pre-cooking bacon, but doesn't really tell you much about the research itself. That seems like it'd be an interesting story, for those of a technical bent; here's a problem, how do you solve it?

<comment><USER3> Exactly, pre-cooked bacon was the thing. And it is a thing, at least in my house where it is trivial to put some chopped pre-cooked bacon onto the pan next some stir fried green beans and spinach and poof really tasty side dish.

<comment><USER4> Maybe your brand is different but in Ontario pre-cooked bacon is gross and tastes like McDonald's bacon. The texture is all wrong, it's thin and weird.

</comment></comment></comment><comment><USER5> Non US based HNers might be confused; bacon really is a big deal in the US. Restaurants put it in salads, sandwiches, and pretty much anything they can- I've had bacon ice cream once (weirdly it was pretty tasty).

Some macho people proudly eat pounds of it, claiming that it is a manly/american food- see for example this youtube video: [http://www.youtube.com/watch?v=m8u8Z3bUQfs](http://www.youtube.com/watch?v=m8u8Z3bUQfs) . In stores, you can find as many items with bacon texture on them as you can find items with prints of the US flag. "Bacon bowls" are a thing.

It's really more than just a food in the US- people are obsessed with it. If you spend time on reddit, you can get a glimpse of that through the ever recurring bacon posts in the mainstream subreddits.

<comment><USER6> This has been the case in the UK for many years as well.

One of my earliest memories at the tender age of 3 (very early 1980s) was wearing one of those blue anoraks with a fuzzy collar and being wheeled to the greasy caf'[1] in a buggy and fed bacon, beans, chips (French fries) and tea. This was in Islington in London. I can't think of a single week I haven't eaten bacon since.

That's just normal here. No crazy or macho rubbish. Food staple.

And as I've had this argument before (on reddit...), to the Americans, we don't eat that shitty Canadian bacon or the streaky stuff you get in the US here. We use the latter to add flavour to other foods and eat the nice lean back bacon: [http://www.clancysofchester.co.uk/back%20bacon.jpg](http://www.clancysofchester.co.uk/back%20bacon.jpg) . The streaky stuff is kind of horrible and clogs up your arteries.

[1] Not café. Caf' innit (local dialect)

<comment><USER7> Just to update your nutrition information, the streaky stuff is great for you. Fats, especially animal fats, are pretty wonderful for human health. You lose both flavor and nutrition when you remove it from your diet.

I feel like I'm letting a secret out, but if there's any crowd that we want to be healthy and productive, it's HN. Eat fat. It's great for you. What's important is to remove sugar from your diet in all its forms.

<comment><USER6> Not too much. Coronary heart disease wiped out a big chunk of my family and it wasn't because they ate sugar - it was the lard on toast and chips cooked in lard...

Everything in moderation is probably better advice than a single fact.

<comment><USER7> Personally, I'm persuaded by my personal experience as well as testimony from /r/keto. I've lost nearly 100 lbs over the past year by switching to a high- fat, moderate-protein, and ultra low-carbohydrate diet. I really can't endorse it enough.

If I had to guess, your family's health problems weren't with lard -- they probably resulted from the companion toast and french fries. Any calories you eat will be directed to storage if your insulin is spiked... which happens when you eat carbs like those found in wheat and potatoes.

That's not to say that glucose, which you find in potatoes, is necessarily awful. I don't eat it, but Dr. Robert Lustig (an incredible font of knowledge) thinks glucose can be a valuable part of a diet. What's particularly important is to eliminate fructose and sucrose. They're toxins with no redeeming qualities except making fat-free foods palatable.

<comment><USER8>
      eliminate fructose

To better health: Eliminate fruit, increase bacon consumption. Got it.

<comment><USER7> You think you're being sarcastic. The only reason why fruits are okay in moderation is that their fiber mitigates some of the damage of their sugar content. The vitamins you can get from fruit are valuable, but the sugar rush isn't.

I'm not opposed to the occasional fruit. But given your tone, I rather suspect you think Jamba Juice is healthier than a steak. Go ahead, I'm not here to save your life... but you may want to read a bit on the subject. I'd start with Gary Taubes, Peter Attia, and Robert Lustig.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Obviously The Pork Board would wish to claim credit for the shift in demand for bacon. Lobbyists and advertisers will tend to portray themselves as essential to the industries that support them. It is more likely that "the bacon boom" was a market phenomenon driven by lots of small cultural and technological shifts, not social engineering. The article is undermined by its title and reliance on Pork Board anecdotes.

</comment><comment><USER10> I think Edward Bernays goes fairly un-credited in the article.

[http://en.wikipedia.org/wiki/Edward_Bernays#Techniques](http://en.wikipedia.org/wiki/Edward_Bernays#Techniques)

The idea that it is "breakfast meat" is probably his making.

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

</comment><comment><USER11> Reading about the Pork Marketing Board, I can't help but be reminded of the Celery sketch on Portlandia, where the Produce Sales Board tracks the marketing of various produces. Bacon plays a key role.

[10:49 video] [https://www.youtube.com/watch?v=zQX44THWIyc](https://www.youtube.com/watch?v=zQX44THWIyc)

<comment><USER12> Celery just needs more of a root-focus.

</comment></comment><comment><USER13> As an Australian living the in the US, I _really_ miss Aussie "full rasher" bacon and am somewhat amazed that it hasn't become a thing over here in bacon crazy land.

[https://www.google.com/search?tbm=isch&q=australian+full+ras...](https://www.google.com/search?tbm=isch&q=australian+full+rasher+bacon)

<comment><USER14> Yes! I'm from Ireland and we have the same. I live in Brazil now and it has been heavily influenced by the US trend of streaky bacon :(

</comment></comment><comment><USER15> I attribute the rise in bacon consumption to _why. Long live crunchy bacon!

[http://mislav.uniqpath.com/poignant- guide/book/chapter-3.htm...](http://mislav.uniqpath.com/poignant- guide/book/chapter-3.html)

<comment><USER16> s/crunchy/chunky/g

<comment><USER15> Hah! You are right! I could have swore I wrote chunky. Some kind of synaptic auto-correct routine running in my brain...

</comment></comment></comment><comment><USER17> Left unmentioned, but a major factor in my personal bacon consumption and observation of others': the rise of low-carb, rather than low-fat, diets.

</comment><comment><USER18> I suspect that in the not too distant future, we will look back at ourselves eating this highly intelligent and emotional animal with disgust. Why do we call it "bacon" instead of "pig belly"? To keep consumers from remembering that it was ever an independent, conscious creature. The amount of marketing that goes into this narrow vision of "mm smoky salty tasty" B.S without thinking with your brain about what it actually IS, really is a tragedy

<comment><USER19> I am slowly trying to re-evaluate my consumption of certain meats from certain sources... I feel hunting and local farming can substantially improve the ethics of meat consumption.

I also have never heard a pig called smart. They're dirty, and the mothers sometimes eat the young. I thought Octopus was the animal of the week to defend.

<comment><USER20> Maybe you think pigs are dirty as they wallow in mud? This is because they lack functional sweat glands, and can't pant like a dog can. They wallow to keep cool.

I'd be curious to know if "savaging" (eating/killing their young) occurs outside of factory farms. I imagine if it does, the likelihood is a lot lower.

<comment><USER21> It's an anecdote, but my mom grew up on a small farm and she remembers hearing the squeals of a piglet as the sow ate it one time. She didn't eat pig for a while.

</comment></comment></comment></comment><comment><USER22> "That year (2008), according to the website Babycenter, 11 out of every million babies born in America were named Bacon." ಠ_ಠ

<comment><USER23> Not sure about that, there should have been about 50 if so and from the readme provided by the census "To safeguard privacy, we restrict our list of names to those with at least 5 occurrences."

        usa$ grep -i bacon yob????.txt | wc
               0       0       0

<comment><USER24> Shouldn't your search also find the 29,000 people with the last name of Bacon? [https://www.wolframalpha.com/input/?i=bacon&a=*C.bacon-_*Sur...](https://www.wolframalpha.com/input/?i=bacon&a=*C.bacon-_*Surname-&a=*DPClash.ExpandedFoodE.bacon-_*PreparedCuredPorkBacon.dflt-&a=*EAC.ExpandedFood.PreparedCuredPorkBacon-_**a.PreparedCuredPorkBacon-.dflt-)

<comment><USER23> No, it does not include that:

        usa$ head -5 yob2008.txt
        Emma,F,18791
        Isabella,F,18598
        Emily,F,17419
        Olivia,F,17066
        Ava,F,17024

The USA Census Bureau released names.zip and namesbystate.zip back in May and they include README files of how they were anonymized.

</comment></comment></comment></comment><comment><USER25> My guess is that there's similar stories to be told about coffee and chocolate - both of which now have fanatical followings. I'm sure they've been been told, but I have not yet read them.

On a related note, This American Life recently did an interesting item on the birth of the artisnal toast - well worth a listen.

<comment><USER26> Indeed, and it can be found here: [http://www.thisamericanlife.org/radio- archives/episode/520/n...](http://www.thisamericanlife.org/radio- archives/episode/520/no-place-like-home?act=3)

The "artisinal toast" aspect is the least interesting. It's an amazing story about a person dealing with their own mental illness, with some good startup advice mixed in at the end.

"Just get some cups. Brew some coffee. When you run out cups, close the door, and go get more cups."

</comment></comment><comment><USER27> one of the great things about bacon in the US is the huge variety available. at my local market they have the following types always available:

* cured, thin cut

* cured, thick cut

* smoked, with 3 or 4 types of wood

* uncured, thick and thin and smoked

* cured with lower sodium

* flavored with some kind of liquid smoke type stuff

* pre-cooked

also i've seen bacon clubs (like they do with wine) popup on the internet lately. so great.

<comment><USER28> I've always wanted to try Zingerman's bacon of the month club:

[http://www.zingermans.com/Product.aspx?ProductID=G-bac-3](http://www.zingermans.com/Product.aspx?ProductID=G-bac-3)

From a great deli in Ann Arbor, MI

<comment><USER29> _" From a great deli in Ann Arbor, MI"_

In my experience, Zingerman's is overpriced and overrated. That isn't to say bad by any means, it probably still makes the cut for "great", but honestly I had better experiences at Bread Basket for much cheaper (with the caveats that this was years ago, and I've every expectation it'll vary depending on what you're getting).

</comment></comment></comment><comment><USER30> Incredible, a product that nobody wanted became a success.

I wonder how much products failed because people haven't found their real function. They did just some adjustments on bacon and it became a success as a flavor enhancer.

<comment><USER31> A very similar thing happened with chicken wings - they used to be discarded, and now they cost more per pound than any other chicken part.

<comment><USER30> Well remembered. I also heard a history about chicken legs years ago.

I also worked on a firm, in Brazil, that make a ERP software for Chicken producers. Some of our clients told me all chicken legs was separated and send to Asia (I think it was Japan), where it is a really appreciated product.

</comment></comment></comment><comment><USER32> Wow I didn't know it was such a big deal like that. I always wondered why Religious people are against Pork and most Holy books forbid eating pig? Yet is so popular to eat? Confused on that.

<comment><USER20> Pork can easily carry diseases that humans are susceptible to. Not such an issue these days with modern food processing. Bacon and other processed/preserved meats are loaded up with sodium nitrite, which also helps.

<comment><USER32> I myself have never had Pork. Just Chicken and Beef. A study by the Cancer Research Center of Hawaii and the University of Southern California suggests a link between eating processed (sodium nirite) meats and cancer risk

</comment></comment></comment><comment><USER33> Bacon jumped the shark when they started putting it on desserts.

<comment><USER34> Side note: bacon wrapped shark is pretty tasty: [http://finsmediagroup.com/bacon-wrapped-sharkscallop- kebabs-...](http://finsmediagroup.com/bacon-wrapped-sharkscallop-kebabs-w- jack-daniels-glaze/)

</comment></comment><comment><USER35> I'm wondering just how much manipulation of social media was done to push bacon to where it is now (ie., how many bloggers were paid to astroturf).

</comment><comment><USER36> An entire article about the rise to popularity of bacon and not a single mention of the Atkins Diet or Epic Meal Time.

</comment><comment><USER37> It's a baconspiracy!

</comment><comment><USER38> I'd like to posit a far more insidious impetus: Xenophobia.

Yes, most of the people on the bacon bandwagon just enjoy the stuff. It's tasty, and bacon-flavored ice-cream is a great joke. But there's also a vein of white-supremacy, anti-semitic, anti-muslim sentiment in America, and some of the people enthusiastically pushing to put pork in everything under the sun might be doing so because they know it'll make others uncomfortable. A subtle way to assert that "they don't belong here, in the land of bacon", basically.

Is it a tiny minority? I certainly hope so. But I think there's a larger overlap, of people who don't think of themselves as actively racist, but who just go along with the bacon-everywhere mantra because they don't mind rubbing it in.

Imagine if your favorite restaurant had a barbecue special every friday, and that coincidentally meant there were no catholics around the place. Okay, no big deal, just eat somewhere else. Now imagine if every restaurant in town adopted this schedule, leaving catholics feeling pretty unwelcome. A lot of us non-catholics would _never notice_ , and probably just go along with it, hey, tasty food on fridays, right? Until someone mentioned it...

I think that's where we might be on the bacon thing. Folks affected by it are a minority, and hesitant to say anything for fear of sounding whiny and further marginalizing themselves for their beliefs. And it's tasty enough that most folks going along with it might not realize they're playing into an agenda. And it would be impossible to prove that such an agenda even existed. Which I can't prove.

But I do know that the bacon-fever makes some of my friends and coworkers feel just a little uncomfortable, a little unwelcome here. Food for thought.

<comment><USER7> Speaking as someone you might consider xenophobic -- in that I think the set of opinions that constitute Islam are pretty awful, particularly in regard to apostates, women, and homosexuals -- I've never considered bacon to be an avenue to white supremacy. Then again, I'm not white.

There are significant ethical hurdles to eating bacon, but Islamophobia isn't one of them.

<comment><USER38> Oh, good. I'd like to think I'm imagining this. You give me hope. :)</comment></comment></comment>


"I decided not to introduce full refinement for Ruby 2.0." - <AUTHOR> https://bugs.ruby-lang.org/issues/4085#note-175 <comment><USER2> Repost of the message, since bugs.ruby-lang.org appears to be down:

        Issue #4085 has been updated by matz (Yukihiro Matsumoto).

        Since there still remain undefined corner case behavior in refinements,
        and the time is running out, I decided not to introduce full refinement
        for Ruby 2.0. The limited Ruby 2.0 refinement spec will be:

        * refinements are file scope
        * only top-level "using" is available
        * no module scope refinement
        * no refinement inheritance
        * module_eval do not introduce refinement (even for string args)

        In addition, Module#include should add refinements to included modules,
        e.g.

          module R1
            refine String do
              def bar
                p :bar
              end
            end
          end

          module R2
            include R1
            refine String do
              def foo
                p :foo
              end
            end
          end

          using R2
          "".foo
          "".bar

          module R1
            refine String do
              def bar; p :bar end
            end
          end

          module R2
            include R1
            refine String do
              def foo; p :foo end
            end
          end

          using R2
          "".foo
          "".bar  # does not work now

        You can treat top-level "using" as soft-keyword, as long as it does not
        change the behavior (but performance).

        Matz.

</comment><comment><USER3> I love Ruby with all my heart but that seems to be quite a mess. While a not- well-thought-through feature in some application can be forgiven (and maybe even removed), in language design it cetainly has no place. And while this should be a secondary consideration, I really feel for those poor JRuby and Rubinus guys. As if Ruby wasnt "dynamic" enough, the sheer complexity of implementing refinements must be awful!

I think, they should just leave it out (at least for now) and rather spend some more time on performance, stabilty and memory usage in MRI...

<comment><USER4> Agreed. Ruby is already difficult to debug on projects of any significant size, and frequeny docficut to wrap your head around where various behaviors are originating from. Ruby's dynamism is -- or was -- a strength, but it feels like the language maintainers might have taken it a bit too far.

<comment><USER5> It's rather easy to figure out where something is originating in the REPL particularly if you use pry.

</comment></comment></comment><comment><USER6> This, I feel, is a rather striking difference between the development processes in ruby and python and tells more about them than any superficial language benchmark or example could.

This is how generally new things to python are introduced: <http://www.python.org/dev/peps/>

</comment><comment><USER7> Ok, tell me if I have this correct:

      module Foo
        def hello
          puts "Hello World"
        end
      end

      ...in a different file...

      foo = Foo.new.msg

Q: What does that print? A: There is no way to tell. It depends on what the 'using' line (not shown) is, and whether anything has refined 'Foo'.

Seems like bad action at a distance, to me. Or am I missing something? The example about the effects of refining 'each' is also pretty disconcerting.

<comment><USER8> Seems like a NoMethodError to me.

</comment></comment><comment><USER9> Steve, I agree with you that this is a lot of change for something in preview, but didn't Rails 3 have some last minute changes before its release as well, and 3.1 was a big jump also?

Matz, Shugo, and Charlie will figure it out soon enough, but it is interesting. What is more upsetting to me really is the version number. 2.0 implies some major changes, but 1.9 was more major. It should be 1.10, and then they should work on something more revolutionary for 2.

There is a lot of pressure on Matz also. They really need to spend more time on it.

<comment><AUTHOR> > didn't Rails 3 have some last minute changes before its release as well, and > 3.1 was a big jump also?

I'm not sure about 'last minute,' but yes, 3.1 was a big jump. Rails doesn't follow SemVer, neither does Ruby.

> They really need to spend more time on it.

This is absolutely true, and is my biggest complaint.

</comment></comment><comment><USER2> Anyone have an explanation on this part at the end?

          using R2
          "".foo
          "".bar  # does not work now

I can't figure out why "".foo would work in this case but "".bar wouldn't.

<comment><USER10> edit: Disregard this, it's actually the opposite (viz. next comment) and the inheritance remark is probably only for straight class inheritance.

> no refinement inheritance

R2 included R1, which defined `bar` on String. Only the methods defined on R2 are used now with this change of plans. (I couldn't get to the ruby-lang issue, but I assume that's the reason).

<comment><USER2> ...except the previous listing does basically the same thing, but doesn't have any comment about R1's refinements not working when you're using R2.

<comment><USER10> Ah, I misread the feature list (namely the text right above the examples, about Module#include).

Matsumoto gives two of the same examples, the first in how he wants the feature to work (R2 having the refinements of R1 if it includes it) and the second in how it works at the moment (or doesn't work).

If you try that code it breaks, he wants it to not break and return :bar.

<comment><USER11> Thank goodness I wasn't the only one confused by this. I stared at the code listing and stared at it, only to wonder what the difference was. :)

</comment></comment></comment></comment></comment><comment><USER12> I wonder if the problem refinements are trying to solve has already been tackled in the 40+ years of computer programming.

If so, is there something to just learn from or copy for the Ruby team?

</comment><comment><USER13> Huh, refinement is most of the reason I would want to upgrade to Ruby 2.0. 1.9 works for well for what I want to do.

</comment><comment><USER14> I think this link is broken or overloaded.

<comment><AUTHOR> Redmine appears to be quite slow at the moment.</comment></comment>


How to price software/Saas? - <AUTHOR> http://network.businessofsoftware.org/forum/topics/how-to-price-softwaresaas <comment><USER2> The best advice I have ever received: charge more. Whatever your first impression is, it is not enough.

You do not have enough confidence in your application. You see how much of a hack it is. You worry that someone could duplicate it all in a Jolt-fueled frenzy. And you're wrong.

2.5 years ago I was terrified of the prospect of taking money and asked for some folks opinions on whether my software was worth $15, $20, or $25. In my heart of hearts, I was sure it would not sell even at $15. Someone convinced me to charge $25, at the least. I wish I remember who -- the decision has made me over ten thousand bucks.

And I'll be raising prices one of these days. People will pay them -- that is all I need to know to justify a price increase.

<comment><USER3> I remember a great story from Sandra Kurtzig's book "CEO: Building a $400 Million Company from the Ground Up". She demoed her package to her first customer. He was wowed and asked , "How much?" She was worried about overpricing, but she said "$50,000" anyway. And when he didn't blink, she added, "per module." And when he still didn't object, "per year."

It really depends on who your customer is. Many managers have discretion up to $1000, so a few hundred dollars is not a hard sell. Above that gets into the corporate approval cycle. If you are selling enterprise software, you can get away with $2500 per seat, but then your selling cycle becomes months long.

If you are selling to consumers, maybe only a few dollars or a few $10's of dollars. Think TurboTax. Developers are the really cheap bastards, maybe $.05, But they can probably talk their managers into spending a couple of hundred dollars.

<comment><USER4> The perceptions of the customer makes a huge difference. A friend works at software company which sells software to corporate and government clients. Their pricing varies from $50,000 to $300,000 with the size and type of the organization they are selling to. They originally tried to sell to larger customers for the same price as smaller, but they didn't get any sales until they jacked up the price.

</comment></comment></comment><comment><USER5> > Do you look to the market to price (external input) or do you primarily look > internally (we think it's worth xyz and adds $x value therefore..)?

Whatever you do, don't look internally. Your estimate of what it's worth is always awful. Why? Because prices aren't measured on a linear scale. Just to take an example from every day life: books. A lot of people make impulse purchases of books in the $10-$20 dollar range. Let's call one of those people Bob. It doesn't matter much if Bob is short on cash, a $10 book is easily bought. Often, Bob won't read the book, or won't finish it because it may not turn out to be very good. And curiously, Bob will not save to buy a $30 book, that he's sure he's going to like, because it's simply priced outside of the arbitrary range. In our minds, good books are not allowed to cost more than bad books. If we see two John Grisham titles laying next to each other in the bookstore, and if they're priced differently, what do we assume?

a) one book is much better/enjoyable/exciting than the other book

b) one book is newer/more popular/hardcover/etc

Think about this. It makes no sense that (b) is the right answer. And yet it is.

Mostly, I think, you have to find the right price point by experimentation. Don't be afraid to raise the price when you release a new version, and don't be afraid to lower the price with holiday certificates. Then measure and refine. A lot of people are afraid of raising prices because they might lose customers that way, but compare that to all the money lost by giving away your product too cheaply.

</comment><comment><USER6> Eric Sink wrote an excellent primer on software pricing and you can read it at <http://www.ericsink.com/bos/Product_Pricing.html>

<comment><USER7> That was a good read. He says: "We want to charge the maximum amount that our customers are willing to pay." At the risk of being pedantic, the more precisely correct answer is to charge each customer how much that customer is willing to pay. All other things being equal, that would be optimal pricing. All other things, of course, aren't equal.

That is why versioning exists. It lets you better approximate getting each person to pay how much they'd be willing to pay without all the hassle. He has that much right.

The part he neglects to mention is why three versions is a magic number. He hints at the reason but it should be stated more often. People do not like complexity so having -too- many choices becomes overwhelming. Three lies in a sweet spot where people tend not to be overwhelmed (small, medium, large).

There is a more important reason, though, and that is the aversion to extremes. People are averse to choosing any extreme without good cause. Three is the minimum number to take advantage of this. If you had just two versions, the best way to force people to upgrade to the better and more expensive version is by simply introducing a new super-expensive third option. This causes angst in people who might otherwise buy the cheapest.

Hence why everything comes in small/medium/large, etc. This is also why the "default" position is always the middle, and you have to ask for the others specifically. Use words for the lowest like "basic" or "starter" etc. In general, versioning in threes is done to force "most" people into the middle option and let you profit more on your "power users" in the high-end (for example, I am a known "power-user" at Wendy's).

</comment></comment><comment><USER8> Here are several articles i've collected over time about pricing:

[http://dl.getdropbox.com/u/113637/softwarepricing/pricing%20...](http://dl.getdropbox.com/u/113637/softwarepricing/pricing%20new%20products%20mckinsey.pdf)

[http://dl.getdropbox.com/u/113637/softwarepricing/How_Do_You...](http://dl.getdropbox.com/u/113637/softwarepricing/How_Do_You_Know_When_the_Price_Is_Right_.pdf)

[http://dl.getdropbox.com/u/113637/softwarepricing/Econometri...](http://dl.getdropbox.com/u/113637/softwarepricing/Econometric%20Analysis%20of%20Switching%20Costs%20in%20the%20Software%20Indsutry%20.pdf)

<http://dl.getdropbox.com/u/113637/softwarepricing/VBSP.pdf>

[http://dl.getdropbox.com/u/113637/softwarepricing/PricingMet...](http://dl.getdropbox.com/u/113637/softwarepricing/PricingMetrics.pdf)

[http://dl.getdropbox.com/u/113637/softwarepricing/SW_Pricing...](http://dl.getdropbox.com/u/113637/softwarepricing/SW_Pricing_Licensing_Report.pdf)

</comment><comment><USER9> First, look at your variable costs. These are the things that go up as more people use your product. In SaaS, that means bandwidth and storage. Price accordingly. I think $0.25 per GB for both storage and bandwidth is a reasonable assumption (yes AWS can give you lower, but you have to deal with request pricing and S3 vs. EC2 persistent storage, etc.). Don't price yourself lower than that. If you want to give people 5GB of storage space and 50GB of transfer, you need to charge them at least $15. Those are real costs.

Any free version will be crippled because storage and bandwidth cost money. That's ok. Give a few MB away for free with unlimited time (unless you have a SaaS that isn't going to be crippled by low storage allowances). That way, people can sign up without a credit card and really use the system without any hassle. If they really want it, they'll need more storage and pay. Most of the accounts will probably end up being browsers who don't really want/need your service, but that's ok.

Take into consideration your market. Is this a market with lots of users? If so, go for lower margins, you'll make it back in scale. If this is a niche, that niche will pay up and you'll have fewer users so you'll have to charge more.

Most importantly, make it obvious. Don't make it so that someone looking at your rates wonders why the pricing scheme is the way it is. Make it obvious how to sign up and terminate. Make it hassle-free. It makes you look professional. Don't do paypal or some other form of payment simply because it's easy/cheap. It's a hassle. It looks unprofessional. Make it easy for users to get to what they want - hopefully it's your product, but if not they're still people that deserve the respect of ease of use.

</comment><comment><USER10> Thanks! Didn't know the BoS site had a forum as well.

</comment><comment><USER11> I'm personally against the idea of selling software. It doesn't have any real value because it costs nothing to reproduce. Sure, the development costs money, and you need to live, but there are other more morally correct ways of obtaining cash than selling something that should be free.

For more, see fsf.org

<comment><USER12> Is it moral to charge for food? Water? Heat? For tutoring or teaching? If I've learned something in my years and I want to make the world better by passing it on, through software or any other means, I'm morally _obligated_ to find a way to sustain it. I personally also feel morally obligated to educate my children so that they can do the same.

The best model man has yet developed for allowing people's talents to be used to their fullest is _business_.

I disagree with your implication that I am somehow immoral for selling software. In fact, I am a little annoyed.

(Edit: but I did upmod because it's an interesting POV that deserves to be heard.)</comment></comment>


Ask HN: Getting a Job Without Leetcode? - <AUTHOR> As the title implies, is it possible in this day and age to find a software engineering job without grinding LeetCode?
Is work experience and personal side projects not enough?
I understand that we as engineers must follow the the tide of the industry and adapt to its current and future challenges. But spending time outside of work to "practice" these style of questions leaves a sour taste in my mouth.
Any advice is welcome. <comment><USER2> What do you see as the set of differences between "LeetCode" and the coding style you prefer?

</comment><comment><USER3> To answer your question yes, plenty of very good positions can be had without being treated like a trained monkey trying to regurgitate memorized material that once you get a job will be useless again for 2-3 years till you apply for a new position again.

Smart employers and good interviewers will spend time with you, ask you hard questions, get to the bottom of what you know and don't know without asking you to spend hours writing some useless piece of code, or giving you algorithmic problems for a job that will rarely if ever use them. That said, just because I dislike leetcode style interviews and take home problems doesn't mean I dislike hard questions, tough problems and figuring out how you think. I just think it is highly disrespectful and frankly discriminatory against experienced people to ask them to spend hours writing code as part of an interview process or answering questions which the entire industry knows people have to study for to get pass. I call it discriminatory because anyone with a life, family etc can't sacrifice the 4-6 hours for each employer x maybe 10-15 employers they applied to and are working through the process on. Not to mention the 1-2 months of study time just to pass a "test" that won't do anything but get them to the next reviewer as sorry it won't improve their job skills overall. So it is gamed for the young, fresh out of school engineers because they are typically single (hence lots of free time), still in the study mode and they don't know better how disrespectful an employer is being when they won't give you the time of day till you swing from branch to branch like a good monkey.

I am a prior founder and a current CTO for a startup, and I absolutely do not allow these types of interviews, I also happen to have been writing professional code since the early 90's and lived through the dot com days when people thought this style of interviewing was good (me included btw) until we learned it gave us smart people but not people who could deliver products or solve real problems. So for my interviews and how I train people to conduct interviews. We focus on learning who you are, what you bring to the table and that if you joined you will elevate the team both technically and culturally. That means, you will get asked hard technical questions, you will get tough scenarios to think through, but you will do that with someone on the team at all times and you are free to ask us questions to help you. We will not give you a useless test and say if you can pass this then we will talk to you. No, that's crap. We will ask you how to talk through real world problems, for example, we will ask you what data structures you would use for a given scenario and why, we will ask you what the consequences of those choices are, and we will collaboratively see if we can work through problems together. I don't care if you can write a perfect line of code or most optimized loop in whatever language, I care that you know what to write and when. Because with that knowledge you'll figure out how to do it in any language you know or learn.

Please also don't misunderstand me, I think people are using the leetcode style not out of intentional disrespect but out of a lack of training & understanding of how to properly conduct interviews and find out what someone knows and is good at. It seems logical to them, they give you a problem today and you come back to them in a couple of days when you have solved it, shouldn't take you more than a few hours they say. Yet the reality is the message this interviewer is sending is that you are not important enough to talk to until you can jump this high, and oh, btw the height of the stick is relative to what the interviewer thinks is good but you don't know the interviewer so good luck with your guess. The interviewer sees it as a way to weed through lots of resumes and only talk to those who are "serious", but in the end they just eliminate most of the best candidates that have experience and self respect because someone with experience and self respect knows a good interviewer.

I really cannot stress enough, it is not that I don't believe in hard questions, I just believe it has to be done in a way that is conducive to learning about the candidate, and you cannot do that in a leet style code interview or in take home tests. I don't care what you think you know, the only way to learn about the candidate is to respectfully talk to them like an intelligent colleague and see what they know and don't know.</comment>


In the New Cold War, Deindustrialization Means Disarmament - <AUTHOR> https://foreignpolicy.com/2020/08/12/china-industry-manufacturing-cold-war/ <comment><USER2> > They show the peril of ceding control of vast swaths of the world's > manufacturing to a regime that builds at home, and exports abroad, a model > of governance that is fundamentally in conflict with American values and > democracies everywhere.

This seems like a bold claim, and I didn't feel the last part was really backed up.

I guess I just don't see how that is the part of the model of governance that is in conflict with democracy.</comment>