Life is not a conveyor belt - alex-warren http://alexwarren.co.uk/2013/07/08/life-is-not-a-conveyor-belt/

<comment><USER2> Not quite sure what the point is... wake up sheeple?

You might see me with my degrees, career, dog, child, wife and house and think I'm just another conveyor-belter, but hopefully one day you will realise that every person has a unique story to tell. Even the ones who might seem boring to you.

You don't have to make a grand gesture of differentness in your clothing, music taste, beliefs or lifestyle to actually be different. We are all different by our very nature.

In fact, proclaiming your differentness so loudly could be viewed as more oppressive than seeming to 'conform' to your perceived conveyor-belt.

Life without progress is stagnant. We each choose our own path. It just happens that there are some broad trends amongst the things humans value; like company and security. Marriage, kids, a stable career and a house go a long way towards satisfying those needs. And, without wishing to patronise, those needs do become more acutely felt as you get older.

<comment><USER3> Yes, if you go into detail, all people are different. But overall, most people aren't, at least not in a way that matters.

But I have to admit, those who make the difference aren't those who "proclaim their differentness".

<comment><USER4> _Yes, if you go into detail, all people are different. But overall, most people aren 't, at least not in a way that matters._

That reminded me of this:

"I have expressed my strong interest in the mass of the people; and this is founded, not on their usefulness to the community, so much as on what they are in themselves. Indeed every man, in every condition, is great. It is only our own diseased sight which makes him little. A man is great as a man, be he where or what he may. The grandeur of his nature turns to insignificance all outward distinctions."

\-- William Ellery Channing

</comment></comment></comment><comment><USER5> One of the strange things about being 40 is meeting people my own age who have college-age children. It's amazing how little I have in common with people who chose that life track.

They seem "old" to me, even though they're often several years younger than me. As though they've lived a lot more life than me, but not the "good" parts of life. I can't imagine how tough it must be to raise a family on an entry- level job, and simultaneously try to progress your way out of that entry- level-ness without the ability to ever roll the dice and not have to worry about feeding anybody else but yourself if things don't work out. Or the ability to put it all on hold and piss off to backpack around Southeast Asia for a year. You can see the shadow of that still on a lot of folks like that, even 20 years on.

It never occurred to me back then how good a decision it was not to get married and start a family right away. Now, raising kids with 20 years worth of leveling up behind me and the resources to do it "right", I think I'm going to have it a lot easier.

<comment><USER6> But, you know, you're priviledged here because you're a guy. For a woman it's not the best idea biologically to start having kids at 40.

<comment><USER7> For a man aged 40 it is also not the best idea. The risks for children with birth defects increases substantially with older men as well.

<comment><USER8> [Citation needed]

I was under the impression the drop off for men both progressed slower and was less severe than it was for women.

e.g. a 40 something woman has the same chance of having offspring with Downs Syndrome or other congenital defects as two cousins in their twenties inbreeding, while a 80 year old man with a 20 something woman is still less at risk than both of the aforementioned pairs.

<comment><USER7> As I was typing that comment I was thinking someone is going to ask me for source :-) I dont have a citation, just the class notes from my wifes medical undergraduate classes. Im sure if I did the effort, I could google a study or two for you. Of course it's not just the genetics, but also a woman's ability to carry full term. Younger bodies are better at that. Nevertheless, for someone preoccupied with living life to the fullest, waiting till your older to have children, and increasing the chance for a down syndrome baby is a bit counter productive.

<comment><USER5> _for someone preoccupied with living life to the fullest, waiting till your older to have children, and increasing the chance for a down syndrome baby is a bit counter productive_

In what way? Increasing the odds from 1:1000 to 10:1000 in exchange for 20 years of carefree living seems like a pretty good tradeoff to me.

<comment><USER9> How can you even know that it's a good trade off if you haven't had a Down syndrome baby?

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> Lots of things in life seem ordinary to the point of tediousness. Marriage, the birth of a child, recognition on the job etc. These things happen to most everyone at one point or another.

I'm here to tell you that these things can be quite extraordinary _when they happen to you_.

Even if everyone in the line rides the same coaster, the plunge is still a thrill.

<comment><USER11> Utterly extraordinary. Watching my daughter play in my friends' gardens made me want to move out of the town and into the suburbs, so she can have space for a paddling pool. I'll buy a bigger, duller car for her and her impending sibling, without thinking twice about it.

</comment></comment><comment><USER12> It's regret limitation. You can always buy things whenever, but if you want to see your kids grow up and not be too old to play then you NEED to have the kid in your 30's at the latest. Once you pass that point you can never go back.

You're not gonna live forever and you will change your opinions regularly throughout life. Using your time wisely, and investing in a solid future is the 'safe' regret minimising strategy.

</comment><comment><USER13> Every person I know, in their 20's, could have written the same post as OP... Myself included. Now they are all married with children... Myself included.

<comment><USER14> Really? As a person in my 20s, I have a reasonable number of friends who have plans of getting a house, spouse and children; many have had them since their teens.

Of course, nowadays those plans are less taken for granted, considering many can't even get jobs.

<comment><USER13> In my 20's, most of my friends and I were in one touring rock and roll band or another. A bunch of societal malcontents, dropping out of college and trying to do something else. Maybe that's not terribly common, but I really didn't know many people who pined for the family life... but biological urges are hard to fight... Not just the urge to procreate, but the urge to raise and nurture kids. The urge to nest and create stability. It's not for everyone, but it IS for most people. Not because of some societal constraint, but because of biological ones. Societal constructs just helps us to fulfill those desires more easily.

</comment></comment></comment><comment><USER15> _" I would love for all of those years of school to teach kids these lessons instead: Don't follow orders, don't blindly copy what others are doing, and always keep your wits about you."_

This, to me, is the essence of Education, or at least what it should be - equip future generations with the ability to think critically, to become more adaptable by developing themselves and their peers in the process.

In most of the countries I know of, School systems are self-fulfilling jokes. You have teachers sandwiched between layers upon layers of administration and the kids' parents. You have a lot of parents who've dumped all their educational responsibilities onto the schools. You have the administrations whose main purpose seems to be meeting stats. And after all that, you have the kids, awkwardly categorized by age, pushed through hoops with no clear purpose except to pass tests. This costs a tremendous amount of resources (not just talking about money here), and for what results?

We seem to live in an age where we think everything has to be, and is worth measuring. I believe the "Level up" system is a result of that, it makes it much easier to assess people's worth, whatever the hell that worth may be. Ironically (and sadly), the only way to get out of this is real Education, one that promotes curiosity and self-growth for the sake of it (and eventually for the greater good).

</comment><comment><USER16> I would've expected somewhat differently inclined comments from the hackernews community.

Instead, everybody is just saying the same thing expressed in different wording - safety.

His point is not to bypass the entire family, house aspect of your life. The point is to not move along life as if you have no choice but to move to the next "stage".

Progress is not moving up the stages - getting a house, getting a family, a dog, a kid. Those are just arbitrary checkpoints defined to make you feel like you're making something of your life. The american dream, eh? :)

Progress is to construct a life not defined by limits and boundaries. Living it to the fullest - travel, do great big, inspirational things.

If you choose to have kids when you're 20, you are almost by definition limiting your life only to be somebody who takes care of your kids and works a stable job with a stable family(a stable car, a stable dog, a stable bed to sleep in, a stable tv and a stable view of the world). In other words, inexperienced and short-sighted.

<comment><USER17> > If you choose to have kids when you're 20, you are almost by definition > limiting your life only to be somebody who takes care of your kids and works > a stable job with a stable family(a stable car, a stable dog, a stable bed > to sleep in, a stable tv and a stable view of the world). In other words, > inexperienced and short-sighted.

You're missing the point of children - some people experience intense joy from raising their children.

<comment><USER16> That may be true. A lot of people, however, choose to have kids only because they think kids will bring joy to their life, not the other way around, which makes for a terrible relationship dynamic.

In other words, a couple becomes bored of their stable life. They think - oh, maybe a kid will make our lives more exciting.

</comment></comment></comment><comment><USER18> I'm not sure how applicable the key stage point is here. Children generally have little to no exposure to the fact they are part of a key stage or how that affects them until they get to the GCSE/A Level stage where clearly it's impossible to not feel the exams looming. Key stages are more a strategy thing for DfE/Local Authorities.

</comment><comment><USER19> I think OP should take a look at Maslow's hierarchy of needs :

[https://en.wikipedia.org/wiki/Maslow%27s_hierarchy_of_needs](https://en.wikipedia.org/wiki/Maslow%27s_hierarchy_of_needs)

<comment> alex-warren I'm aware of the hierarchy - not sure how it adds to or detracts from my post though? Do you think we inevitably progress up the pyramid as we get older - because I don't think age or progression up a career ladder is particularly correlated with fulfilment of those needs.

<comment><USER2> I don't understand how you can not see a correlation.

The jobs 'higher up' the ladder are generally better paid, with better benefits and are more enjoyable.

If you're working 10 hour shifts with two kids and a tiny flat, you don't have much time or energy left to explore self-actualisation. You are living day-to- day, in a perpetual state of tiredness, stress and worry. The only way 'out' is to get a better job. Then you will feel pride, confidence, etc etc - <AUTHOR> of the things on the hierarchy.

I can't help but think that you have never experienced poverty. That naivety is the only way I can understand why you'd think that "progression up the career ladder" is not correlated with fulfilment of Maslow's needs (or more broadly, the basic ability to live your life the way you want. To live freely.)

<comment> alex-warren I can't spot the bit in my post where I said I knew what the answer to poverty was - but is the only option for people in poverty really to wait for a promotion?

For people who are not in poverty, which I presume includes most of us here idly browsing Hacker News, do we descend down that hierarchy of needs as soon as we step off the conveyor belt?

I think there are more paths to fulfilment than you realise.

<comment><USER2> You're grasping for an alternative reality where people don't need to work. But without a concrete suggestion it's just wishful thinking.

I think the fact that every large society on the planet ever has been based on this model is important.

> is the only option for people in poverty really to wait for a promotion

You're overstating my position. Don't wait for an opportunity; create one. But yes, pretty much. There is simply no responsible alternative. You can't run off into the wilderness and fend for yourself. You have to live inside the system we have created. It's really not that oppressive. You should try it.

> I think there are more paths to fulfilment than you realise.

I think the paths that you see as one are many.

edit:

> do we descend down that hierarchy of needs as soon as we step off the > conveyor belt?

No, we don't. Ah I see, so what you're advocating is retirement? I think we agree!

<comment> alex-warren Never said people don't need to work, but they should think about the kinds of work they want to do and the kind of life they want they lead, and creatively consider all the opportunities that are available to them. In fact that's pretty much all I'm saying, really.

<comment><USER2> I completely agree with that.

You do seem to be pushing hard against something though. It comes off as both arrogant and naive, and leads to misinterpretation.

For someone who's just saying "consider your options", it sure seems like you think you're saying a lot more than that.

What, exactly, is wrong with new kitchens?

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> Part of the problem with viewing life as a conveyor belt is that you build up expectations of what's ahead. I think that one of the OP's points was that you may be very disappointed (even feel a bit cheated) to learn that happiness is not inevitable, even if you follow all the required steps. So instead, don't just follow the steps. Question, think, break 'rules' if you have to. Make your own choices and don't just follow the prescribed path. You won't get a second chance.

</comment><comment><USER21> There are infinitely many different lifestyles you can live that still involve employment, houses, marriage and children.

</comment><comment><USER22> You can't escape the conveyor belt, whether you end up with children or you end up alone or something completely different.

You are always part of a much bigger group than you might think. If nothing else physics will take it's toll and you as you get older.</comment>


Show HN: Instagloss – Save time with variable summarization - <AUTHOR> http://www.instagloss.com/ <comment><USER2> Something like this (auto-summarize) for each HN link would be interesting. Right below the link or otherwise while hoovering on the link.

</comment><comment><USER3> Looks interesting.

Typo here: "100% Shortened to much, press Undo!"

<comment><AUTHOR> Good catch, fixing it right now.</comment></comment>


The Trouble with Psychological Darwinism (1998) - <AUTHOR> https://www.lrb.co.uk/v20/n02/jerry-fodor/the-trouble-with-psychological-darwinism <comment><AUTHOR> Fodor died recently and this is a good essay. I got the link from [https://www.newyorker.com/culture/postscript/jerry-fodors- en...](https://www.newyorker.com/culture/postscript/jerry-fodors-enduring- critique-of-neo-darwinism).

</comment><comment><USER2> _> So, what matters with regard to the question whether the mind is an adaptation is not how complex our behaviour is, but how much change you would have to make in an ape's brain to produce the cognitive structure of a human mind. And about this, exactly nothing is known _

Seems like begging the question to me, fam.

 _> you could get some by a miracle._

Well, at least that would be intellectually honest.</comment>


A Hodgepodge of Python - <AUTHOR> http://blog.adku.com/2011/09/hodgepodge-of-python.html

<comment><USER2> Didn't know the timeit module. However, the presented usage to time list reversing is ill: The timing is dominated by the list creation, which should go into setup. Then I'll get:

        $ python -mtimeit -s'l=range(1000)' 'l[::-1]'
        100000 loops, best of 3: 3.05 usec per loop
        $ python -mtimeit -s'l=range(1000)' 'l.reverse()'
        1000000 loops, best of 3: 0.535 usec per loop
        $ python -mtimeit -s'l=range(1000)' 'a=reversed(l)'
        1000000 loops, best of 3: 0.39 usec per loop

So, instead of reversing the list in place, creating a new, reversed list seems to be faster.

<comment><USER3>
      >>> reversed([])
      <listreverseiterator object at 0xb73ff7cc>

reversed() does not create a new list, it just returns a reverse-order view of the same list. Of course, often this is exactly what is needed.

<comment><USER4> And more often than not `xrange` is what one needs, not `range`. (Not relevant with Py3k though, but everyone is still in 2.x-verse.)

<comment><USER2>
        >>> xrange(13)[::-1]
        Traceback (most recent call last):
          File "<stdin>", line 1, in <module>
        TypeError: sequence index must be integer, not 'slice'

<comment><USER4>
      >>> list(range(13)[::-1]) == list(xrange(12, -1, -1))
      True

</comment></comment></comment></comment></comment><comment><USER5> I always love learning little tidbits about Python like these. Thanks!

Another I found quite useful: instead of collections.defaultdict, you can use the dict's get() method to set a default value if the key doesn't exist. get() takes the key and a default value, and if the key doesn't exist it creates one with the default value provided.

      a = {}
      a['foo'] = a.get('foo',0) + 1
      # a = {'foo':1}
      a['foo'] = a.get('foo',0) + 1
      # a = {'foo':2}

It can be very useful for incrementing keys in a dict, even if they did not exist previously.

<comment><USER6> You can use the Counter class from the collections module[1] for that as well.

      >>> from collections import Counter
      >>> c = Counter()
      >>> c['foo']
      0
      >>> c['bar'] +=1
      >>> c['bar']
      1
      >>>

[1] [http://docs.python.org/dev/library/collections.html#collecti...](http://docs.python.org/dev/library/collections.html#collections.Counter)

</comment></comment><comment><USER7> I use defaultdict a lot. It's useful not only for counters, but also for sets, lists, dicts, and even other defaultdicts. It usually results in very succinct code compared to alternatives:

      occurrences = defaultdict(int)
      digraphs = defaultdict(lambda: defaultdict(int))

      prev_ch = None
      for ch in long_text:
        occurrences[ch] += 1
        if prev_ch is not None:
          digraphs[prev_ch][ch] += 1
        prev_ch = ch

      print "Occurrences:"
      for ch, count in sorted(occurrences.iteritems()):
        print "  %s: %i" % (ch, count)

      print "Digraph occurences:"
      for ch1, counts in sorted(digraphs):
        for ch2, count in sorted(counts):
          print "  %s%s: %i" % (ch1, ch2, count)

(I'm aware that digraphs could be done as a single flat dict; it's just a trivial example to show defaultdict nesting.)

</comment><comment><USER8> I'm still on the fence as to whether this is _acceptably ugly_ or _unacceptably ugly_ , but it does make use of a python feature:

      >>>
      >>> class PrefixStr:
      ...   def __init__(self, prefix):
      ...     self.prefix = prefix
      ...   def __getattr__(self, s):
      ...     return self.prefix+s
      ...
      >>>
      >>> q = PrefixStr('xyz_')
      >>>
      >>> { q.height:11, q.width:7, q.depth:3 }
      {'xyz_width': 7, 'xyz_depth': 3, 'xyz_height': 11}
      >>>

<comment><USER9> The main question is whether it increases the clarity and flexibility of the code. I can't think of any contexts where it would, but I wouldn't rule it out.

</comment></comment><comment><USER10> The more I use Python the more I like it. It allows a lot of the early refactorings needed for a proof of concept prototype. Playing with it feels like playing with a well lubrificated rubix cube, it rotates well in all directions, allowing quick changes in the code's structure. I can't tell exactly why but I think the use of "self" in object methods, while a bit weird in the begining, is one of the best part. Eg morphing a helper function into a method is just a matter of one search and replace.

</comment><comment><USER11> This is the stuff that brings me back to hacker news everyday. So helpful.

</comment><comment><USER12> _izip_ is the super useful generator counterpart of _zip_

Also, 2.7 introduced a couple of cool things in collections: _OrderedDict_ and _Counter_

</comment><comment><USER13> > _In my mind, dynamic typing = bugs, interpreted language = slow. Ahhhhh!_

He explained why he changed his mind on performance, but not whether or not "dynamic typing = bugs". This would've been interesting to read about from a recent convert.

</comment><comment><USER14> Thanks for posting these tips!</comment>


New Compute-Optimized EC2 Instances - <AUTHOR> http://aws.amazon.com/blogs/aws/new-c4-instances/

<comment><USER2> Interesting they got a custom processor revision for them that isn't on Intel's ARK: Xeon E5-2666 v3

I wonder what volumes Amazon buys in order to get Intel to make a custom part number for them. Do they design their own servers?

<comment><USER3> Yes. [https://twitter.com/bernardgolden/status/532700076494184448](https://twitter.com/bernardgolden/status/532700076494184448) has a picture of slide from re:Invent where we talk about custom servers and storage. The whole slide deck should be online in a few days.

</comment></comment><comment><USER4> It's interesting that Amazon is putting almost no RAM in their servers. I find that 16GB/core maximizes GB/$ but they're using 4GB/core.

<comment><USER5> These are _compute_ -optimized. They have others with more memory if that's your requirement.

Their current memory-optimized models go up to 244GB.

</comment></comment><comment><USER6> I'd really like to see a more a-la-carte option. For example: I have an app that might in the future require a _lot_ of network, a decent but not terribly huge amount of CPU, but very little memory or storage. I'd like to be able to provision an instance with, say, 512MB RAM, 2GB disk, 10 gigabit Ethernet, and CPU optimized for single-threaded performance with only 2-4 cores. Amazon and most other large cloud providers seem to assume that demand for everything increases together, which doesn't apply to every work load.

<comment><USER7> That's where I think containers come in handy. Assuming you have other services you are managing you can pack them into instances running your main workload. [https://aws.amazon.com/blogs/aws/cloud-container- management/](https://aws.amazon.com/blogs/aws/cloud-container-management/) will likely make that very easy to manage, assuming you are willing to go all in with Amazon.

</comment></comment><comment><USER8> 60gb of ram...</comment>


Amazing video showing what it is like to run solo as a blind person - <AUTHOR> http://www.youtube.com/watch?v=me4lOQCa0Uw

<comment><USER2> The most amazing thing about this for me was that YouTube reports that there were only 152 views when I watched it, and zero comments. And the link has 7 points on HN, Yet this link made it to the front page of HN (currently the 8th highest link).

I guess I thought it would have to be clicked on a few more times, to get up to number 8!

There must be some high-karma people who voted this up.

Anybody know what the HN algorithm is, to get this onto the front page?

<comment><USER3> I don't think the algorithm currently gives extra weight to high-karma users (there are however penalties for voting rings, flags, etc.). To hit the frontpage, you just need a certain number of votes in a short time.

I also wouldn't count on the YouTube views instantly reflecting all activity.

</comment></comment><comment><USER4> I don't usually get motion-sickness but this was unwatchable. The verbal commentary was quite interesting though.</comment>


Bathroom Scale Game Controller - <AUTHOR> http://hackaday.com/2013/11/19/posterior-posture-videogame-controller/

<comment><USER2> Apart from connecting to an XBox, how does this differ from a Wii Balance Board?</comment>


Show HN: SocialPlanner – Find, plan and post content, all in one place - <AUTHOR> https://socialplanner.io <comment><USER2> Was excited to see a tool to help me and my friends plan events - you know like actual go outside social things. But I was wrong.

<comment><USER3> Yeah, disappointing. I know a number of people who "can't" quit Facebook because that's where they plan everything. Something like this could potentially put a dent in FB usage.

Well, not something like the posted link. Something like what some of us _thought_ the posted link _was_.

<comment><AUTHOR> Hey... you could spend more time outside if you automated your content and social media posts with our clever tool :D

</comment></comment></comment><comment><USER4> Why not use any of the other social schedulers? What exactly sets this one apart? Is it the customized view for each platform?

<comment><AUTHOR> Apart from the scheduling feature, we provide content discovery tools to help users find relevant, shareable, viral content that their audience would love to engage with.

<comment><USER5> So it's like quuu.co, but it won't let me automate the sharing?

Are you planning that feature?

<comment><USER6> You can't beat hand-picked content that's for sure.

<comment><USER7> Yep!! You need to be able to rely on what you're sharing if you're going to have any part of your social marketing strategy automated!</comment></comment></comment></comment></comment>


Groq, a Stealthy Startup Founded by Google's TPU Team, Is Raising $60M - <AUTHOR> https://news.crunchbase.com/news/groq-a-stealthy-startup-founded-by-googles-tpu-team-is-raising-60m/ <comment><USER2> Hardware is hard. For Gorq to be successful -

\- The boards using their chips need to fit into commodity interfaces (PCIE? DIMM? ) in Open Compute hardware

\- Someone needs to buy hundreds of thousands of these to even minutely impact their bottom line

\- Multiple such big volume wins need to consistently happen.

\- Their IP needs to actually be defensible. Otherwise, an Intel/Samsung whose manufacturing prowess & channel reach is multiple times that of Gorq will undercut the pricing with _almost_ the same performance/watt. Oh, and they'll happily play nice with Open Compute, other standards bodies.

\- Most of all, their product needs to work as advertised, at scale, in a reliable fashion. This is easier said than done in semiconductors, especially for the kind of performance gains they're marketing.

 _If_ they'd gotten here with ~$30M capital, and demonstrated traction in the marketplace, I'd give them a chance, but expecting Google's pay while working at an independent chip startup, with $0 in revenues portends financial doom. It's not the founder's fault though - hardware is capital intensive, not compatible with agile development & an MVP just won't cut it - it needs to be fully functional & reliable right out of the bat. I sincerely hope I'm wrong, as I'd like to see the silicon put back in silicon valley - having been in the semiconductor industry for 20 years, it just seems unlikely.

<comment><USER3> > The boards using their chips need to fit into commodity interfaces (PCIE? > DIMM? ) in Open Compute hardware

I mean, it's not exactly like pcie interfaces are ultra hard, must be done in house, cutting edge technology anymore. And why the huge emphasis on OCP? Nothing there necessitates any kind of extreme innovation.

> Their IP needs to actually be defensible. Otherwise, an Intel/Samsung whose > manufacturing prowess & channel reach is multiple times that of Gorq will > undercut the pricing with almost the same performance/watt. Oh, and they'll > happily play nice with Open Compute, other standards bodies.

This has been true historically, but TSMC currently can out manufacture both intel and Samsung wrt 7nm. In addition, the steamroller of Moore's law no longer really holds with dennard scaling dead and wire/MOL rc and variation soaking up performance gains.

Btw, most of these criticisms could have been levied against nvidia way back when.

<comment><USER2> Not a criticism, merely truths about the industry.

Also, from Nvidia's founding to now, things have radically changed. It's depressing how winner-take-all semi has become. Nvidia could tape-out at $300k, today it's $2M. Number of semi players has reduced drastically even within the last 5 years

</comment></comment></comment><comment><USER4> Delivering an incremental speed boost vs nvidia chips seems like a tough way to win. Even if they can be 2x faster, people will still stick to cuda. They either have to be 5-10x faster or find a new market. Definitely possible. Would be pretty embarrassing for nvidia if that happened.

<comment><USER5> Nope. People aren't addicted to CUDA. In fact its hell to work with CUDA. Just to even download the binaries you have to go through registration process, docs are shit and version dependency is nightmare. The only reason CUDA is in use is because in old days it was the only game in town and Caffee framework integrated it from some very early code researchers wrote. Then people kept using that baseline code all the way to TF and PyTorch. Thanks to TPU, frameworks are already being to forced to be agnostic and new alternatives will be much easier to integrate.

If Groq chip delivers what its promising then you can bet that it would be integrated within few months in most frameworks and people will soon forget about CUDA. Most people who work with deep learning neither write code specific to cuda nor do they care that cuda is being used under the hood as long as things are being massively parallelized.

<comment><USER6> > If Groq chip delivers what its promising then you can bet that it would be > integrated within few months in most frameworks and people will soon forget > about CUDA.

Groq seems careful not to promise any price point. Even if Groq delivers every promise, if it's expensive its adoption will be chancy.

</comment></comment></comment><comment><USER5> The numbers on their website is quite stunning if they are true:

\- 16X more power efficient than TitanX

\- 3X more ops than TitanX

\- 25K images/sec vs 5K images/sec inference on nVidia

I'm completely bewildered why NVidia hasn't came up with deep learning specific chips yet that doesn't have crud of massive rendering pipeline.

[https://blog.groq.com/2017/11/09/69/](https://blog.groq.com/2017/11/09/69/)

<comment><USER6> NVIDIA already created such a chip: [http://nvdla.org/](http://nvdla.org/)

</comment></comment><comment><USER7> If it's FP32 or FP16/32, it's interesting. If it's INT8/32 it's incrementally better than a 2080TI GPU, and if it's INT4/32, it's stillborn.

<comment><USER8> It depends. If the chips are for training, I agree with you. If they're for inference, I think the jury's still out.

<comment><USER6> It's an inference chip.

</comment></comment></comment><comment><USER9> I'm kind of curious how many electrical engineers and talent that can design ASICs are out there? Most electrical engineers that I have met that designed ASICs at one point or another were for mainly military use or in the Semi industry. But the team that designed the chips were always super small compared to the mechanical or electrical team.

<comment><USER3> If you mean full custom, very few, and most are in i/o.

If you mean synthesis, a lot.

<comment><USER9> Yeah it seems like full custom ASICs kind of died off a little when affordable robust MCUs came out. Kind of nice to see it picking up again!

</comment></comment></comment><comment><USER10> founded by _former members_ (albeit founding members) of Google's TPU team.

i wonder how they negotiated this from a legal standpoint. every employment contract i've ever signed certainly would not allow for starting a project this similar to my employer's core business.

<comment><USER11> You can't - in California anyhow - really stop employees from quitting and then competing with you. Most non compete forms have been made unlawful, which is a really good thing for competitiveness.

In any case, I don't see any confirmation that this startup is pursuing something that would be competitive with Google. The whole stealth thing leaves us with little to go on.

<comment><USER12> But companies can (and Google does) prevent _current_ employees from working on side projects—even on their own time and equipment. So I suppose the relevant question is: did these guys leave and then start with a completely blank slate? Presumably yes! Any IP ownership ambiguity that would arise from moonlighting would have been flushed out during funding due diligence.

<comment><USER13> Is this true? Moonlighting is legal in CA [1].

[1]: [https://danashultz.com/2016/05/31/moonlighting-employees- pro...](https://danashultz.com/2016/05/31/moonlighting-employees-protected- california-labor-code/)

<comment><USER14> Depending on the IP assignment clause in one's employment agreement, even if you are allowed to moonlight on your startup your employer may own the IP. I just checked mine and if I make any inventions related to my employer's business, then per the terms, I automatically grant the company the right to that invention.

I've heard rumors that one can negotiate these clauses. But this is what I expect would be relevant for these engineers.

<comment><USER11> They can try to enforce that, but my understanding is that your brain is generally yours outside of working hours, and stuff you dream up is also yours.

But, obviously it's easier to quit and then do your inventing.

<comment><USER12> It seems less risky to just not moonlight, especially if that moonlighting has the potential to turn into a high-$$$ business. Day zero IP litigation is last thing you need to be involved with when you're trying to bootstrap a technology startup. Even if you know with 100% certainly you would win, you'd be bled dry fighting BigCompany's hundreds of lawyers.

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> This looks interesting. Whilst I agree with other commenters that it's hard to compete in hardware I think there's a good niche for this product. Google isn't going to start selling TPUs so something off-the-shelf for machine learning might make some real traction. Best case, lot's of sales to cloud providers (amazon, microsoft etc.) and lots of custom houses. Worst case would be acquisition by MS or Amazon.

Having said that, it's certainly true that Nvidia are tough to beat. But right now we're in a bubble, VC will throw millions at companies and big corporations will throw billions at acquisitions. So I think it's probably a very profitably move in general.

<comment><USER16> Disclosure: I work on Google Cloud.

Local inference can be important and even a requirement, so at NEXT we announced our intent to start shipping our Edge TPUs: [https://cloud.google.com/edge-tpu/](https://cloud.google.com/edge-tpu/)

<comment><USER17> I'm still waiting patiently for those to arrive so I can order a couple

</comment></comment></comment><comment><USER18> This is troubling:

[https://seekingalpha.com/article/4206948-nvidias- inference-p...](https://seekingalpha.com/article/4206948-nvidias-inference- problem-alarming-sell-side-ai-iq)

</comment><comment><USER19> I believe they got so much funding because they are coming from Google, not for the product itself. They could have sold even crap hardware.

</comment><comment><USER20> Is this competitive to NVIDIA's chips? How worried should they be?

<comment><USER2> not the least bit worried. It'snot about performance, it's reliability. When you're a big cloud provider, only a miracle can get you to use a chip from a no-name company that no one else has dog food-ed. Then there's the actual number being marketed, there's been no independent verification. Right now, this is a fancy P.R hit piece

<comment><USER5> No, NVidia should be very worried. There is a huge uproar in the community with some of the practices NVidia has forced like you must use 3X expensive version of same GPUs in data center. Even consumer GPUs are in short supply. Most of the people are not using massive complex rendering pipelines that these GPUs have but they are paying in terms of price and wattage. There is a huge demand for consumer version of TPU like chips and the market is going to eat up any similarly performing alternatives. Lot of gain in NVidia's revenue comes from blockchain and deep learning segment. Much of these gain is at risk by chips like TPU or Groq. It is quite surprising that NVidia hasn't announced any competing product and I hope they don't get sleeping at the wheel while this big wave is about to hit the market.

<comment><USER21> > Most of the people are not using massive complex rendering pipelines that > these GPUs have but they are paying in terms of price and wattage.

This is not how compute on GPUs works now, or since G80 was released in 2006. The "massive complex rendering pipeline" doesn't even light up.

</comment></comment></comment></comment><comment><USER22> Are they planning to create cryptocurrency miners?

</comment><comment><USER23> Are they hiring?

<comment><USER24> Author of the article here. Yes, they are apparently hiring, or so suggests some of my internet research. One of the founders' linkedin profiles said they're mostly building in Haskell.

<comment><USER23> Thanks. They must be using www.clash-lang.org/

<comment><USER6> It's probably Bluespec instead.

</comment></comment></comment></comment><comment><USER25> > a company with a very spartan website

What does the word "spartan" mean in this context? "Serious?" "Utilitarian?" I do not know this usage of the word.

Edit (from Webster):

> 2 b _often not capitalized_ : marked by simplicity, frugality, or avoidance > of luxury and comfort. "A spartan room"

<comment><USER24> Author of the article here. If you look at the company's website, it is very, very plain.

<comment><USER25> Yeah, I like it! I just have never seen that word used in that context.

<comment><USER26> Are you a native speaker of English?

<comment><USER25> English and Mandarin, learned in parallel.

</comment></comment></comment></comment></comment><comment><USER27> Definetly seems interesting.</comment>


Robocaller spoofed real numbers to avoid angry call-backs to his own phone - <AUTHOR> https://arstechnica.com/tech-policy/2018/09/robocaller-spoofed-real-numbers-to-avoid-angry-call-backs-to-his-own-phone/ <comment><USER2> good.

I am overwhelmed with these. I just installed Hiya on iOS (11). It's not good enough because I can't put in a wildcard to block entire ranges.

Also you can't block VM and Verizon won't turn it off, so I'll have to fill my mailbox to capacity.

Still, it's not enough yet to push me to Google Voice.</comment>


Warn HN: stacks made executable on GNU by mere presence of assembly code - <AUTHOR> If you're developing some native executables (C, C++, whatever) on a GNU/Linux platform and possibly GNU/WhateverElse, and some of your object files are custom assembly language produced by hand (or not by a compiler whose developers are aware of this), and not inline assembly but in their own .S or .s file assembled to a separate .o, watch out!
If you do not have this blurb:

  .section .note.GNU-stack,"",@progbits
 in your assembly code, and do not use a linker option to prevent it, your entire executable or shared library will be silently marked as requiring an executable stack (in all threads).
When such an executable is loaded, the stack is made executable. So are any new thread stacks after that.
If such a shared library is loaded into an application (even late, with dlopen, I think), a hook is called out of the linker into glibc, which will call mprotect() on all of the existing thread stacks to allow execution.
Oops!
(This is, of course, a monumentally stupid programmer trap. Write correct, good assembly code without a secret GNU handshake: unknowingly inflict added security risk on your users.) <comment><USER2> The title is slightly misleading. Inline assembly code in asm statements has no effect on the stack.

If you have your own .S files, and those do not contain the magic handshake, then the stack will stay executable, and this is indeed a programmer trap.

The reason for this is that historically the stack was always executable, so it could not be make non-executable by default, it had to be opt in. In fact, gcc will generate code that requires the stack to be executable if you use a certain gcc extension (related to nested functions).

The other way to opt-in into non-executable stack is passing --noexecstack to as(1) (or when via gcc, use -Wa,--noexecstack)

This ought to be better documented, but it's not. The rationaly is probably that you should not be writing assembly code if you don't know this kind of detail? I can only guess about this.

<comment><USER3> I just checked and it's mentioned in the elf and ld manpages. It should probably be called out more, but there is at least some documentation for it.

from man elf:

.note.GNU-stack This section is used in Linux object files for declaring stack attributes. This section is of type SHT_PROGBITS. The only attribute used is SHF_EXECINSTR. This indicates to the GNU linker that the object file requires an executable stack.

<comment><AUTHOR> The text you quoted doesn't inform anyone that if you don't have that section at all, an executable stack is _also_ required. I can't find any such explanation in the elf man page.

Nobody is going to read "man elf" or "man ld", if they already know how to write assembly code and link it to their C, and whatever they know appears to be working fine.

<comment><USER4> People who know how to write assembly code and link it into their C programs are probably one of the most likely folks to read man elf and man ld, but I definitely agree the documentation should be better. Submit a patch?

</comment></comment></comment></comment><comment><USER5> I've seen toolchains emit a warning for programs that require an executable stack; however, I can't seem to track down what toolchains and warning options produce that. In any case, I've filed [https://sourceware.org/bugzilla/show_bug.cgi?id=20025](https://sourceware.org/bugzilla/show_bug.cgi?id=20025) to get such a warning enabled by default.

While I don't think it's possible at this point to default to marking the stack non-executable without explicit information, it seems perfectly reasonable to emit a warning about that by default. That would cause far more developers to notice.

<comment><USER6> People ignore warnings.

The build should just fail if the result would have an executable stack, unless the final linking step includes an option to explicitly demand an executable stack.

The error message should mention how to get rid of the code that causes the stack to be executable. No mention should be made of how to continue on with an executable stack; people can read the man page if they really really want to have that.

<comment><AUTHOR> Also, dlopen should fail on an object that requires an executable stack, unless some RTLD_WHATEVER flag is passed to allow it. There should also be some finer granularity than opening execute access in every single thread's stack.

</comment></comment></comment><comment><USER7> As discussed earlier today, but without the obvious conclusion called out: [https://news.ycombinator.com/item?id=11601725](https://news.ycombinator.com/item?id=11601725)

I'm surprised the stack is still left executable. They should have taken the 64-bit transition as an opportunity to change the defaults.

<comment><AUTHOR> > _earlier today_

That's not earlier. It is a semantic, if not literal, dupe inspired by my submission (look at the item numbers).

My own submission was prompted by actually running into this, rather than reading about it on HN.

<comment><USER7> The discussion is older, so I stand by the wording. The post is dated earlier as well... a mystery. Perhaps this is some artefact of the ever-fickle HN voting process.

</comment></comment></comment><comment><USER8> > marked as requiring an executable stack (in all threads)

Not a C/C++ developer here. What's the significance of this? Would it make buffer overflows easier to exploit?

<comment><USER9> Yes - a common way to exploit a stack overflow is to basically "write code" in the stack and then execute it. If the stack isn't executable, you can't execute the "code you wrote" in the stack.

</comment></comment><comment><USER10> > and do not use a linker option to prevent it

What's the linker option?

<comment><USER3> -z noexecstack

</comment></comment><comment><USER11> I think SafeSEH on Windows has a similar pitfall, though in this case it is a /SAFESEH switch in ML.

<comment><USER12> Only on x86 though.

</comment></comment><comment><USER13> Many distros build with CFLAGS that include -fstack-protector-strong. Is that enough?

</comment><comment><USER14> are there any potential cons to switching the linker to default to adding stack protection? I'm trying to think of any legitimate use cases for an executable stack, and can't think of any. It should definitely be better documented, but I'm wondering if we could just change the default behavior and have done with it.

<comment><AUTHOR> It does seem as if these mechanisms were put in place in a transitional time when non-executable stacks weren't completely "taken to heart", and it didn't seem like a big deal to default to what had until that time been the normal behavior of executable stacks, since the dawn of computing.</comment></comment>


Today I made another ultimatum - <AUTHOR> http://blog.beneills.com/ultimata/ <comment><USER2> Don't over-focus on productivity. Focus on your health and happiness first and foremost, productivity is overrated. Sure it's nice to crank out a bit more than you would otherwise but I've yet to see a deadline that I couldn't extend for the time it took to cook a proper meal or to see an old friend. No need to make ultimatums.</comment>


Apple hits back at EU over 'wasteful' universal charger proposal - <AUTHOR> https://www.cityam.com/apple-hits-back-at-eu-over-wasteful-universal-charger-proposal/ <comment><USER2> They also should make companies produce longer lasting products to reduce further waste.

</comment><comment><AUTHOR> _consumer harm from a regulatory-mandated move to a universal charger would cost at least €1.5bn, outweighing the €13m in associated environmental benefits_ said a study commissioned by Apple.

</comment><comment><USER3> Phase it in slowly, make it a joint standard, that is a minimum requirement for compatibility. Have a planned upgrade path, and mandate backwards compatibility for 2 generations.</comment>


The Kindest Way to Kill a Lobster - <AUTHOR> http://www.bbc.com/news/world-europe-42647341 <comment><USER2> _" So then here is a question that's all but unavoidable at the World's Largest Lobster Cooker, and may arise in kitchens all across the U.S.: Is it all right to boil a creature alive just for our gustatory pleasure? A related set of concerns: Is the previous question irksomely PC or sentimental? What does "all right" even mean in this context?"_

[http://www.columbia.edu/~col8/lobsterarticle.pdf](http://www.columbia.edu/~col8/lobsterarticle.pdf)

<comment><USER3> Came here to post this article. David Foster Wallace's journalism/essays/non- fiction are some of his best writings IMO. _Consider the Lobster_ is a prime example. He turns a a request to cover a famous lobster food festival into a piece simultaneously exploring the biology of lobsters and our relationship with food both culturally and philosophically. In particular, the ethics of preparing lobster by boiling alive. It provides a great discussion about the question OP is trying to answer.

</comment></comment><comment><USER4> To kill crab my dad uses something like this. [https://www.homedepot.com/p/Dewit-Junior-Spade-T- Handle-31-3...](https://www.homedepot.com/p/Dewit-Junior-Spade-T- Handle-31-3173/302000113)

He flips them over and cuts them right down the middle hitting both nerve receptors almost immediately. I find it to be fairly humane, and boiling live crab never sat right with us. I doubt this method will be changed in favor of poking them to death nor do I really think poking them is much (if any) more humane.

I imagine this could be used on lobster too but we don't catch lobster, so I don't know.

<comment><USER2> The verb for this procedure is "pith": [https://en.wikipedia.org/wiki/Pithing](https://en.wikipedia.org/wiki/Pithing)

Works with lobsters just fine, and seems like the way to go.

</comment></comment><comment><USER5> Lobsters are long-lived, advanced crustaceans and I welcome treating them as well as possible under the circumstances. But just from the experiment as recounted in the post (crabs leave a burrow to avoid electric shocks) I don't think it's necessarily clear what sort of sensations they are exposed to due to _the boiling_. I once heard a well-known ethologist (and animal welfare advocate) argue that since the crustaceans have not evolved with fire and other extreme temperatures as a common hazard, they don't have the same sort of sensory responses to it as terrestrial animals. They leave areas with temperatures which are harmfully high for them, but the experience for them may be more akin to us seeking shade on a too hot day than us being scalded. So cooking _may_ actually be a comparatively humane way of killing them. If better data about the crustacean minds contradicts that, his assessment needs to be updated, of course, but just from what we see from the BBC I'm not convinced that is the case.

</comment><comment><USER6> I mean, the intent is nice, but writing unenforceable laws is rarely a great idea. I dunno if the law is specific to commercial kitches or not, but it should be - probably even then only the food processing plants that they mention. It's pointless to legislate this sort of thing at the individual level that you can never ever reasonably enforce.

</comment><comment><USER7> The premise here is that lobsters feel pain, and the article doesn't really jump through many hoops to prove that. A creature moving away from something that might kill it (as with the crabs and shock) isn't really evidence for pain.

If we don't know for sure whether crustaceons feel pain, how can we know if different methods of killing them are reducing the pain? The article suggests "stunning the crustacean by chilling it..in an ice slurry". How do we know that this is not unbearable pain and agony for them?

If lobsters do feel pain, throwing them into a pot of boiling water probably activates the pain. But offering alternatives that cause "less" pain when we don't even know if/how much pain is caused by any method could be making the situation even worse.

<comment> gm-conspiracy Do lobsters have a distributed nervous system?

<comment><USER7> Yup. From the article:

> ... This is because crustaceans have decentralised nervous systems, meaning > that unlike fish, they can't be rendered unconscious with a single blow to > the head.

</comment></comment></comment><comment><USER8> Clove oil works well, according to Dave Arnold: [http://www.cookingissues.com/index.html%3Fp=5731.html](http://www.cookingissues.com/index.html%3Fp=5731.html)

</comment><comment><USER9> I don't understand, is chilling it then cutting it in half really less distressing than boiling them. Don't they die quicker and suffer less if they go directly into a boiling pot?

</comment><comment><USER10> Humanely killed cows taste better than ones saturated with stress hormones. Finding a similar effect in lobsters may do more than trying to convince people to do the right thing.

</comment><comment><USER11> The best I can come up with: nuke it. That way, there will be no time for pain signals to travel along its nerves and reach its brain; the nerves will be gone long before.

<comment><USER12> Microwaves don't kill that fast. The water molecules in the lobster will heat up and cook it from the inside out until essential proteins are denatured and the cell stops functioning. Certainly not a quick death, however.

</comment></comment><comment><USER13> Serious question, how to drown a lobster?

<comment><USER14> Bubble argon through the water for 1-2 hours, removing all the dissolved oxygen.

<comment><USER15> Where does the oxygen go? Argon is inert right? So it's not binding with it or anything like that?

<comment><USER16> Another gas bubbling through the water "knocks" the dissolved gasses out of the water. So the oxygen bubbles up out of the water, along with the argon.

</comment></comment></comment></comment><comment><USER17> What if lobsters do not have the capacity for emotion? What if it felt about being boiled alive exactly how a potato might? What if a lobster never suffered?

</comment><comment><USER18> Lobsters can live a very long time if not killed. _Very_ long.

<comment><USER12> In fact, there was an article earlier this year about 132-year-old lobster being released

[https://nypost.com/2017/06/16/giant-132-year-old-lobster- rel...](https://nypost.com/2017/06/16/giant-132-year-old-lobster-released- after-20-years-in-captivity/)

</comment></comment><comment><USER19> Just rest assured that whatever you do to a lobster, nature has done far, far worse to uncountable trillions of creatures over a few billion years.

<comment><USER20> Nature isn't intelligent/sentient as far as we know. Intelligence comes with responsibility.

To complete your argument:

Many animals eat their children (hamsters for example.)

"Rest assured, if you eat your children, nature has done far worse"

<comment><USER21> Why does intelligence come with responsibility?

<comment><USER20> Because it allows one to even consider and understand consequences. Therefore one becomes "responsible" for the vices they commit-- as hard as they try to deny and forget their actions. In fact, some people turn themselves in to the police, or commit suicide as a result of things they've done and feel guilty about.

<comment><USER22> But one could argue that there don't seem to be any difference in consequences for anyone involved, regardless of whether or not the lobster feels pain. It ends up dead and eaten, regardless.

Worrying about whether your food feels pain when you kill it is nothing more than human imagination and projection. The only lasting consequence is that you may or may not feel guilty about having caused pain to something that you have killed.

<comment><USER20> People live and die too. What happens between the two points in time is the subject of a great many stories. Just because something will die does not make it a worthless endeavor to treat it nicely. This nihilism is a cop out-- everything will die, all planets lost, all protons decayed. If your ultimate response to that is to live by no code, no ethics, because all marks will be lost..then be my guest. But be aware the majority of folk will find you to be in great disdain. And if the laws of probability are of any bearing, you may find yourself as the bound victim-- you played a side as if it was no consequence, even advertised openly for it-- and now your team has the knife in your back. But don't despair, you were going to die anyway! The immense pain you are about to endure is of no consequence. Just remember the lobster :-)

<comment><USER22> Perhaps... Or perhaps I choose to not kill and eat animals at all?

</comment></comment></comment></comment></comment></comment></comment><comment><USER23> Takes a great deal of mental gymnastics to try and convince yourself there's some "kind" way to take a sentient creature's life. The "kindest" thing to do would just be to leave them alone.

<comment><USER24> Now you are simply moving goalposts and repivoting the talking point.

It doesnt take any mental gymnastics to think of a solution when you are set on having butter soaked lobster meat for dinner.

<comment><USER25> But it does take deep entrenched conditioned cognitive dissonance to believe that a lobster is food when there is a multitude of other more peaceful choices available.

<comment><USER19> I'd argue otherwise. You'd have to ignore literally the entirety of the natural world to even begin to think that lobsters are _not_ food.

<comment><USER26> Humans were a tasty meal for predators for most of our history. I guess that makes us food too?

<comment><USER27> Yes, exactly. And all evidence suggests that lobsters, to the debatable extent that they're capable of emotions, would be more than happy to eat us were they large enough to do so.

<comment><USER28> Which justifies precisely nothing. Morality is about what _you_ choose to do.</comment></comment></comment></comment></comment></comment></comment>


Web Assembly Working Group Charter Approved - <AUTHOR> https://lists.w3.org/Archives/Public/public-webassembly/2017Aug/0001.html <comment><USER2> How is it different from "Web Assembly" (aka "wasm") that has already started to gain support in major browsers[1]?

Edit: Found the answer myself. This is part of the same effort, as mentioned in the official website of Web Assembly[2].

[1] [http://caniuse.com/#feat=wasm](http://caniuse.com/#feat=wasm)

[2] [http://webassembly.org/roadmap/](http://webassembly.org/roadmap/)

<comment><USER3> What are the changes compared to current Implmentation. Is DOM access on radar?

<comment><USER2> I haven't found anything specific about future changes. I just found out that this is part of the same effort.

<comment><USER4> Here's a recent meeting about future changes: [https://news.ycombinator.com/item?id=14873594](https://news.ycombinator.com/item?id=14873594)

</comment></comment></comment></comment><comment><USER5> I'm slightly disappointed by the target end date : 31 July 2019. WebAssembly seems like a huge deal to me and I was hoping things would progress quicker than that :(

<comment><USER6> Let's not mess it up just because we want it quickly, if we (they) do this correctly, it might be the final big progression, but if we do it too quickly, it might turn into the next JavaScript (problem-wise).

<comment><USER7> This. They want to get it right, and iron out any kinks NOW so we aren't worried about "breaking compatibility" 20 years down the road.

</comment></comment></comment><comment><USER8> I hope they at least have unaligned atomics in this version. I feel that is a major omission from the current plans, since it makes algorithms difficult/impossible that use 64 bit atomics to change two 32 bit atomic numbers next to each other in an interlocked fashion.

<comment><USER9> Other than x86, do many processors permit either of those things--1) unaligned atomic operations, or 2) type-punning where memory ordering is guaranteed for a 32-bit read of a 64-bit atomic write.

<comment><USER8> 64 bit ARM and POWER both do as far as I know. They definitely all support aligned 128 bit atomics.

<comment><USER9> An aligned word won't span a cache line. So any aligned 64-bit or 128-bit word is always wholly within a single cache line.

But two 32-bit words can span a cache line if the first isn't 64-bit aligned. So what you're doing relies on hardware supporting atomic operations not only on unaligned words, but on words spanning cache lines. Are you really sure ARM and POWER support that?

<comment><USER8> > An aligned word won't span a cache line. So any aligned 64-bit or 128-bit > word is always wholly within a single cache line.

On x86 a 64 bit atomic can span cache lines.

> Are you really sure ARM and POWER support that?

Do they not?

[http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc....](http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka15414.html)

On older processors, such as ARM9 family based processors, an unaligned load had to be synthesised in software. Typically by doing a series of small accesses, and combining the results.

"The ARMv6 architecture introduced the first hardware support for unaligned accesses. ARM11 and Cortex-A/R processors can deal with unaligned accesses in hardware, removing the need for software routines."

<comment><USER9> Apparently not. From "ARM Architecture Reference Manual ARMv8 for ARMv8-A architecture profile",

      Apart from Load-Exclusive, Store-Exclusive, Load-Acquire,
      and Store-Release, addresses can have any alignment unless
      strict alignment checking is enabled....

      -- Section C3.2 Loads and Stores, page C3-160.

      The Load-Exclusive/Store-Exclusive instructions other than
      Load-Exclusive pair and Store-Exclusive pair require natural
      alignment, and an unaligned address generates an Alignment
      fault. Memory accesses generated by Load-Exclusive pair or
      Store-Exclusive pair instructions must be aligned to the
      size of the pair, otherwise the access generates an
      Alignment fault.

      -- Section C3.2.6 Load-Exclusive/Store-Exclusive

      The Load-Acquire/Store-Release instructions other than Load
      Acquire pair and Store-Release pair require natural
      alignment, and an unaligned address generates an Alignment
      fault. Memory accesses generated by Load-Acquire pair or
      Store-Release pair instructions must be aligned to the size
      of the pair, otherwise the access generates an Alignment
      fault.

      -- Section C3.2.7 Load-Acquire/Store-Release

      The LoadLOAcquire/StoreLORelease instructions require
      natural alignment, and an unaligned address generates an
      Alignment fault.

      -- Source C3.2.8 LoadLOAcquire/StoreLORelease

      The CAS and CASP instructions require natural alignment, and
      an unaligned address generates an Alignment fault.

      -- Section 3.2.12 Compare and Swap, page C3-172

      The LD<OP> and ST<OP> instructions require natural
      alignment, and an unaligned address generates an Alignment
      fault.

      -- Section C3.2.13 Atomic memory operations, page C3-173.

      The SWP instructions require natural alignment, and an
      unaligned address generates an Alignment fault.

      -- Section C3.2.14 Swap, page C3-175

I've only ever dabbled in assembly programming, but the ability of x86 to do atomic operations across cache lines is, AFAIU, rather unique. That Intel and AMD engineers are able to accomplish it relatively performantly is an incredible achievement. But it's not a handicap anybody else wishes to adopt and then compensate for.

</comment></comment></comment></comment></comment></comment><comment><USER10> Yet another ActiveX-like tech re-spin, we are going back to the dark age.

Having usable and capable _SCRIPTING_ language for web was the biggest achievement of the whole Web 2.0 push, now the browsermaker is about to reverse that

<comment><USER11> I'm siding with baybal2 on this one. No matter how much you're wishing to use your favourite language on the Web, WASM is at best unnecessary, as the kind of application it enables (near-native speed) can be had with ordinary native apps as well. Why does something like that have to run in the browser? The only reason I can think of is because software/game publishers want to control your usage even more.

But it doesn't stop there: the worst possible outcome of WASM is that entire custom browser runtimes are being pushed to you [1]. Say goodbye to content linking, sharing, saving, translation, accessibility, ad blocking, etc. Not to mention content will only work on the bundled WebKit version.

WASM is user-hostile and anti-Web. What does it even mean that W3C "approved" a working group? I thought WASM was a WHATWG thing. W3C shouldn't lend what's left of its credibility to it.

[1]: [https://trevorlinton.github.io/](https://trevorlinton.github.io/)

<comment><USER12> > But it doesn't stop there: the worst possible outcome of WASM is that entire > custom browser runtimes are being pushed to you [1]

If we ever come to the point where all you need to develop a web browser is a wasm vm, don't you find exciting how much simpler a web browser would become? At the moment it is one of the most complex pieces of software out there. It is so hard to build a modern web browser from scratch nowadays that doing so as a hobby would take a lifetime. This takes the power away from individual developers, since it's not very realistic to build a new browser unless you are a big corporation with money to spare.

This situation also poses a big problem for the development of new operating systems. If your shiny, awesome, new research open source OS does not have a modern web browser, it will never reach wide adoption and thus never atract enough developers to build critical mass. The alternative is to make your OS compatible with POSIX and thus reuse the work of others so that you can build existing web browsers. But then you are most likely bound to become just another unix/linux alike, thus hindering innovation.

<comment><USER13> _If we ever come to the point where all you need to develop a web browser is a wasm vm, don 't you find exciting how much simpler a web browser would become?._

But you're not removing complexity, just moving it into the wasm-based runtime, and in the process it removes the power that comes with building the browser, which is shaping how the user sees and interacts with websites.

If every website is a blob of code that you have to execute as a black box, what's the point of writing your own browser? It'll just be a slower copy of every other, since all the potential for making it _different_ has been taken away.

<comment><USER10> >If every website is a blob of code that you have to execute as a black box, what's the point of writing your own browser? It'll just be a slower copy of every other, since all the potential for making it different has been taken away.

A very insightful comment</comment></comment></comment></comment></comment>


The YC Interview and a Visit to 10 Downing Street - <AUTHOR> http://blog.jamesmcaulay.co.uk/2014/05/the-yc-interview-and-a-visit-to-10-downing-street/

<comment><USER2> It surprises me that both the linked post by Guy Morita [1] and this one describe that they not only got detailed feedback, but that in both cases the problem was with the idea. I've always thought the idea was the least important thing, as almost everyone changes their idea, and attributes of the founders such as determination were much more important. Does YC simply limit their feedback to the idea?

[1] [http://alchemist.svbtle.com/our-yc- interviews](http://alchemist.svbtle.com/our-yc-interviews)

<comment><USER3> I got rejected back in 2010 as a solo founder (my cofounder bailed a few days before the interview), and feedback was all about the idea -- not my sudden solo founder status. The idea is really all they have to critique based on the app and interview. They consider founders heavily, but how do you give good feedback on "you guys just didn't blow us away as a founding team"?

Here was my rejection for something close to what Beacon does now (this was pre-startfund money):

> I'm sorry to say we decided not to fund you. There may well be something in > the idea of commissioned stories, but it seemed to us that to get such a > project rolling it would either have to be a spinoff of an existing site > with lots of traffic or be quite highly capitalized (since otherwise there > wouldn't be enough "donors" to cover costs). A YC size investment wouldn't > be enough, and yet it would be hard to raise enough from post-YC investors, > because they'd demand "traction."

</comment></comment><comment><USER4> _told me with a smile on his face that "we Americans love the whole Cambridge thing over here.", which is funny given that most of Britain seem to hate it._

Because it's foreign. I think UK attitudes to Cambridge and US attitudes to Ivy League universities are roughly the same.

<comment><USER5> Also, in the case of YC specifically, there have been some exceptionally good founders (and partners) from (more Oxford than) Cambridge, I think.

</comment></comment><comment><USER6> Two things I notice...

1 - The boxing analogy came up again. I'm waiting to hear from a startup that got in that views sessions with their investors as boxing. It just seems like viewing your esteemed funders as combative opponents is the wrong worldview.

2 - It seems like the rejection letters now have specific feedback. Is this new?

<comment><USER5> The rejection letters at the interview stage have often included detailed feedback. It's rejection in the earlier stage (not getting an interview, based on your application) which doesn't get detailed feedback (usually; I've seen some cases where it did, usually after questions in email).

<comment><USER6> Thanks! I appreciate the clarification. I recalled reading something which explained why YC doesn't give feedback, and didn't realize it was for just the first stage.

</comment></comment></comment><comment><USER7> Hey, so what's the app about again? Something about machine learning?

<comment><USER8> I was also interested to know that too. Nothing on his website that I could find (mobile version).</comment></comment>


In Unprecedented Move, U. Of Washington Fired a Professor for Sexual Harassment - <AUTHOR> https://www.buzzfeednews.com/article/azeenghorayshi/uw-fired-michael-katze# <comment><USER2> I'm glad to see the invisible force field that protects tenured professors is breached. I've known at least one that should have been fired, but wasn't. It's good to see they're not 'above the law'.

</comment><comment><USER3> Chickens are coming home to roost, finally. This is probably just the beginning.

See also: [https://news.ycombinator.com/item?id=18861184](https://news.ycombinator.com/item?id=18861184)

"Predatory male scientists abound in such numbers that it would be a Sisyphean task to devote a series of essays to describing their abuses in painful detail; even as this article was heading off to press, pop astrophysicist Neil deGrasse Tyson was accused of sexual misconduct by multiple women. In addition to cataloguing the trespasses of individual scientists who abuse the cultural power of their position, we have to dismantle the structures that have allowed their abuses to continue with little to no disruption. Just for starters, this means abandoning the myth that the science can be separated from the scientist."

<comment><USER4> Ugh, that article is a truly pointless opinion piece.

</comment></comment><comment><USER5> Here's the (ex) professor introducing himself in a video: [https://www.youtube.com/watch?v=w4XtmccsDo0](https://www.youtube.com/watch?v=w4XtmccsDo0)</comment>


Your office is beginning to look like a forest - <AUTHOR> http://www.independent.co.uk/life-style/design/why-your-office-is-beginning-to-look-like-a-forest-a8218516.html <comment><USER2> I remembers of an article I read last year in Business Inside. It touched on the physical and mental health benefits of at least taking a break in nature and unplugging in your regular life. From the closing summary in my article:

Why the connection? Researchers point to "recovery from stress and attention fatigue, encouragement of physical activity, facilitation of social contact and better air quality" as well as nature's positive effect on mental health, which would boost overall health and longevity as well.

[http://www.businessinsider.com/scientific-benefits-of- nature...](http://www.businessinsider.com/scientific-benefits-of-nature- outdoors-2016-4/)</comment>


The Mundane, the Mystical, and the Meta - <AUTHOR> https://www.defmacro.org/2019/11/25/mmm.html <comment><USER2> Interesting perspective and I mostly agree with the kernel of your article.

A few small gripes. All three words start with the letter M perhaps to make them easy to recall, but I feel like other words that are more familiar wrt the subject matter (from existing literature), could serve the same purpose better.

The kernel of your article and the preceding "Craftsman, Executive" seems to dwell on learning to make the right decisions for the context at hand, which we can just generalize to decision-making.

Herbert Simon, one of the best thinkers on decision-making, came up with a model that was improved upon by George Huber, that is neatly captured by this graphic:

[https://www.researchgate.net/profile/Asefeh_Asemi/publicatio...](https://www.researchgate.net/profile/Asefeh_Asemi/publication/266230971/figure/fig2/AS:317249828212737@1452649661458/Steps- in-Hubers-Model-Huber-1980.png)

The diagram helps highlight the differences & similarities between the two modes.

Using the diagram to better understand your article, I would characterize

      - meta: intelligence

      - mystical: design

      - mundane: monitoring

</comment><comment> david-cako "Capitalist discourse" in Lacan's theory of discourses reminds me a bit of this; it is essentially the realization of "new" constraints, ex nihilo, that can be reorganized and resolved.

The methods in the article are almost like further subcategories for the internal alchemy at play when creating something new.</comment>


Self-Reliance by Ralph Waldo Emerson (1841) [pdf] - <AUTHOR> https://math.dartmouth.edu/~doyle/docs/self/self.pdf <comment><USER2> One of my all time favorite essays. "Nothing is at last sacred but the integrity of your own mind."

<comment><USER3> It's an interesting essay and a good call to action for the already non- conformist and independent. Though at the end of the day someone needs to mend your shoes, bake your bread and so on - we can't all be primes if we want to function as a cohesive society.

With regard to the contempt for charity, while you can celebrate that you are the product of your own hard work, you forget that's never really true in a society where we don't all start life with the same level of nutrition, warmth, care, location, education or skin. The track is rockier and longer for some, shorter and smoother for others. While we know charities are inefficient, and putting a dollar in the hand of a beggar won't teach them how to make more purposefully, I'd sooner hand over the dollar than pretend I wasn't the benefactor of circumstance.

That doesn't mean you have to self-flagellate for being fortunate and dedicate yourself to others, it's just honesty.

<comment><USER4> It is my belief that Mr. Emerson's essay was more about being the best version of yourself you can be. Yes, someone has to mend your shoes and bake bread, however, if that's your profession, you should strive to be the best at the given task. If you pride yourself in your work, then being the best baker isn't an insult, nor being the best car driver, chef, or construction worker.

<comment><USER3> There's certainly no shame in being a driver, baker or barista. And if you yearn to be the best at a particular task, all the better for those who use your services and perhaps society at large. But you're not your job. In a small amount of time you won't even be a memory. The universe doesn't care how well you brewed that coffee, nor does it care about your electric car company. Even as the people of the future and their artificial aides stand on the collective shoulders of giants past, finally encapsulating the sun with the greatest megastructure ever known to harness its vast power, the universe stares back silently, carelessly.

You are the universe looking at itself. If you want to make something, make it. Make it as good as you want to make it. But more than anything, celebrate your existence. For some, that's doing a great job - making a great thing. But society will suffer as long as the only way to validate your existence is to work and work hard.

<comment> saiya-jin striving for being best shouldn't be limited to profession, but also on personal levels - friend, family member, partner, parent. sociery will benefit greatly from people who manage to get this all well, but there seems to be actually very few people who achieve this.

</comment></comment></comment></comment></comment><comment><USER5> "In every work of genius we recognize our own rejected thoughts: they come back to us with a certain alienated majesty."

So painfully true.

</comment><comment><USER6> IIRC (but I can't seem to source it) it was Marshall McLuhan that said that there was nothing sweeter than the gaze of a tyrant. This is what Emerson seems to be preaching against, and how good a sermon it is.

</comment><comment><USER7> Self-reliance is an honorable trait, but those individuals deemed as greatest amongst the ranks of humanity built their empires off the work of many.

<comment><USER8> One of the things Emerson was warning about was Dogma:

 _"The objection to conforming to usages that have become dead to you is, that it scatters your force. It loses your time and blurs the impression of your character. If you maintain a dead church, contribute to a dead Bible-society, vote with a great party either for the government or against it, spread your table like base housekeepers, under all these screens I have difficulty to detect the precise man you are.And, of course, so much force is withdrawn from your proper life. But do your work, and I shall know you. Do your work, and you shall reinforce yourself. A man must consider what a blindman 's-buff is this game of conformity. If I know your sect, I anticipate your argument. I hear a preacher announce for his text and topic the expediency of one of the institutions of his church." _

<comment><USER9> That is an excellent quote.

"If I know your sect, I anticipate your argument."

Put in modern terms, it virtually defines the combination of politics, marketing and labeling that defines our current system in the US.

We no longer discuss issues, we anticipate the version of the argument we're told to expect from the assumed "sect" and prepare a response to that. You can see this play out on Facebook or other platforms when you try to discuss an issue with someone and get a response completely unrelated to anything you just said.

Slap a label on a straw man, then campaign against that.

</comment></comment></comment><comment><USER10> Build yourself a hut. Pretend to live off nature while women from the town one mile away bring you pies. Thus is self reliance.

<comment><USER11> Let's try to do better than reflexively repeating the #1 dismissive meme about someone's work.

[https://news.ycombinator.com/item?id=9722096](https://news.ycombinator.com/item?id=9722096)

All the more so when the work is beautiful and the meme is about the wrong guy.

<comment><USER12> Your linked response is so perfect I'm saving it in my quotes file. Thank you for putting into words the vague feeling some of us have but can't name.</comment></comment></comment>


Women in Tech Is a Family Issue - <AUTHOR> https://medium.com/swlh/women-in-tech-is-a-family-issue-8f210be2903 <comment><USER2> >The only women's bathroom on my office floor was centrally located next to several popular conference rooms.

That's a feature, not a bug I'm assuming. The men have to walk way farther to get to the bathroom when they need to go.

Maybe it's time for some good ol' equality and bring the men's bathrooms next to the women's by the conference room? :-)

<comment><USER3> She describes it as a privacy issue. Also, it's pretty common for women to hide in the restroom for a few minutes to collect ourselves when we're upset at work. Usually that's the last moment you want to be walking past everyone in the office.

</comment></comment><comment><USER4> I'm sorry but complaining about convenient bathroom location leaves me nonplussed. I don't think it's a gender issue that you are embarrassed about using the facilities.</comment>


Show HN: OAM - <AUTHOR> http://ooaamm.com <comment><USER2> No idea what the hell this is for, but it's strangely relaxing.</comment>


Picking SQL or NoSQL - <AUTHOR> https://compose.io/articles/picking-sql-or-nosql-a-compose-view/ <comment><USER2> Basically, unless you have a really really good understanding of your problem and know (for sure) that you won't need joins, just use a RDBMS.

<comment> tuna-piano When I began working on my first app backend, I had heard so much about the MEAN stack I thought that would be the way to go.

Turns out NoSQL should definitely not be the default answer for a project.

<comment><USER3> I was chatting with a guy at a barbecue who'd just finished a General Assembly Web Development Immersive course and had just been hired as one of 3 developers.

Asking what his stack was he said something to the effect of "Rails, with a MongoDB backend".

I pressed him further asking how far along the project was, and found out they had just started. He seemed offended when I suggested that leading with Mongo was a premature optimization. "But we're just dealing with blobs of json".

Admittedly, I have no idea what this guy's name is, or the company he worked for (and this is therefore unadulterated speculation), but my bet is that they have either collapsed from the world of shit they created for themselves, or they've had to hire someone (or several) to dig them out of said world of shit and it's cost them quite dearly.

Don't get me wrong, NoSQL has its place, but not as the "paper of record" for the very beginning of a project.

[Edit: kinda skipped over my point, which was that it's never "just a blob of json", it has structure which, if not explicitly defined somewhere, will bite you in the ass]

<comment><USER4> "If I have seen further, it is by standing on the shoulders of giants" \- Isaac Newton.

"Let's shove my head into my own ass. NOSQL!" \- said by too many young and aspiring developers.

It's a leap backwards to the seventies and DL/1, but without transactions, that's what it is.

Edit:

I have never worked with a system that have blobs of "data" and that's been in production for a while, where that turned out to be a good decision.

Also, data integrity is hard. Building it on your own, is really hard. Most people have trouble getting it right when the hard bits are already provided for them.

SQL isn't perfect, but it's the easy way out 99 times out of 100.

<comment><USER3> The problem is really that SQL isn't the easiest way to, starting from nothing, take some data, manipulate it and display it on screen. You have to take a couple of steps to set up a schema, take the data you have, convert it to that schema then manipulate it and display it on screen.

Mongo and its ilk give you instant gratification and a tremendously false sense of productivity. It's the easiest way for step 1 without question, it's steps 2 and onwards where it starts to show its problems.

</comment></comment></comment></comment></comment><comment><USER5> It's odd that he put NoSQL at lower level of abstraction than SQL. In a way, it makes sense, because yes you do have to reimplement many SQL things.

But I always thought that the attraction to NoSQL was that you didn't have to unravel your application's objects into tables. You just stuck them in there. You worried about reports later.

</comment><comment><USER6> An interesting article. I'm glad to see someone giving an equal treatment of SQL and NoSQL databases for a change. I appreciate the analogy of SQL being an optimized and general-purpose high-level language and NoSQL being a more powerful but specialized low-level or assembly language.

However, I feel like the article fundamentally fails to address the core question of "When should I pick NoSQL over SQL?" If SQL is indeed the choice 99 times out of 100, how can you know when you are faced with that 1-in-100 time when NoSQL is actually the right option?

<comment><USER7> It's really "not" that complicated. Start by assuming by default that you will use an RDBMS, then:

1) Attempt to model a database schema that fully and completely supports said data. This will force you to get a sufficiently deep understanding of the domain problem and how it's different parts relate to one another.

2) Is there a part of the domain problem whose dynamic or unstructured nature cannot be properly represented on a fixed database schema and/or this unstructured piece of data must be performantly queried? Add a "companion" Document DB to your architecture.

3) Are there performance issues/requirements on a given part of your system and you need to hold volatile data such as a cache of processed data, or you need to efficiently handle user sessions across multiple machines, or even a queuing system for processing tremendous amounts of data coming in? The add a "companion" Key-Value DB to your architecture.

... And many, many other examples of other specialized NoSQL DBs could be added here, but you get the idea.

Summing up: Understand the data > Attempt to model an RDBMS schema that supports said data > Use proper "companion" DBs for whatever data that does not fit in a RDBMS.

</comment></comment><comment><USER8> Basically if you need to model any kind of relationship between objects then NoSQL will start to hurt and hurt hard!

<comment><USER9> That's not always true, of course. NoSQL databases can usually handle 1st level relationships just fine. The problem arises when the related item needs to be it's own entity.

For example, if you have a table of users who have permissions represented by text, that's really easy in a NoSQL database, as most of them provide some kind of list datatype (list<X> in cassandra, arrays in mongo, list in redis). The problem arises when consumers of the database need to be able to add or remove from the set of possible permissions. If it's limited forever to 'read'/'write'/'execute', or is unlimited, you're golden! But if it's some sort of system where an admin needs to be able to dynamically create customized permissions, an RDBMS will be the clear cut winner.</comment></comment>


Ask HN: Getting the (Next) Job - <AUTHOR> So, I'm asking a rather open-ended question about getting my next web development job.
Background: I'm a mostly self-taught developer with  some formal training in CS. I try to be as full-stack as I can be, but I've tried to focus mostly on JavaScript & Node.js. I'm currently in the process of looking for a new work situation, and I'm hoping to get as much good advice/info on how I can best distinguish myself, handle the interview questions, etc.
I've started by getting all the books I can and reading through them — Intro to Algorithms (CLRS) and similar — as well as coding as much as I can and implementing as many algorithms/data structures as I can.
Question: So, as a web developer with a little over 2 years of experience and no seriously formal background in CS, what can I do to best distinguish myself from the competition?
Thanks!
Disclaimer: my company is in the process of transitioning its overall structure and needs, so the development team I'm on is   being sunsetted — they're well aware I'm looking, etc. <comment><USER2> I was in the same position as you a month ago and now have an amazing job at a big name company. Also never went to college and am self-taught.

1\. Dedicate 4 hours a day to practice, breakdown is maybe 2 hours of solving hard algorithm/programming interview questions. Really solve them, do not let yourself look at the solution until you've made a real stab at the problem. Also attempt problems harder than you think will be given to you. Also try to get a smart friend to do a mock whiteboard problem with you as often as possible. Spend the other two hours learning hard computer science. Keep grinding through Intro to Algorithms, but slowly. Really internalize and make yourself believe you understand the concepts and material.

2\. Apply everywhere. Seriously, even places you don't think you'd work at. The interview might change your mind and make you excited about the company, and at least it's practice. Also, subtly convince yourself YOU are also interviewing them. It will convey a lot more value on your behalf.

3\. Go to meetups and meet people. I don't know where you're located, but meetups can seriously lead to opportunity. I say this even though ironically 2/3 of my jobs I've gotten from applying on the website. But my first job/internship came to me in highschool after meeting the VP of the company who offered a job on the spot.

In #1, I may have seemed to have taken a hardline approach, that's right. In my experience, the interviews I've had were not even 20% as difficult as the problems I was used to solving and that's the point. Working really hard to master the material will show in unpredictable ways.

Best of luck.

<comment><AUTHOR> Thanks for your feedback and advice!

</comment></comment><comment><USER3> > I'm a mostly self-taught developer with some formal training in CS

Not really a problem. I believe the most awesome programmers are the ones that come from a self-taught background. Some employers often see this as a good trait, as you set aside time to learn and not slack off. Also, coming from another field and going into programming is a good bonus as you see programming in a different angle compared to someone who's rooted deep into programming (the "wrote my first BASIC at 4 years old and been programming eversince" kind of person)

> I try to be as full-stack as I can be, but I've tried to focus mostly on > JavaScript & Node.js

Don't. You know JS, therefore you know half the story of Node. All you need to compensate for is the knowledge of existing tools and modules. Get another server-side language instead of Node.js. PHP, Java and C# are in the same ballpark in terms of familiarity.

> what can I do to best distinguish myself from the competition?

Just be yourself. That's the best way to make yourself distinguished. Being someone you're not is the absolute worst thing you'd want to show to your potential employer. Show off what you've got, but don't create stuff just to show off. What I mean is, if you have past projects, show them off. Don't create stuff for the sake of that interview. Github commits from 2 weeks ago don't lie.

<comment><AUTHOR> Thanks for your feedback & advice!</comment></comment>