Why Do Millennials Hate Groceries? - <AUTHOR> http://www.theatlantic.com/business/archive/2016/11/millennials-groceries/506180/?utm_source=quartzfb&single_page=true <comment><USER2> As a millennial myself, my beef isn't with groceries, it's with the once-a- week, huge shopping trip. I much prefer to make a few small trips a week if it's on my commute. I used to live near a small, independent grocery and would usually stop in on my walk home from the train and grab stuff to cook that night.

<comment><USER3> I love both! I like stopping by small independent grocery stores, but I also buy what I can at Costco. My wife and I love to go to Costco and walk around. We set limits on what we will buy and have general rules such as no buying more of any category until we eat what we have. We spent about 600 per month at Costco, 150-200 at other grocery stores, and 150-200 eating out.

<comment><USER4> Whoa, where do you live that you're spending $1000 a month on food for two?

I love Costco too, but our apartment is too small for storing lots of bulk food items. My wife and I dream of having a bigger kitchen, pantry, and chest freezer someday.

<comment><USER5> I find it really easy to hit that price point.

When I was single I was averaging about 250 -> 350 a month. But I offset this by buying chicken in bulk at 40LB increments and that usually lasted me several months.

For two right now I'm average about 700 to 800 a month. I have a number of food allergies so ingredients or restrictive. The other half is as close to organic as possible.

I'd say the biggest contribution to the price is moving off farm sourcing. I don't have the time right now to process 40lb of chicken, or several cases of produce.

</comment></comment></comment></comment><comment><USER6> Looking at the data presented in the article - it seems to correlate pretty well with economic recessions. I think that when people are flush with cash, they tend to eat out, while when they lose their jobs and are sitting at home, they economize at the cost of personal inconvenience. This is neither structural nor generational - there were dips for all age groups during the '91, '00, and '07-11 recessions, the dips were just larger for younger workers (who tend to be more exposed to economic fluctuations, since they enter the job market with no work history or network, and the onus is on them to convince someone they're worth paying for).

Certainly there were moments when I worked at Google that I was like "Why do I bother going to the supermarket, when I get 10 meals/week at work and can easily Instacart the rest?", and it was really just force of habit that kept me shopping. But now that I'm doing a startup, I appreciate having habits that keep my burn rate low - my in-laws recently looked at their food budget and realized that "Oh, the reason we're not saving any money is because we eat out every day."

</comment><comment><USER7> Well, I'm a millenial. Without even reading the article, I'm wondering who in the hell chooses to drive, park, walk half a mile inside a flourescently-lit building, stand in line, pay, load a car, drive back to a house, and unbag groceries when all of that can be avoided by using a computer.

A better question is why we still have food warehouses that would be better operated by robots than people.

As a high-earning hyper-urban techy millenial (Brooklynite / software engineer) who doesn't particularly enjoy cooking, I'm wondering where the value proposition for groceries is when I can order from a huge variety of nearby restaurants, who will deliver hot, cooked food to my door every night for about $20/meal.

Considering there tends to be zero food waste with this option, I'm not sure I'm saving money by shopping for food, especially when I assign a value to my free time, which I like to estimate at half my hourly rate in calculations like this.

<comment><USER3> You definitely save money eating at home once you get good at it. If you live with someone else it is also a great social opportunity. These days I cook and eat with my wife, but before I met her I cooked with my roommates.

One roommate now will only eat with us if we add up the cost of ingredients and charge him fairly. Many of our dinners cost only a couple dollars.

Pasta with marinara sauce and dinner rolls: 1.33 / pound pasta, 1.80 jar of sauce, rolls 0.13 each. Serves 3-4 people for $5. 15 minutes (limited by water heating).

Tacos with guacamole: $3 pre-made guacamole, tortillas 0.5 / 12 pieces, beans 1.20 / can, salsa $2 / half bottle, tofu 1.5 / block, cilantro 1 / bundle. rice ~$1. Serves 3-4 people for $10. 20 minutes (lots of tasks, have to cook tortillas).

I won't break it down, but I can do a nice sushi dinner: various rolls, cold tofu, inari, miso soup, for 3-4 people for about $15. 45 minutes (lots of tasks).

In any case I can feed three adults for about ten dollars and 2/3 of an hour of my time. Usually there are enough left-overs to make a nice lunch for myself.

I enjoy eating out, and do so about once a week. Before I got married I ate out a lot. I would spend about $900 per month just for myself. Now I make an effort to cook dinner 6 days a week and spend a total of about 800 per month on food for both of us.

<comment><USER8> When I see posts like this the prices often feel like they're chosen to be the best possible that could be achieved.

For instance, pre-made guacamole, if it's actually made entirely from real avocados, is more like $6 where I'm at if you want enough to feed 4 people multiple tacos each -- so twice the price you're quoting here.

<comment><USER3> Oh, you are right, I did the math wrong. I pay $11 for a three pack of 1 pound guacamole boxes. That's closer to $4 each. I'm in California which has a lot of Avocados. In the summer I can reliably purchase large Avocados for 4 for $5 at local markets. When I can get those I use three to make guacamole.

My general food purchasing scheme is to attempt to only purchase the foods I can get at the best prices. If I am shopping and see a 10 pound bag of organic carrots for less than $5 I will buy it and have lots of carrots that week. For example: carrot salad, egg-rolls (carrot filling freezes well), soup, or stir- fry.

I can always buy tortillas for about 3-4 dollars for at least 6 dozen. I freeze them into one dozen stacks and defrost in the microwave until they can be teased apart and finished on a pan.

Some of the best deals I get are at Whole Foods. They often have very good sales on frozen foods. Otherwise I get foods at Costco, a local family market, and Trader Joe's. In the summer I occasionally go to a flea market to get specialty items and seasonal produce.

</comment></comment></comment></comment><comment><USER9> Maybe I'm missing something, but it seems to me that this article may completely misinterpret its own statistics. It keeps talking about _shoppers_ , but the unit in all of the charts is _dollars_.

It claims that more _people_ are eating out. But it may be that as income disparity increases, restaurant prices go up for the people who can afford to eat out. That would lead to an increased amount of _money_ going into restaurants, even though the same number or even fewer _people_ are eating out.

</comment><comment><USER10> Bit of a summary, from the article:

"So what's the real story here? Yes, Millennials are shifting their spending toward restaurants and bars and away from grocers. But it's not an unprecedented shift. They're simply returning to their mid-aughts levels of restaurant spending."

<comment><USER11> This was in the comment for a bit but is gone again, but the rest of the summary would be that this isn't just Millennials. Gen Xers and their parents are also spending more at restaurants/bars

<comment><USER10> Sorry, I put it in for a second but some of it was repetitive (minus the part you mention, of course). Here's what was also in my comment:

"The big story here is not that young people are uniquely turning away from groceries. Rather, the story is a structural shift toward eating out at restaurants, among Millennials and their parents (and perhaps even their grandparents)."

</comment></comment></comment><comment><USER12> It's bizarre to treat shopping on the grocery side of a super Walmart as different than shopping in a medium or larger sized grocery store. It's the same selection and the same experience (unless you need something that the Walmart stocks in addition to the groceries, in which case it is moderately more convenient).

</comment><comment><USER13> I don't know about you guys, but I love grocery shopping. Going to Ralphs and Costco is almost always an enjoyable experience for me (usually only hampered by dealing with parking). I believe you can use Google's delivery service to order from the latter, but I haven't tried it yet.

<comment><USER14> If I had a Ralph's it would be. Mostly shop at Walmart for canned goods or slower to perish items. Publix is run down, and old fashioned in that it lacks sunlight aside from the front window. Same for Winndixie.

</comment></comment><comment><USER15> >But today's shoppers are springing for options in a market that supermarkets once monopolized. Modern shoppers divide their shopping among superstores like Walmart, supermarkets like Giant, specialty shops for bread and coffee, and online shopping for all of the above.

I suppose that technically-speaking a Walmart (or Target) is not a "supermarket." But that seems like a distinction without a difference in terms of making statements about how a given demographic is moving away from grocery shopping.

<comment><USER16> Most rural WalMart super-centers have a full supermarket built into them.

<comment><USER15> That was my point. (And Walmart Superstores are increasingly in a wide range of suburban locations as well.)

ADDED: I don't like doing grocery shopping at Walmart in general because of generally sub-par meat, bakery, and produce. But I still use one to pick up packaged groceries simply because it's a bit closer than my nearest regular supermarket.

<comment><USER16> Yeah, they are pretty sub-par, and they tend to be a zoo because everybody and their mother is there buying something - with about three of the sixteen cash registers manned.

</comment></comment></comment></comment><comment><USER17> This is a thought experiment on my end:

What if there was a mobile(not cellphone) grocer that frequented locations where people might consider buying from the grocer?

A grocer truck (like a food truck) could frequent train station parking lots as designated times allowing commuters to shop a couple of days' groceries. A grocer truck could frequent central locations in a neighborhood at designated times to allow residents to walk up to the truck to purchase groceries.

Upsides:

grocery when you need it without trips to the supermarkets

purchase less but more often than a once a week trip.

convenient location and timing to do grocery shopping

no parking hassles if the model is a walk up to purchase groceries.

downsides: limited choice (can be mitigated if grocer has a mobile app)

limited supply (again if there is an app and you can preorder the items are kept aside for you for a limited time before being sold) Perishable items cannot be set aside indefinitely.

limited pick up options (grocer can field location requests and can add a location if there is enough demand for it)

All this might have already been tried but I don't know of it. What other downsides do you see apart from the fact that some people would rather order from a restaurant than cook? This would not be for those people who don't want to cook.

<comment><USER18> Everything you describe is how this works in much of the world, except remove the wheels.

The station near my work has three "supermarkets" within 50m of the entrance, catering to three different price brackets. There's nowhere to park, they sell very little other than food[1], and they only provide baskets -- they don't expect people to buy more than they can fit on a bicycle. They're open every day, from 7-22.

[1] They sell detergents and so on, but you can't buy a TV or a pair of jeans, or a huge box of anything.

<comment><USER17> That's good to know. In my birth country growing up I remember my mom used to buy a couple of days' vegetables from a roaming vegetable vendor. The vegetables were fresh and available at the doorstep in the morning before lunch preparation began. Since we were vegetarians we didn't see or know if there were meat vendors that did this too but my guess is there weren't since these "mobile" vendors didn't have refrigeration on their push carts.

</comment></comment></comment><comment><USER19> They are not counting Walmart as a grocery store. I buy food at Walmart because it has everything else, is the cheapest and closest.

If I was less broke I would go out more and maybe splurge at Target sometimes, and buy more stuff on Amazon so I don't have to carry it. But the 'neighborhood' Walmart has produce so-- I think actually they should count Walmart and Target as grocery stores.

<comment><USER20> I think they are purposely segmenting the population here to show how typical supermarkets (read: Food only) are fading precisely because other retailers (walmart, etc) have gotten into the food game. Walmart isn't a supermarket because it's got a lot more than food. Its goods are a superset of your typical Giant, Kroger, Ralph's, etc. This is also likely a reason you see Kroger start to expand into "Super stores" that have one-stop shopping for a lot of similar things.

</comment></comment><comment><USER5> For me I don't mind grocery shopping. When I was in the city proper, it was on the way too or from work. I would do delivery some time. But I love too cook and get hands on ingredients. After I moved thought, my diet has tanked due to difficulty in getting food.

Exceptions are dried spices, household goods, and oils which I buy in bulk. I did hate the time in line, effort etc. But also allowed me to check out for a bit.

Now I dread it, and do most of my orders through FreshDirect. I'm sort of in a food desert. There are two grocery stores two miles away from me. There are buses that run every 1.5 hours, and take 40 minutes to get there.

I hate it because I generally have to walk. It burns about 2 hours for me. I have to carry everything back in a backpack. Uber/Lyft is 30$ per trip. It's a bigger problem for impromptu meals. Or oh I need this but forgot about it.

The other night I wanted a salmon filet over a salad. I went to the store all the ingredients together was 22$. The pub next store has a salmon entree for 15$. Sometimes the value propositions are skewed.

<comment><USER5> A few more thoughts came to mind.

Firstly when I was in the city, I didn't track my expenditure but would say I was spending more. This was in part because of a smaller kitchen and fridge. Because of the smaller kitchen there was less space to get items in bulk. The fridge didn't allow much meal prep. I'm the type to usually devote one day to cooking out of the week. But at the same time, I cooked more often due to convenience.

Secondly I feel like food prices are going up. My diet was very simple meat, produce, yogurt, protein powder. Those prices have stayed relatively flat. But when I started shopping for my girlfriend. It seemed like bread, soda, chips, etc. had gone up. I almost had sticker shock, when I went to get soda.

I'm also curious about the ramifications of living space. The millenial is often slated to be living in more urban areas. Where the kitchens often are not the best. I'm not asking for a Viking or Subzero range, but less than 10 minutes to boil water would be nice.

My apartment in the city had a Kenmore induction range. A piece of chicken on that took about 6 minutes to cook. My kenmore gas range at my house took 2 minutes to cook chicken. The cooking process was much quicker.

A number of my friends also don't know how to really cook. I'm not trying to be mean, but we're also seeing a proliferation of meal in a box busineses. That ship recipes to you. Is it ease of delivery, or ease of preparation? It was pretty much jumping into the deep end when I learned about my food allergies. Learning how to really cook, then figuring out how to substitute items.

Taking this back a step. I grew up with tv dinners, around the weeknight sitcom. I know alot of people who grew up this way. A shift from family dinner, where at X time dinner was on the table and the family gathered around. Is there also an underlying shift to eat and be entertained?

</comment></comment><comment><USER21> I am not a Millennial, but the article did mention Gen-X and their parents, so..

I love cook. I love preparing a delicious meal for my family. We're foster parents and currently have two under three, and I know they're too young to really appreciate it, but I love preparing colorful, delicious meals for them.

One thing that really helps me at the store is a list. I have a wiki set up on our home server where I track menus for the weak and recipes for those meals. I also keep a copy of the grocery list. I print that out, scratch out anything we already have on hand, and take that to the store. Makes it all really simple and easy.

Once you have a dozen or two meals that the kids will eat and the parents enjoy, you can mix and match those and also rotate in some new ones to try. But you'll always have that base, so when that hectic week happens, at least meals won't be an issue.

<comment><USER22> I also have two under 3, so I can commiserate with making routine tasks as easy and efficient as possible. Ironic that you're running your kitchen like a restaurant tho, eh?

I've been trying lists with Trello, Alexa, or the ShopRite app because I either forget to print the list, or the printer is out of toner, or I can't read my handwriting because my only free time was 2am and I couldn't see straight anyways. There's no elegant and complete solution out there that works for me yet.

<comment><USER21> Wiki is the only thing I like. I don't like apps for this that make me enter too much into forms.

My menus look something like:

October 21, 2016

       * [[recipe1:recipes|Recipe One]]

       * [[recipe2:recipes|Recipe Two]]

       * [[recipe3:recipes|Recipe Three]]

       * [[recipe4:recipes|Recipe Four]]

       * [[recipe5:recipes|Recipe Five]]

       * [[recipe6:recipes|Recipe Six]]

[[ShoppingList20161021:lists|Shopping List]]

\-----

October 14, 2016

...

Now, I can just click to pull up the recipe and or shopping list.

Recipes can be cut and paste from websites or a picture taken with phone from one of my cookbooks, etc.

I can cut and paste recipe to make new menus very simply or I can just copy entire menus with shopping lists; just need to edit the date.

Oh and I have a vpn running, so if I do happen to leave my list, I can still get to it.

</comment></comment></comment><comment><USER23> Was this generated by @thinkpiecebot?

[https://twitter.com/thinkpiecebot](https://twitter.com/thinkpiecebot)

</comment><comment><USER24> I remember articles like this about Gen-X (my generation) 15 years ago. I think it's just the case that people in their early 20's usually don't cook. I know I didn't. But as I and many of my friends moved into our 30's, we discovered the joy and satisfaction of cooking at home. Now my wife and I cook at home quite a bit. I'm sure we still go out to eat way more than our parents' generation, but we also use ingredients from local farmers' markets in our cooking quite often, which our parents didn't do really.

My point is, millennials are young; young people don't cook. This isn't a big surprise.

<comment><USER11> The article actually makes the point (not in the clickbait title) that gen Xers and even their parents are also spending more at restaurants and bars and less on groceries.

<comment><USER25> Asked and answered, counselor.

The line right under the title says: _Because they prefer chips from CVS and going out to restaurants. And, increasingly, so do their parents._

</comment></comment></comment><comment><USER26> Maybe they could actually build grocery stores close to where millennials want to (and can afford) to live? My nearest "grocery store" is a Target over a mile away.

<comment><USER27> Food deserts are a real issue in some cities that are no where near as dense as our major metropolitan cities.

Honestly, I start thinking about the grocery store model and wondering if it needs to evolve.

</comment></comment><comment> _-__--- No real thoughts about the content of the article, but shouldn't the Atlantic be able to produce a better looking plot than a stock, calibri-fonted MS Excel line-graph?

</comment><comment><USER28> I believe this is not just a shift in spending behavior by age, but a product of people waiting longer to have children. Cooking a meal as a single person or couple is harder to justify vs a restaurant. When cooking it becomes more cost and time effective the more quantity of food you cook. For me it is far more time and cost effective to eat an inexpensive meal from a take out place, although I like cooking.

</comment><comment><USER29> Why does this article make assumptions about me because of the period I was born in?

<comment><USER30> Because that's how statistics work.

</comment></comment><comment><USER31> This touches on a question I've been pondering lately: why _isn 't_ it cheaper to eat out than to go grocery shopping?

Obviously, this doesn't apply to fancy restaurants, but it seems to me that due to economies of scale there should be some class of budget "eating out" offering that is actually cheaper than if you were to make it yourself.

<comment><USER6> You're paying for the service.

The parts of the food chain that enjoy economies of scale are in raising, harvesting/slaughtering, preparing, distributing, and cooking the food. Plating the food and bringing it to your table has no economies of scale, good service has diseconomies of scale, and dishwashing has only mild economies of scale.

There is a category of food - store-bought prepared, grab'n'go, and fast food - that actually does move the cooking to the institution, and these foods aren't _much_ more expensive than prepping them yourself (certainly cheaper when you count the cost of labor). You have freshness & selection limitations on them, though: since non-refrigerated food goes bad within an hour or two after being cooked, they're limited to those items that can move in sufficient volume that at the scale they're being cooked, they'll sell within an hour.

<comment><USER31> Yeah, I guess I didn't make clear by "eating out" but I don't mean sit-down service at a restaurant. Just any sort of institution that provides cooked food to me.

I suppose you're right that "fast food" might be cheaper, but it's so unhealthy. I would think some business offering rice, beans, lentils, teeeeny bits of meat, cheap but fresh vegetables could still come in cheaper than preparing food yourself, provided they don't have to wait your table or anything. Maybe they only offer one or two meal options and it's somewhat pre- cooked.

<comment><USER6> That'd probably work on a unit-economics basis but fail on a volume basis. In order for cooking-at-scale to work, you need to drive sufficient sales within your local area that you can ensure that food is bought within a few minutes after cooking it. The vast majority of people buy by taste rather than by healthiness. (Otherwise, we wouldn't have such an obesity epidemic in the US.)

Incidentally, in markets where there _are_ a fair number of health-conscious yuppies, you do get healthy fast-food restaurants, eg. Loving Hut in SF/BayArea. I hear Portland has a big food truck that scene that's somewhat similar.

</comment></comment></comment></comment><comment><USER32> I personally don't have time at the end of the day to go shopping...so my shopping is generally reserved for weekends. I do go to the grocery store to get my stuff...but if there was a better solution I'd switch in a heartbeat.

By better I mean there are so many solutions to explore (the following two came to the top of my head):

1\. Amazon style - buy & deliver quickly local marketplace (the local chains could easily compete as they'd have to maintain quality and price)

2\. Uber pool style delivery - a truck that goes around delivering (with some kind of mobile app / website that has real time information on it's stock and the ability to reserve items @ a premium)

</comment><comment><USER33> It's not the fact that I hate Grocery Shopping. I hate going into the store during peak hours. I know I can always go before or after peak hours, but working second shift makes that difficult when most stores near me close at 11pm. Coupled with the other issue: People. Hacking and coughing, not covering mouths, kids running around with no parental supervision. Or those same kids walking the cart into things or other people. (I know that not all kids are like this, but "one bad apple spoils the bunch")

I understand that going to a restaurant is no better, but at lease I can call ahead, pick up the food and leave.

</comment><comment><USER34> Oh, it's the daily "Why won't millenials engage in the usual consumerist patternsß Don't they know they are ruining the economy?"-headline. I feel sorry for the article writers that get burdened with this stuff.

<comment><USER35> Not really. The headline is clickbaity, but then the author goes against the headline in the third paragraph

      But this story reflects two universal truths about culture.
      First, many cultural changes for which Millennials are
      initially blamed really reflect broader trends affecting
      even the oldest consumers. Second, many cultural changes
      are really reversions to old norms.

<comment> alex- I agree the author made it very clear that this was not a millennial behaviour alone

>The big story here is not that young people are uniquely turning away from groceries. Rather, the story is a structural shift toward eating out at restaurants

>So what seems to be a strictly Millennial trend is in fact part of a much broader cultural shift.

</comment></comment></comment><comment><USER36> Because hardly any of them know how to cook.

<comment><USER37> Exactly, why not title the article "Why Do Millennials Hate to Cook".

</comment></comment><comment><USER38> Why, as a millennial, does it feel like everybody is judging me for the decisions me and my peers make? If people want to be observational that's fine, but you don't have to look very far in the comments here to see the thinly veiled disdain for the habits of my generation.

<comment><USER39> Generally speaking, everyone hates the new guy. I'm a Gen-Xer and we went through the same thing, as I'm sure every generation before us did. My advice? Ignore it. It is meaningless, lazy journalism.

</comment></comment><comment><USER40> Grocery stores are the absolute best venues for people-watching. When traveling especially, the best way to get a sense of the people in a new place is to spend time at their grocery store.

</comment><comment><USER41> Why do newspaper love to talk about "millenials" as if they were a homogenous category so much ?

</comment><comment><USER42> Because they don't know how to enjoy cooking?</comment>


What Is the Best CMS for Community Like Website? - <AUTHOR>

I'm thinking of building a community website for bloggers where bloggers can create their profile, Submit their blog & latest update, meet with new bloggers, Ask questions related to blogging and Write community blog post. I've researched a lot about Drupal and Joomla, But still confused about which one would be best.<p>* I'm not a professional in PHP, ASP (Only Basic Knowledge) * I don't want to spend more than $1000 for this project (So hiring pro is limited) <comment><USER2> Not Drupal, not Joomla, the answer is WordPress

<comment><AUTHOR> Thanks for answering on this question!

</comment></comment><comment><USER3> WordPress/BuddyPress</comment>


Google Maps redirect issue on Windows Phones is a matter of competition - <AUTHOR> http://thenextweb.com/insider/2013/01/05/calling-shenanigans-on-googles-windows-phone-8-maps-narrative/?awesm=tnw.to_i0aEv

<comment><USER2> The Windows Phone browser does not send touchstart or touchmove events. This alone makes it damn near impossible left to implement decent maps, so the claims that its the equivalent of IE10 is incorrect.

Its a pretty huge oversight by MS given that WebKit, Firefox and Opera do it just fine.

<comment> glass- If you alter the useragent on a developer device, Google Maps doesn't redirect and works just fine.

<comment><USER2> WP8, presumably? I tried with 7 but gave up, and since I can't upgrade, gave up on the platform entirely.

</comment></comment></comment><comment><USER3> It's not shenanigans, it's browser sniffing instead of feature detection, and Google does it on too many of its sites.

What's annoying about this "controversy" is that the minuscule marketshare slice that is windows phones merits this much coverage, when this is daily life for the _significantly_ larger (in absolute number) set of Opera users, on desktop and mobile. There's also a very real reason that Mozilla has considered adding (and is going to add?) webkit prefixes to a few CSS properties.

So, sorry WP users. Unless the claim is also that the Opera/Google war is heating up like crazy, I'm pretty sure you're just being neglected. Welcome to the world of built-in user agent string spoofing just to make sites that would work fine not redirect you first.

<comment><USER4> > I'm pretty sure you're just being neglected.

First of all, when "neglect" gives Google leverage to harm a competitor in a different market (using maps to harm a mobile OS vendor), it is reasonable to think it might not be _just_ neglect, but also strategy.

Second, neglect is bad enough by itself. Google has been phasing out support for Opera in properties like blogger.com on desktop, and now is officially on record as saying that google maps for mobile is WebKit-only. That goes against the very basic principle of an open web accessible to all, that Google used to champion.

<comment><USER3> 1) any kind of anticompetitive argument like that is a dangerous road to walk down. Is Google leveraging the popularity of maps.google.com to also marginalize rockmelt? Is a "install chromeframe" interstitial on IE6 some strategy beyond "we don't want to support your browser"? there is always a line, and considering how widespread UA sniffing and webkit-only prefixes are, you would need a considerably higher bar of evidence to demonstrate any sort of strategy at work instead of just lazy front end developers.

2) This we agree on. There are very few reasons to UA string sniff to determine functionality, and redirecting based on it is about as low as you can go on that axis. Yes, there will be users that click through the "this won't work in your browser" button and still get mad at you that your site doesn't work in their browser (just see app reviews for plenty of evidence of this), but there should still be some way of trying the content for the many browsers out there that a developer just doesn't have the incentives to manually test in.

("that Google used to champion" is just dumb rhetoric, though. it ignores the very simple fact that any organization is made up of people with very different opinions and attempts to trivialize the efforts of all the people at google still working hard on web standards and their implementations. I don't agree with all of Mozilla's decisions with regard to the open web (in fact, working group mailing lists are 90% disagreeing with each other on how to advance it), but that doesn't mean that you guys now no longer champion it)

<comment><USER5> From <http://www.google.com/about/company/>

"Google's mission is to organize the world's information and make it universally accessible and useful."

<comment><USER3> Please engage with substance or just misquote "do no evil" and be done with it. If you're just providing a counterexample to "universally accessible": as I already said above, maps clearly doesn't work in Opera Mobile and it's barely useable in Firefox Mobile. It probably doesn't work on a teletype or a Speak & Spell either.

"Universally accessible" doesn't seem at odds with the fact that there's always going to be a browser support cutoff point. Google just picked a poor cutoff point in this case. It's only in light of google's commitment to cross- browser standards that this disappoints me.

</comment></comment></comment></comment></comment><comment><USER6> _> Internet Explorer 10 for Windows Phone 8 uses the same rendering engine as the desktop build of Internet Explorer 10, which is certainly capable of loading and running Google Maps._

This argument makes no sense. Google Maps _desktop_ works on IE10, but Google Maps _mobile_ is clearly a totally different site.

I think people are jumping to conclusions here.

<comment><USER7> >a totally different site.

Did you really just type that?

<comment><USER6> Why not? It's obviously not the same codebase as the desktop version of the site, why would you expect because the desktop version of the site supports IE10 that the mobile version of the site would as well?

<comment><USER8> The desktop version of maps.google.com does not work with mobile ie10 as well.

</comment></comment></comment></comment><comment><USER9> This argument is ridiculous. What business sense would there be for Google to restrict access to Maps on one platform in the interest of "competition"? It's not like any potential WP8 users will be swayed over to Android just because of GMaps, considering Bing Maps is a more than adequate alternative.

Occam's razor: it's more than likely that they just don't want to invest the dev + support time to support WP8 (web or native app). It's a relatively small demographic that isn't growing that fast (yet).

<comment><USER10> Maybe in isolation. But combined with two other similar WP8/Google stories within the last week, both clearly driven by commercial issues, the case for this not being a technical issue either becomes stronger.

<comment><USER11> Or its a no one uses wp8 issue that applies to all of gooogle's portfolio. Google didn't keep maps of iPhone, even though that could have sold 10 million androids.

<comment><USER10> It's totally reasonable for Google to decide they don't want to spend the resources to support WP8 due to low usage. But here they were taking an apparently already working (even if not officially supported) site and breaking it. That's a bit less reasonable, but it could admittedly still be a technical issue.

But that clearly can't be the case for the GMail and Youtube issues. Google still continues supporting the Exchange sync protocols for business users, so there's little technical benefit in disabling it for another class of users. Likewise Google is under no obligation to make a native WP8 Youtube app -- but given they've given partners API access to Youtube in the past, clearly there's no technical reason why they couldn't also open up the API for MS to use. In either case there's no plausible way the low market share of WP8 could be the explanation.

Now, of course both of these cases could have totally benign explanations. Maybe the licensing terms of ActiveSync make it undesirable for Google to support it for free users in the future. Perhaps MS and Google can't come to a reasonable agreement about Youtube API licensing terms, and the real villain of the story is MS for trying to now score cheap publicity points with it. Or maybe Google is trying its best to smother WP8 in the cradle. And you can't ignore these other data points when looking at the motivations for these petty Maps changes.

<comment><USER12> If anyone has a counterexample I'd love to hear it, but so far as I know no one other than Microsoft (and, until recently, Google) offers Exchange ActiveSync to free users. In my opinion, that strongly suggests that Microsoft's licensing terms for ActiveSync make that economically unsustainable. If that's right, you would expect Google to drop free EAS support once the major benefit of better iPhone support was superseded by a native Gmail app, Windows Phone or no Windows Phone. One of the planned benefits of buying Sparrow, I suspect. That ''under $25 million" needed to be justified, after all.

</comment></comment></comment></comment></comment><comment><USER13> The real problem is that it is a slap in the face for html. What does Google think it is? Is it a presentation layer standard with ideally many implementations or is it a file format for web kit?

<comment><USER14> It's just a platform they use to deliver their services to their customers - the same way that everyone else does.

<comment><USER13> Not quite that simple. Google does at least partially own the platform and made a lot of noise about html being a better platform for being open before. Everybody else just makes a business decision what they need to support. Native, Flash, HTML, browser variations. For Google this is more of a power play, and a bit of a bait and switch as HTML was sold as being free of those power plays.

<comment><USER14> Google gives away all their client platforms as open source (i.e. Chrome and Android), so it's hardly a power play when compared with the other options.

<comment><USER15> Neither chrome nor android are fully open source. I don't see why that matters, though.

<comment><USER16> True, Chromium and AOSP are open source. I think the point is that Google are playing both games here. They can quite happily compete with the Microsofts and Apples of the world when it comes to power plays, but they also want to see what comes from giving huge amounts of code to the developer community to play with. There are logical, long term business reasons for open-sourcing projects like Chromium, AOSP, Go, V8, WebM etc.

</comment></comment></comment></comment></comment></comment><comment><USER17> As a Linux user I encountered countless "Internet Explorer only" sites. I even had to postpone the adoption of e-banking for a few years due to this.

I never saw Microsoft fight for me, I never saw TNW fight for me. Things only changed because Firefox and later Chrome became popular but my favorite browser (Konqueror) and its engine (KHTML, dad of webkit) still aren't supported.

Is this a matter of competition too?

</comment><comment><USER18> First they block access to Youtube API. Now they decide to block access to Google Maps. Free and Open Web BS is just going too far. I don't think there is absolutely any part of the web which is free and open. It is conveniently used from time to time to convince people to contribute to their platforms.

<comment><USER19> "Free and open web" doesn't mean unfettered access to private parties' services, it means unfettered access to the internet itself. I.e. access to the services on the internet that private parties are willing to let you use.

<comment><USER20> Most everything on the internet is owned by _someone_ , and the whole meaning of things being free and open is that putting something up is putting it up for everyone. Your interpretation is just "you can use the things I let you use", which is a tautology...

<comment><USER19> I'm not sure about tautology or whatever (it seems like you're confusing the network for the endpoints), but I'll give you a metaphor.

In the US you are a "free" citizen in an "open" country. You are free to go anywhere you want on open roads. This doesn't give you the right to trespass and go into anyone's private property. If they have a fence up, you have to stay out. If they're having a yard sale, you can come in.

If Alice wants to let Bob on her property and not Eve, that doesn't make the US any less of a "free and open" country.

This is what is meant by "free and open" web. You can attempt to reach any endpoint you want without restriction, but the endpoint itself has private control over whether you are allowed to its contents or not.

Anything less is not actually freedom, because then the endpoints' freedom to determine who can use its private property is being denied.

A web that is not "free and open" is one in which your _attempts_ to reach endpoints are interrupted and allowed or denied by a third, censoring entity. (Usually the government.) It has nothing to do with how those endpoints would respond to you on their own.

</comment></comment></comment></comment><comment><USER21> I'm very confused. Isn't it in Google's best interests to have everyone in the world using their mapping product? Why would they want to get people on new platforms used to using alternative maps, like, say, <http://www.bing.com/maps/>?

Something doesn't sound right here...

<comment><USER14> They see Google maps as a strong enough brand that they think people will avoid Windows Phone if it doesn't have it.

I think it's a good move. The last thing we need is our one chance at an Open Source OS being undermined by Microsoft.

<comment><USER22> Whatever ones views on Android's openness, this is one interesting way to defend open.

<comment><USER14> They're just trying to avoid having a single company, Microsoft, dominate the industry again.

<comment><USER23> Microsoft will never have a shot at dominating the mobile industry. What I don't understand is your willingness to support a duopoly, which is almost as bad as a monopoly.

<comment><USER14> It's not a duopoly - anyone can use Android for free, and many do.

</comment></comment></comment></comment></comment></comment><comment><USER24> Google's decisions around Windows Phone are probably why:

(a) Ubuntu for mobile will not radically alter the mobile OS options for carriers and hardware manufacturers (despite its appeal to many hackers).

(b) Apple is suffering the pain of developing their own maps application.

<comment><USER25> If Google will reverse the decision once IE10 is standards compliant (touch start/end) then go Google you the people's champion.

If not, then boo Google, are you becoming the new MS?

Time will tell

<comment><USER3> There is no pointer event specification, just fyi. The previous one was scuttled by Apple's patent claims before it left Working Draft status. However, the first Working Draft of the new Pointer Events spec[1] was published about a month ago, and rapid progress is being made. It's built on Microsoft's submitted spec for the pointer event system they created for IE10 and looks like it will be better than the proposed spec it's replacing.

[1] <http://www.w3.org/TR/2012/WD-pointerevents-20121211/>

</comment></comment></comment><comment><USER26> I might be missing the point here but what's to stop developers from building a Windows Phone application that utilizes the tile sources from google maps which uses the Google Directions API for routing purposes?

See: [http://dotnetbyexample.blogspot.co.uk/2010/10/google-maps- fo...](http://dotnetbyexample.blogspot.co.uk/2010/10/google-maps-for-windows- phone-7.html)

I did a similar project a couple months back on the WP7 platform and ended up using OSM + ORSM instead.

</comment><comment><USER27> Where's the repro? What's the mechanism? Header redirect? Meta tag? JavaScript? Magic? Can this effect be replicated without a Windows Phone?

I tried setting my User-Agent to "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; ARM; Trident/6.0)" and could not repro.

<comment> glass- Try making your useragent:

"Mozilla/5.0 (compatiable, MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch)"

I did it in Firefox and maps.google.com redirects.

Making your useragent anything that contains "Windows Phone" makes it redirect.

<comment><USER27> I see <http://maps.google.com> -> <http://maps.google.com/m/local> -> [http://www.google.com/m?site=local&](http://www.google.com/m?site=local&);

      > GET / HTTP/1.1
      > User-Agent: Mozilla/5.0 (compatiable, MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch)
      > Host: maps.google.com
      > Accept: */*
      >
      < HTTP/1.1 302 Found
      < Location: http://maps.google.com/m/local

      > GET /m/local HTTP/1.1
      > User-Agent: Mozilla/5.0 (compatiable, MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch)
      > Host: maps.google.com
      > Accept: */*
      >
      < HTTP/1.1 302 Moved Temporarily
      < ...snip...
      < Location: http://www.google.com/m?site=local&

The final site looks like regular Google search.

</comment></comment></comment><comment><USER28> Curiously, a simple miss-spelling of "Windows Phone" in the user agent seems to get it working again.

<http://www.youtube.com/watch?v=Dd7RiMCrZFw>

</comment><comment><USER29> We really should not rely on the map service from these big companies. You have no idea when they will force you to do something, such as change your phone in this case.

<comment><USER23> Hear hear! Isn't that the reason why the FOSS movement came into existence? To prevent large corporations from owning the right to the software that we use in our daily lives?

</comment></comment><comment><USER30> What about Opera, Firefox, or Chrome on Windows Phone 8?

</comment><comment><USER31> What I am totally flabbergasted by is the fact that Google is redirecting to Google.com without even a simple message saying that your browser is not supported. That makes no sense whatsoever to me. Can anyone explain the reason that Google can possibly have for this?

Edit:

>For the record, here is Google's formal statement on the issue:

>The mobile web version of Google Maps is optimized for WebKit browsers such as Chrome and Safari. However, since Internet Explorer is not a WebKit browser, Windows Phone devices are not able to access Google Maps for the mobile web

Wonder what this means for Firefox OS then.

<comment><USER9> Probably for the same reason iOS app crashes are just an exit to the home screen (compared to Android's visible "force close" message).

<comment><USER32> Except this isn't a crash, it's something that Google is explicitly doing on their end from the reports.

I too can't help but feel like I'm missing some context, seems like Google would at least warn the user.

</comment></comment></comment><comment><USER33> Google is the new Apple just as once Apple was the new Microsoft.

This is not an evil conspiracy. It's just companies working to increase their market/mind share.

</comment><comment><USER34> Yes, how dare Google not spend engineering resources to support a niche platform which lacks many features run by a patent troll. Truly they are worse than Hitler.

For the record, the number of Microsoft products that support my platform is: 0.

<comment><USER35> What is your platform?

<comment><USER34> linux</comment></comment></comment>


Gab Supports Your Right to Choose - <AUTHOR> https://medium.com/@Torbahax/gab-supports-your-right-to-choose-a57f157c77b9#.5ek1pe2px <comment><USER2> Upvotes on this HN submission may be manipulated: [http://i.imgur.com/OqSQJfd.png](http://i.imgur.com/OqSQJfd.png)

<comment><USER3> Not my upvote.

I'm on gab.ai and thoroughly enjoy the idea of an alternative to twitter.

<comment><USER4> What's Twitter? Oh, the social sewer that turned actually a bot wasteland!</comment></comment></comment>


How many elements can you name in 15 minutes? (Game) - <AUTHOR> http://www.sporcle.com/games/elements.php

<comment><USER2> I jumped into this without any preparation and, oof, did it make me feel really dumb . . . especially given that I've had this thing memorized in the past.

I got 40 of them.

<comment><USER3> I did it without preperation too, and got 51. I would have liked to have got 59 (ie half of them). I think my most glaring omission was 'calcium'. Funny how you miss really obvious things when you're against the clock...

<comment><USER2> _Funny how you miss really obvious things when you're against the clock..._

Yeah, that's the thing. I feel like I should have gotten all of the noble gases, for instance. Nope, blanked most of them out.

Fun times though!

</comment></comment></comment><comment><USER4> Damnit! I thought this was HTML elements.

<comment><USER5> <http://www.justsayhi.com/bb/html_quiz>

</comment></comment><comment><USER6> I got 88, but I'm kinda in the business. I thought I'd get more.</comment>


"Engagement" Is Not A Metric, It's An Excuse - <AUTHOR> http://www.kaushik.net/avinash/2007/10/engagement-is-not-a-metric-its-an-excuse.html

<comment><USER2> but isn't that how TV was also measured?</comment>


535M hours lost a day, selfdriving cars can stop that and Google can monetize it - <AUTHOR> https://medium.com/@JamesBellefeuille/535-752-000-hours-lost-to-driving-a-day-self-driving-cars-would-stop-that-google-can-monetize-it-62c207b73826

<comment><USER2> I love this stuff - thanks for sharing. I've driven under 200 miles in the last 3 years, it's great.</comment>


Medium abuses nofollow - <AUTHOR> https://captnemo.in/blog/2015/04/06/medium-abuses-nofollow/

<comment><USER2> What a horrible article. They are not "abusing" anything; it's their site and it's common for large sites to deploy nofollow. It discourages spammers from creating lots of outbound links for seo purposes and weakens the overall value of outbound links from their site.

"Medium hosts 300,000 articles published by half a million users, and yet none of these links back to external website, because of something called "rel=nofollow". - what are you talking about? That's not how it works at all. The hyperlinks still operate just fine.

<comment><AUTHOR> Yes, I understand what nofollow is for. The links do work, but they are not followed by search engines, which means content is not credited, as it should be.

Also, the title was styled after a similar blog post about StackOverflow ([https://news.ycombinator.com/item?id=4774470](https://news.ycombinator.com/item?id=4774470)).

<comment><USER2> Why should it be? They own the site, so they don't need to give up their link juice to every legit person and every spammer who wants to link out from their site.

Your own link just stated that they enacted nofollow due to abuse and because Google was punishing them by removing pages all together. Then you go on and call them "abusers" for protecting their content. wat.

<comment><AUTHOR> I'm not saying that removing nofollow for medium is the right solution. That would be inviting a horde of spammers on to the site.

However, there can be better solutions (such as the ones by StackOverflow). Content quality (which can be measured by medium) to allow good quality content have outbound links would be another.

A simple start would be to have a whitelist of domains that can be considered authoritative (as suggested in the linked tweet).

Yes, this is a hard problem, but it needs to be solved.

<comment><USER2> No, it doesn't. Go buy your own domain.

off the top of my head, digitalpoint is a popular forum that has always operated with nofollow and I imagine many other sites do, as well.

</comment></comment></comment></comment></comment><comment><USER3> If they removed nofollow it would influence companies with huge SEO budgets to start working on there at putting out discreet promotional content. You would see services offering links on Medium etc..

</comment><comment><USER4> I agree that it would be nice if Medium could find a way to allow search engines to do their magic without inviting a deluge of promotional content.

That being said, this article approaches the problem in a very confrontational and unappealing way...

<comment><AUTHOR> You might be right. I should tone it down.</comment></comment>


Can anyone suggest a nice laptop to run Linux? - <AUTHOR>

<comment><AUTHOR> Hey guys...

I own an Apple and have been trying to get Ubuntu running on it. I got it to work but there's just a lot of small issues and it just doesn't feel solid.

What I'm looking for is a laptop which is somewhat attractive like Apple's stuff but will run Linux. I think Dell hardware is atrocious (and by this I mean it looks very ugly) so I'm looking for whatever else is out there. The Lenovos seem kind of nice. Does anyone have experience with them?

Thanks for any suggestions.

<comment><USER2> While I don't have any personal experience with linux and laptops, I've read many reviews on the web regarding the ibm/lenovo line of Thinkpads as being about as rock solid as it gets.

<comment><USER3> The sysadmins where I work (an almost-exclusively-Linux shop) swear by ThinkPads.

</comment></comment></comment><comment><USER4> Nice question. Since I'm going to be bootstrapping my own firm, I need to always keep an eye on saving money, and shelling out $$$ for an apple machine just isn't justifiable for me. And in any case, I've been using Linux for more than 10 years, so I don't want Mac OS X, and certainly don't want to pay extra for it.

<comment><USER5> I run Fedora Core under Parallels, which is solid enough for a "does this work under Linux?" kind of test.

That said, if I had to buy a Linux laptop, I'd go for a Lenovo ThinkPad, but I'd make sure the one I bought had good driver support. Since the ThinkPads were introduced, I've only ever heard two things about running Linux on them -- "I can't find the @#$% driver for the @#$% @#$%," and "it runs beautifully."

</comment></comment><comment><USER6> Ubuntuforums.org might be a better place to ask than news.YC, though I'll say I'm quite pleased with my Thinkpad Z61m. It's no longer available, but I'm pretty sure the widestreen T60 has the same hardware in a much thinner, lighter package for the same price. The Macbook-sized Z61t is also a good bet. Ubuntu almost works out of the box, though I had to install a video driver before I could start X on the live CD. Debian works with no more hassle than usual.

I've never heard Thinkpads called pretty, but they do look like the serious machines they are. Dells are mostly cheap crap, and they look the part. I wouldn't worry too much about looks - instead, consider that Thinkpads, like many Apples have magnesium frames and hard drive shock protection.

</comment><comment><USER7> I like 1920x1200 resolution so Apple won't work for me. Most Dell laptops work well with Linux. I always get an NVIDIA graphics card and use their driver.

</comment><comment><USER8> Lenovo Thinkpad</comment>


Rust is the future, C is the new Assembly: Josh Triplett (Intel) - <AUTHOR> https://hub.packtpub.com/rust-is-the-future-of-systems-programming-c-is-the-new-assembly-intel-principal-engineer-josh-triplett/ <comment><USER4> [https://news.ycombinator.com/item?id=20790681](https://news.ycombinator.com/item?id=20790681)

</comment><comment><USER5> If you invent the next image format, compression scheme, encryption scheme, etc., and you write a Go library for it, then it can be used by Go programmers. If you write a C/C++ library, it can be used by any programmer (perhaps with a wrapper) on billions of devices.

Now, we add Rust to the list. You can write that library in Rust and it can be used by anyone, too. That's because there is no GC or other extraneous code, and because you can make structures with specifically-defined layout in memory.

Making a list of options go from two to three is a big deal. Especially when, a lot of the time, C++ ends up looking like C when you need to interface it with something else. So Rust is kind of like going from one to two optons.

I'm ignoring other good languages, I know, but those are often just not chosen for a variety of reasons. Rust seems to be breaking out of that trap because of a good community, a few nice features, the fact that it's new, and a bit of luck.

<comment><USER6> > Now, we add Rust to the list. You can write that library in Rust and it can > be used by anyone, too. That's because there is no GC or other extraneous > code, and because you can make structures with specifically-defined layout > in memory.

Genuine question: Can you link a Rust binary with a C/C++ binary?

<comment><USER7> notably firefox has a few modules implemented in rust.

</comment></comment></comment><comment><USER8> I use C a lot on my personal projects, and I have enjoyed learning Rust and playing with it to potentially replace my use of C. For the most part Rust has everything I want, but interfacing with C libs and headers can be so unergonomic. I wish there was a good alternative to bindgen that didn't shoot your build times up. Offline binding generation works, but then you have to manually deal with versioning. I don't really know what the solution is, but it's currently one of the pain points I have with Rust

<comment><USER9> That's one of the items on the list to get better C parity. Binding to C libraries _should_ work as easily as C's #include.

<comment> Tuna-Fish Wouldn't the simplest solution be to just make bindgen emit "from <file name>@<hash>" into the /* automatically generated by rust-bindgen */ comment?

Then when it loads a .h, hash it, and if the hash is unchanged don't write anything. This way, the cargo/rust incremental compilation does the rest of the work. Minimal change to how it works now, yet the compile times go way down.

If you are willing to live dangerously, you could always use modification times instead of hashes to avoid having to even read the .h files on compile, but frankly that sounds like it'd just make enough heisenbugs that people would start doing clean compiles just in case.

<comment><USER9> Caching would certainly help improve the performance of bindgen. But I'd also like to improve the quality of the bindings, avoid the need for a build script to invoke bindgen, and reduce the amount of boilerplate needed to make safe wrappers.

</comment></comment></comment></comment><comment><USER10> Hard to predict what the "Future" is.

Rust fills a niche. It's not the answer to everything.

The learning curve is steep, and for many applications, the benefits are nonexistent.

Although you can use Rust (or anything, even Bash if that's your thing) to write web applications, Ruby, Python, PHP and Javascript are far more productive and this is not going to change tomorrow.

Rust's borrow checker doesn't add anything besides complexity here.

Go is also a nice balance between being simple to use and powerful as a system language (unless "has no GC" is how you define a system language).

Swift has most of the best parts from the language above.

Crystal is a pleasure to write and runs fast.

Zig may eventually get more traction.

Something like Rust, but accessible, readable, that compiles quickly, is stable and has a natural way to do async operations could quickly make Rust obsolete.

<comment><USER11> I often see "steep learning curve" cited as a negative about Rust. But I think it is far less of a learning curve than it is to be a reliable C and C++ programmer.

I am not sure how much Rust you have done yet, but the borrow checker is a tremendous confidence booster. Especially refactoring code. I have never had anything where I can feel at ease in making big changes to an existing code base. As all things, I don't think you notice it once you learn how to write safe Rust code.

Go is certainly a good balance. One of its best things is the rich standard library. I wish Rust took more of that approach.

One thing about Rust that is maybe overlooked is that it is, like C/C++, truly "full-stack". By that I mean you can go from low level embedded (microcontroller with no MMU) all the way up to web server, etc. I don't think it is really a "niche" language--at least it has a very horizontal use case.

Having been at this for a super long time, I have seen the popularity languages come and go from ASM, Perl, Java, Python, .Net, etc. I can assure you nothing is gonna "quickly" make another language obsolete. New languages are incredibly hard to get off the ground and be relevant for a long time.

<comment><USER12> >I often see "steep learning curve" cited as a negative about Rust. But I think it is far less of a learning curve than it is to be a reliable C and C++ programmer.

Man of us are already competent in C and/or C++, so to make a move there has to be a big value prop if it's a large investment. I'm not saying there's not, but most of us aren't deciding to pick up C, C++ or Rust from scratch.

<comment><USER13> I think Rust adoption has pointed out that the idea of safe C/C++ developers are a myth. It's an appeal to authority to be sure, but if Intel and Microsoft (and others, but those two have talked about it) are finding that their security-conscious C/C++ developers are still putting memory safety bugs into production - there's an argument that the idea of "competent" use of C/C++ for safety critical is possible (in general) needs to be brought into question.

On a personal note, learning Rust has made me a much better C++ developer. I'm more conscious of various degrees of aliasing and multiple ownership, to the point where much of the C++ I've written of late is inspired by the borrow checker's conventions. And since what I do is usually executed concurrently, I've seen a concrete decrease in bug count and severity without cost in performance. Which means the time investment in learning Rust has paid off, in my opinion.

<comment><USER14> While I agree, and I do like Rust, C++ still has a winning hand for those of us on Java/.NET.

Just to give a possible example, given everything that Microsoft has been doing about Rust.

On what concerns Windows systems programming, Rust must be able to integrate with .NET, allow mixed mode debugging, authoring of COM/UWP, use of the GUI frameworks, just as easy as VC++ allows us to.

So I am eager to get to know about whatever Microsoft might announce in this regard.

<comment><USER13> You can integrate with COM already through winapi [1] (and author your own COM objects too with com-impl[2]). GUI stuff is still a long way from being useful, but a huge chunk of code has nothing to do with UIs. And Rust can integrate with anything that can call C.

w.r.t debugging, I haven't had much trouble mixing with C++ but I haven't tried to do anything through C#.

[1] [https://github.com/retep998/winapi- rs](https://github.com/retep998/winapi-rs)

[2] [https://github.com/Connicpu/com-impl](https://github.com/Connicpu/com- impl)

<comment><USER14> You can also make fire with two stones.

That is the difference between using C++/CX, C++/WinRT or the existing Rust libraries.

So how do you integrate Rust with VS debugging tools?

<comment><USER12> >You can also make fire with two stones.

I'd love to see that trick.

<comment><USER14> Here you go,

[https://youtu.be/W_HJ1czydiI](https://youtu.be/W_HJ1czydiI)

<comment><USER12> He also needed wood shavings

<comment><USER14> Flammable material is always required, regardless of the ignition method.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> Rust really does seem to be taking off in the realm of native languages. Personally I would've preferred something simpler, such as nim or Kotlin Native.

However I'm excited for the future of system-level programming: we were stuck with C/C++ for a long, long time and maybe that's finally changing thanks to Rust!

<comment><USER16> Both Nim and Kotlin Native have a runtime in the form of a GC/automatic memory management, so you'd still need another language "beneath" them to get the job done.

In the system programming world, "simple" means having the program do what you tell it _and no more_ , so that there are no surprises when you come to run it.

Rust has a very complicated compiler, and a moderately complicated syntax, but the _semantics_ of the language are amongst the simplest out there - <USER2> simpler than C (purely because of the UB), Nim or Kotlin Native IMO, and that really helps when writing low-level code, or even just when contributing to an unfamiliar code-base.

<comment><USER17> I don't know how to put this politely.

There's nothing simple about Rust.

The compiler is complex and slow.

The borrower semantics is anything but simple.

It isn't uncommon for the syntax to look arcane.

The standard library is shallow often making developers have to resort to third party libraries for trivial things.

Rust improved upon languages like Cyclone but it's a far cry from being the next C/C++ when it comes to potential market adoption.

<comment><USER18> _The borrower semantics is anything but simple._

I keep seeing people saying this when discussing Rust in relation to C++. It's not untrue, but I would counter by saying that people who were writing C++ without having a full understanding of ownership and lifetime semantics were writing buggy code. Rust just makes understanding those semantics required to get your code to compile.

<comment><USER19> I have a somewhat related question -

I took CS 101 ~ 301 in college, and have worked briefly in C++ here and there during my career. I like to think I have a working understanding of pointers and references.

Despite that, whenever I go into a C++ codebase (recently, the Chromium codebase) I get _completely lost_ trying to figure out what the owner and lifetime of an object is, whether it's appropriate to pass by value, reference, or clone. I have absolutely no clue the impact of these decisions aside from a vague sense that pass-by-reference is more memory efficient and cloning is safest (When do we care? Is it something you can just pick one and forget about until performance matters?).

How do you start to pick up an intuition for manually working with memory this way? Is there a set of references that can take you past the beginner level? I find the C++ reference documentation completely opaque, and most search hits tend to be too domain specific to be useful.

Is this something that Rust would help with? Is their model easier to understand when each case is correct? Is it something that comes with language exposure? Or tooling?

<comment><USER20> Rust is a huge help with exactly this problem. The compiler will clearly tell you exactly where you've made a mistake if you give it code that violates the ownership rules, like trying to keep a reference past its valid lifetime.

It took me a little bit to get used to, but learning this definitely helped me learn to think about ownership and lifetimes better. I highly recommend you try learning some Rust.

</comment></comment></comment></comment></comment></comment><comment><USER21> Anything that wants to unthrone C not only has to be better and no worse than C but also has to beat "C plus domain-specific libraries". A lot of things C itself lacks can be added with relatively thin libraries. The problem with that, of course, is that we can always circumvent libraries, conventions, type checkers, etc. and do dangerous things.

In that sense Rust does seem very interesting.

</comment><comment><USER22> The Rust community definitely believes in the idea that if you repeat something enough times it becomes reality.

At least the Rust subreddit figured out that there's this other language which fulfills the same requirements of being a higher level C, except unlike Rust it has a massive ecosystem, mind share and vendor support - including from Intel. It does have worse PR, but this is mostly because Rust is unbeatable here.

It would be interesting to also hear from Josh's colleagues which work on a large number of C and C++ projects. Do they agree that Rust is _the_ future? And does that mean that all of Intel's money-making software is essentially obsolete? Is Intel the company aware of that?

<comment><USER23> >At least the Rust subreddit figured out that there's this other language which fulfills the same requirements of being a higher level C, except unlike Rust it has a massive ecosystem, mind share and vendor support - <USER3> from Intel. It does have worse PR, but this is mostly because Rust is unbeatable here.

Which language are you talking about? C++?

<comment><USER22> Yes, C++. Although I'm not convinced that Intel's ready to move away from C to be honest.

</comment></comment></comment><comment><USER24> I think Rust is a cool language, but I've never seen any job postings for it.

I'm still not sure what type of applications to use it for to be honest- not having good support for embedded systems and no CUDA/OpenCL support makes it not appealing.

</comment><comment><USER25> > What sets it apart from other modern languages is that it does not have a > garbage collector or runtime system of any kind.

This is not strictly true. Most Rust programs, like most c programs, do have a runtime. See [https://doc.rust-lang.org/0.12.0/guide- runtime.html](https://doc.rust-lang.org/0.12.0/guide-runtime.html)

However, this runtime can be replaced which is what makes Rust suitable for certain systems programming scenarios (like building operating system kernels). This is the realm of [no_std]

<comment><USER26> I think you're being downvoted a _bit_ unfairly.

1\. Your link is incorrect, as the sibling comments say, but you're also correct that Rust has a runtime. It's about the same amount of runtime as C, but like C (as you say), it does exist.

2\. no_std does not remove the runtime. I _think_ the closest you can get is no_core, but to be honest, I'm not actually 100% sure.

</comment></comment><comment><USER27> Maybe it's the new Assembly. With what little hacking and programming I am willing to put effort into, I will always prefer to work at the direct hardware access level rather than the massive abstraction that is required to run C & the relevant interpreters. Then again, I prefer working on 6xxx architecture (6502,6507,6809,etc) and cap out around 286 IBM compatible with MS-DOS for any real tasks.

</comment><comment><USER28> Rust and Python. I see Rython in the future.

edit/sorry?

<comment><USER29> How do you see that working? Rust and Python come from very different philosophies. I like them both, but they are a strange mix. Python extensions in Rust? That could be a good thing. Much easier to write a reliable Python extension. I imagine tooling for that already exists and I am simply unaware.

Or, maybe Rust semantics with Python's readability? I would like that. Rust is the wave of the future, but ultimately the language will not be a long-term survivor, entirely because of the ASCII-salad syntax. I predict that we will learn huge amounts about language semantics from Rust, thank the team, and then replace it with something pleasant to read.

Rust is the Algol of a new generation. I mean that as both high praise and as a sad prophecy.

<comment><USER30> I too am having problems 'getting into' Rust because of all that salad-y syntax. It looks like Perl at some times ;__;

<comment><USER31> let dest: Vec<String> = dest.split(',').map(|name| name.trim().to_string()).collect();

impl< $($kind: TryFrom< Value >,)* F > allMut< ($($kind,)*) > \+ 'static, F::Output:

<comment><USER26> The first line is formatted by rustfmt to be

        let dest: Vec<String> = dest
            .split(',')
            .map(|name| name.trim().to_string())
            .collect();

which makes it quite a bit more clear what's going on, IMHO. Cramming stuff into one line makes things unreadable no matter what the language.

That second line, while intense, is the syntax for writing macros, not normal Rust code. As always, it depends on what you're doing, but you almost never need to write macros yourself.

<comment><USER31> Yes, the formatted version seems better. My complaint with Rust is the heavy use of symbols. I do not know what is going on most of the time because of it. How would you format this example?

 _fn deserialize < D: de::Deserializer< 'de > >( deserializer: D ) -> Result< Self, D::Error > {_

In my opinion it is not obvious what most of the code is doing when you have hundreds of lines of code and each line contains lots of symbols. Again, this is just my opinion and perhaps my limitation.

I looked at many codebases and found that they were not easy on chaining and using symbols. I do not deny that they could have written it in a more readable way, but generally it was not the case in my experience, based on these projects at least.

<comment><USER26> I think it really depends on what you're used to.

You could format this alternately as:

      fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
      where
          D: de::Deserializer<'de>,
      {

using the `where` clause makes it easier to see the bits, in my opinion. That said, even with your version, you can read it almost front to back: "A function named deserialize that takes one type parameter, D, that implements the Deserializer trait. It takes one argument of type D, and returns a Result of either Self or D's error type."

The symbols in this example:

* <> are used for generics, which is common in other languages.

* : is for two things: trait bounds; that is, restricting a type parameter by a given trait. I'm not sure where this came from, but it feels fairly intuitive after a bit, at least to me. Second, for indicating the type of arguments. Both are about defining the types of things, so even though they're different, they feel consistent, at least to me.

* ' is used for lifetimes; this comes from OCaml, which many programmers aren't familiar with. Nobody likes this syntax, but nobody could come up with a better syntax.

* () is used for the parameter list to a function, this is extremely common in languages.

* -> indicates the return type

* :: is for navigating namespaces; the first instance is for a module, the latter is for an associated type. Similar to :, these are different but similar things, so the similar syntax makes it easier to me.

It's all just practice. Being familiar with a wide variety of languages helps, because Rust draws from a lot of other places.

<comment><USER31> Thank you for the brief explanation (or the meaning) of the symbols! Is there a place where it is laid out in a similar fashion? It would help tremendously.

<comment><USER26> Any time!

[https://doc.rust- lang.org/stable/book/appendix-02-operators....](https://doc.rust- lang.org/stable/book/appendix-02-operators.html)

(I also just realized HN formatting messed up my re-formatting, I've fixed it now)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER32> C is not the new assembly. This line has been reused for years, even decades. And it has always been a lie.

Memory safety and automatic memory management come at a cost. Even in Rust. C will always have a use for critical performance in the embedded world.

<comment><USER33> > C will always have a use for critical performance in the embedded world.

Based off of what reasoning? It's not like C is any faster or more efficient than Rust or C++. Heck you can often go _faster_ in C++/Rust than you can in C thanks to the ease of using abstractions that just make things go-faster for you automatically (such as SSO in things like strings, or constexpr for compile-time resolution).

The embedded world isn't using C because it's a good fit, they are using it because of legacy inertia and lack of motivation to move to anything else. IoT is starting to change that, as all those C memory vulnerability issues turn into product support costs.

And also realistically embedded isn't even restricted to C already. Very popular microcontrollers like the esp8266 or esp32 also have javascript runtimes.

<comment><USER32> _It 's not like C is any faster or more efficient than Rust or C++_

Huh? C is certainly faster than C++.

 _go-faster for you automatically (such as SSO in things like strings, or constexpr for compile-time resolution)._

That is a terrible example. You shouldn't be using the STL (i.e. std::string copying) for performance critical sections to begin with.

 _Very popular microcontrollers like the esp8266 or esp32 also have javascript runtimes._

First, esps are not low end microcontrollers at all. Second, no one uses JS runtimes for performance critical code on microcontrollers (e.g. JS will not give you direct memory access). What an absurd claim.

<comment><USER33> > Huh? C is certainly faster than C++.

It literally isn't. Quite often the reverse is true, as C++ gives you better tools for compile-time optimizations.

> That is a terrible example. You shouldn't be using the STL (i.e. std::string > copying) for performance critical sections to begin with.

I think you're confusing the example with a recommendation to use the STL?

std::string is just an example of SSO. The concept is generally applicable and used in more places than just the STL.

Although "You shouldn't be using the STL for performance critical sections to begin with." is also complete fucking bullshit anyway. There's nothing wrong with the performance of eg std::array. Or unique_ptr. Or vector. Or a variety of other things in the STL. You're not outperforming any of those with raw C.

It's not 2003 anymore so stop acting like it.

<comment><USER32> It is 2019 and even game programmers still avoid STL for performance reasons.

And optimization is taken to another level from that on embedded systems.

I hate to remind you again, but it is 2019 and C is still very relevant on embedded systems. And Javascript, not so much. _Snicker_

<comment><USER14> Surely not the same game programmers that use Unreal with its C++ GC.

<comment><USER32> What does that have to do with anything?

Yes, those same game programmers avoid STL.

No one is advocating replacing C++ with C on capable hardware, troll.

</comment></comment></comment></comment></comment></comment></comment><comment><USER34> People who say "C is the new assembly" don't understand why people moved from assembly to C.

Assembly is bad because it is typeless. Because it is typeless, there is no way to check for program correctness. Rust is okay because it doesn't require garbage collection and types, but the best language would be C with a highly- elaborate strong type system and no closures or other unsuitable concepts for systems programming.

<comment><USER35> Why are closures unsuitable for systems programming? Rust does them really well, not even allocating in the most common cases.

<comment><USER36> Closure often have really weird lifetimes, so typically they've ended up implemented either with GC of some sort (possibly refcounting), or required such exceedingly careful handling that the cost/benefit analysis gets a big fat lump of "cost" that isn't a problem in most other environments because trying to track the transfer of ownerships across scopes, up and down stacks, and perhaps even between threads is just insane. Typically the entire _purpose_ of the closure is precisely to inject some code's logic into a quite distant other bit of code, so the problem is not amenable to normal techniques around rearranging things to be on the stack and so on. The very nature of a closure-type abstraction in C is go to stomping right over the generally- fragile informal, unsupported organization of what code is responsible for what memory.

I once was working with libpurple in a glib environment that made heavy use of segfaults in C. I mean closures. Closures in C that made it really easy to segfault when calling to a closure that had been freed, or really easy to leak if you didn't free them. I encountered situations where the common paths used by the "standard UI" for libpurple worked, but even when I was quite sure I was handling one of my closures correctly, the system would crash because it still free'd my closure, even though it should have been my responsibility to do so, and so on.

Prior to Rust, I'd agree with the common wisdom that closures and systems programming had gone together poorly. It's a demonstration of the power of Rust's approach to the matter that closures become practical in system programming with it; that had not previously been the case.

<comment><USER35> Right, there's definitely all sorts of issues with closures (esp async ones) if you don't have lifetime analysis. But Rust is the only systems programming language that I take seriously.

</comment></comment></comment></comment><comment><USER37> Rust has a npm package problem.

For reference: [https://twitter.com/bascule/status/1166583003021283333](https://twitter.com/bascule/status/1166583003021283333)

<comment><USER38> But also has a solution: [https://github.com/crev-dev/cargo- crev](https://github.com/crev-dev/cargo-crev)

<comment><USER39> As great as that tool is (I do think it's good) I wouldn't call that a solution, I'd call that a mitigation. If the ecosystem is terrible (dependency-bloat wise), then a tool like that doesn't make a big impact.

<comment><USER40> I think the biggest problem crev has is adoption. But if it solves that, then I disagree that it doesn't help with the dependency bloat problem. It would serve as pressure against adding dependencies, because with crev, adding dependencies becomes a lot more work because of the code review system. That in and of itself may be enough pressure to reduce the dependency bloat problem.

It's a big if---especially adoption---but it makes sense to me.

<comment><USER41> Something that requires a lot of work sounds like something people will be hesitant to use.

<comment><USER40> Hence my acknowledgment that adoption is the biggest problem to overcome for crev. :-)</comment></comment></comment></comment></comment></comment>


The Creative Habit: Learn It and Use It for Life - <AUTHOR> http://www.amazon.com/Creative-Habit-Learn-Use-Life/dp/0743235274/

<comment><USER2> Cross-posting from other thread but: I have some friends who found inspiration through "The Artist's Way" (some of the exercises, very internal, not easy to do, challenging)

"The Artist's Way is a workbook for anyone who is creative, feels blocked in their creativity or wishes that they were more creative. The book begins with the statement that everyone is creative and has an artist within them, and the point of this course is to recover that inner artist. It is divided into a twelve-week course, with assignments much like any semester-long college class."

Week 1

"This week initiates your creative recovery. You may feel both giddy and defiant, hopeful and skeptical. The focus of establishing a sense of safety will "enable you to explore your creativity with less fear."

<http://www.theartistsway.com/>

<http://paperartstudio.tripod.com/artistsway/>

<comment><USER3> +1 The Artists Way

Some of the disciplines she takes you through are tough but rewarding. One of my favorites is writing three pages in a journal per day. At the time it was tough, but it really helped to connect my head with my heart.

</comment></comment><comment><USER4> I bought this book on Merlin Mann's recommendation.

See:

<http://www.43folders.com/2009/01/27/creativity-patterns>

<http://www.43folders.com/2009/01/13/twylas-box>

<http://www.43folders.com/2008/11/26/twyla-tharp-failing-well>

<http://www.43folders.com/2008/08/27/book-heuristics>

The book is very good and well worth buying. I'd also recommend the War of Art by Pressman. Both of these books are great for cultivating creativity in a systematic way.

<comment><USER5> I also bought this book on Mann's recommendation. It was very good and thorough. Tharp is a genius and she really helped me focus my creativity more. I highly recommend this book, especially for us who are very left brained.

</comment></comment><comment><USER6> I really like The War of Art

[http://www.amazon.com/War-Art-Through-Creative- Battles/dp/04...](http://www.amazon.com/War-Art-Through-Creative- Battles/dp/0446691437/ref=reg_hu-wl_mrai-recs)

Talks about resistance, and how it stops most of us from doing what we were meant to do.

Highly recommend.

<comment><USER7> I second the war of art.. excellent book.

The classic book on creativity is "A Whack on the Side of the Head" by Roger Von Oech ([http://www.amazon.com/Whack-Side-Head-More- Creative/dp/04464...](http://www.amazon.com/Whack-Side-Head-More- Creative/dp/0446404667/ref=pd_sim_b_3)). It is _the_ book to read on creativity, along with his other book "A Kick in the Seat of the Pants"

His card decks (Creative Whack Pack, Innovative Whack Pack and Ancient Whacks of Heraclitus) are also very useful for breaking bad habits, generating ideas, divergent thinking etc. somewhat like Brian Eno's Oblique Strategies cards,which I recommend (<http://www.rtqe.net/ObliqueStrategies/>)

For more practical examples, exercises and inspiration, I like Creative Sparks ([http://www.amazon.com/Creative-Sparks-Concepts-Exercises- Ing...](http://www.amazon.com/Creative-Sparks-Concepts-Exercises- Ingenuity/dp/1581804385)) and Caffeine for the Creative Mind ([http://www.amazon.com/Caffeine-Creative-Mind-Exercises- Brain...](http://www.amazon.com/Caffeine-Creative-Mind-Exercises- Brain/dp/1581808674/ref=pd_sim_b_4))

EDIT: I'd also recommend Organizing from the Right Side of the Brain "[http://www.amazon.com/Organizing-Right-Side-Brain- Organized/...](http://www.amazon.com/Organizing-Right-Side-Brain- Organized/dp/0312318162) for tips on how creative types organize their workspaces. Handy if you're right brained, a pack rat, like "messy" workspaces or dislike the anal-retentiveness of Getting Things Done.

</comment></comment><comment><AUTHOR> This book was just recommended to me by a software consultant who has a new start-up business. I mention it because there was just another HN thread that asked if creativity can be developed, which is what this author thinks.

</comment><comment><USER8> I bought this book, skimmed through it, then returned it. I found the fluff to info ratio a little too high for my personal needs.</comment>


Where rump kernels are heading - <AUTHOR> http://permalink.gmane.org/gmane.comp.rumpkernel.user/416 <comment><USER2> History lesson:

The earliest "Operating Systems" as we call them today were developed at General Motors. The system was a standard stack of punch cards that would be executed with every program to take are of environmental tasks, provide a standard library, and standard I/O functionality.

This system was built for the IBM701 in '56, but was used on all 40 IBM704's that were sold. It influence the development of a lot of early 50's and 60's OS's nobody ever heard of now-a-days. Namely the Michigan Terminal System, which was very big and never spoken of.

This was still a batch processing operating system. But it was a far cry from the automatic tape switching Univac had only 2 years earlier!

Literally a rump kernel.

:.:.:

The ultimate problem with rump kernels is looking into the future, we arrive back at Unix. Follow the thought experiment.

1) We reach a standard rump kernel for virtualization, that support most users needs.

2) Its declared an industry success and sees wide deployment.

3) In order to speed up its functionality hypermanagers are ran on native rump kernels.

4) In order to speed up its functionality hypermanagers have rump features built in.

5) Duplicate rump features exist in the hypermanager, and its (the hyper- manager's) own rump kernel.

6) rump kerenels and hypermanagers are re-merged to multi-process OS's to remove duplicate code and offer speed ups.

What we need is a more multi-process OS, not a multi-user + multi-processing OS.

TL;DR we are back pedaling.

<comment><USER3> This is going to sound sassy, but it's not _entirely_ meant to ---

Follow the thought experiment:

1) valarauca1 comments on rump

... [stuff goes here]

n) valarauca1 is dies

Is there a point to _anything_, if you use "following to logical conclusion" as measuring stick? We can't tell what will come of this work yet.

-bch

<comment><USER2> I understand what your saying, an I agree. its the journey not the destination that makes scientific progress worth it in the end.

But a lot of the "Rump Kernel" theory sounds like.

"I need a car with less features, and high performance."

"Okay, lets start with re-inventing the wheel, its the logical place to start. We'll build ground up and move from there."

"I was gonna start pulling the head lights off."

"Nonsense! We must start fresh!"

<comment><USER4> No part of the rump kernel is about reinventing the wheel. It is about reusing existing OS code in other situations. So I don't exactly follow. This was a mailing list post so didn't have all the background...

</comment></comment></comment></comment><comment><USER5> I hope the rototill metaphor isn't lost on anyone. That's a metaphor worth saving.</comment>


Tree.js is a JavaScript library to build and manipulate hookable trees - <AUTHOR> https://github.com/marmelab/tree.js

<comment><USER2> I might be thick, but what's a valid use case for this? Tree-based navigation? (e.g. admin section in web-application to browse a 'file system')

<comment><AUTHOR> I used it in [https://github.com/marmelab/phpcr- browser](https://github.com/marmelab/phpcr-browser)

<comment><USER2> That Tree Provider service looks intense. So pretty much the functionality I assumed.

Awesome project btw! Super detailed readme.

<comment><AUTHOR> Thanks for you support!</comment></comment></comment></comment>


Show HN: Easy communication between multiple people/computers - <AUTHOR> http://mock.im

<comment><AUTHOR> I had the idea yesterday because we needed an easy way to share text between computers without installing any software.

It uses TogetherJS, and CodeMirror (pretty simple mash up).</comment>


8'46" - <AUTHOR> https://en.wikipedia.org/wiki/8′46″ <comment><USER2> Why not 8:46? I originally read this as 8 feet, 46 inches...

anyway - sad times we are living in. But possibly good w.r.t. catalyzing positive change. Hopefully we emerge with a better civil-society</comment>