List of unsolved problems in computer science - <AUTHOR> http://en.wikipedia.org/wiki/List_of_unsolved_problems_in_computer_science <comment><USER2> I'd like to see some more general unsolved problems concerning big code bases, programming languages, etc. Examples:

\- Object-relational impedance mismatch

\- MVC (solves only half of the problem)

\- Global state

\- Schema vs schemaless data stores

\- Raising exceptions vs returning error codes

A good sign of an unsolved problem in this regard is that programmers go back and forth between solutions, forgetting the downsides of the previous flavour while enduring the downsides of the current flavour.

Very often, one new solution pretends it will get rid of complexity, but the actual complexity is just moved a bit further behind the carpet.

<comment><USER3> >Object-relational impedance mismatch

This one is easy: don't do it! If you're talking to a database, you should be using a powerful and declarative language for building your queries.

>Global state

This is a solved problem from a computer science perspective. The rest of the work is getting programmers to understand how and change their habits accordingly.

>Raising exceptions vs returning error codes

Option/Either types are a very strong middle ground. They don't require the boilerplate of checking error codes and they don't have the unpredictability of exceptions (particularly in the case of asynchronous code).

>Very often, one new solution pretends it will get rid of complexity, but the actual complexity is just moved a bit further behind the carpet.

I know what you mean. A lot of solutions end up "punting" the complexity to some other structure. The real answer (if there can be one) is to find ways to eliminate this complexity altogether. One major way to do that is to work with values and compose pure functions to build them. Pure functions dramatically improve one's ability to reason about their properties in isolation.

<comment><USER4> """This one is easy: don't do it! If you're talking to a database, you should be using a powerful and declarative language for building your queries."""

Not only that, but I have been finding that most problems where I would originally turn to using objects and classes are better solved by using static functions that operate on large data structures. This strategy also helps sidestep the object-relational mismatch in a lot of cases.

<comment><USER3> I think people are finally starting to realize that objects are not a good way to model information; maps, vectors and ADTs do a much better job.

<comment><USER2> Well, it depends. Say you want to model a user of your application, this looks very much like a candidate for an object. Sure when you just start, you can use a dict or even only the id, and have functions working on it.

But will this scale when the number of possible actions over a user will be in the hundreds? Then, with all it drawbacks, the object model may make sense: at least, you have a way to know which actions are available on a given thing.

<comment><USER3> >Then, with all it drawbacks, the object model may make sense: at least, you have a way to know which actions are available on a given thing.

Not sure what you mean here. Could you elaborate a bit more? I don't want to reply to a misconception of your idea.

<comment><USER2> When you have a "user" in hands, how do you know what you can do with it? When it is an object, it is relatively easy, as the methods are bundled in the object. If you use a functional paradigm, you'll have to resort to some other mean, maybe you'll regroup user-related functions in a place (but some are mixed), or check for function accepting user_id as an argument, but these means seem less straightforward to me.

<comment><USER3> Ah, so you're talking about tooling. Specifically, the way object method invocation lends itself well to autocompletion or intellisense?

In functional languages we tend to use far more generic facilities than this. Some examples of this are lenses and scrap-your-boilerplate style generic programming.

We also tend to think differently. We don't "hold a user in our hands" and ask what we can do with it. We think in terms of extending our base language until we can express the solution to our problem in a trivial way.

<comment><USER2> That's all good but my personal experience about complexity and big code bases sadly don't include functional paradigm.

Note that I'm not taking about complex problem with potentially simple solutions, I'm talking about inherently complex systems, like, say, the HR system of General motors.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> List of unsolved problem in Mathematics [http://en.wikipedia.org/wiki/List_of_unsolved_problems_in_ma...](http://en.wikipedia.org/wiki/List_of_unsolved_problems_in_mathematics)

</comment><comment><USER6> POPLmark seems to generally be considered solved. There are multiple good solutions using different tools for all of those problems, I believe.

And the _real_ goal has largely been reached. At this point, if you're proposing new PL theory and you don't have a mechanised proof of it, the entire work is viewed with considerable skepticism.

That said, reuse and productivity are still not much better than that of real- world software. My peers who do that sort of thing are in very high demand for post-doc positions on projects funded by various governments/militaries to "prove the X property about software system Y."

</comment><comment><USER7> I like how the POPLmark sounds like popel-mark in german. Which would mean something like booger-money in english.

</comment><comment><USER8> It would be nice to see more. I'm sure there are.

Having said that I suppose most problems we face in this field boil down to mathematical problems at the fundamental level. At least that's the conclusion I came to when I tried to think of unsolved AI problems.

</comment><comment><USER9> _What is the fastest algorithm for multiplication of two n-digit numbers?_

 _What is the fastest algorithm for matrix multiplication?_

I think those "What is the fastest" questions are relative. In my opinion, they are not unsolved problem. There are already solutions for them. And in those current solutions, there is of course the fastest.

When a faster algorithm is formulated, a time will come where another algorithm will perform much better.

EDIT: Now I get it. That "fastest" is in terms of time complexity. Thanks guys. :)

<comment><USER10> I believe fastest in this context means that it has been proven that there can be no faster algorithm.

<comment><USER11> Indeed, in terms of complexity theory I would guess, not in terms of milliseconds.

<comment><USER10> An Algorithm with a lower time complexity will always take a shorter amount of time once the problem size grows large enough. You could run one algorithm on a modern cpu, utilizing Simd and tune for cache coherency and the other in QBASIC on an old 386 and the O(n log n) algorithm would still terminate earlier than the O(n^2) one past a certain n.

<comment><USER12> the problem is that while dropping from n^2 to n log n is a big deal, dropping from (n log n) to n won't help much if you end up increasing the constant costs at the same time.

<comment><USER13> It will eventually. Practical problems are pretty much solved.

</comment></comment></comment></comment></comment></comment><comment><USER14> How about a list of greatest problems in computer science that have been solved? Would make a nice list to study and to gain general knowledge!

</comment><comment><USER15> I don't know, I consider them more unsolved mathematics problems in the non academic world.

I know tomato tomato, but to me in computer science it's more important to know if they have been solved for most cases (Or alternatively considered probably to hard in RL)

Getting to caught up in perfect solutions can be more a hindrance.

<comment><USER13> I'm going to bicker about language, but that sounds more like a software engineering mindset. Most of the most fundamental problems in computer science have exactly that kind of mathematical nature.

Works well enough gets a paycheck, but doesn't impact the field.</comment></comment>


Beyond Cynicism: America Fumbles Towards Kafka's Castle - <AUTHOR> http://www.theamericanconservative.com/articles/beyond-cynicism-america-fumbles-towards-kafkas-castle/ <comment><USER2> _Their main mental block is their belief in infinite industrial growth on a finite planet, an idea so powerfully foolish that it obviates their standing as technocrats._

This is the Erlich/Simons bet. It's not that the author is wrong to say there is a limit to growth, it's just that it's preposterous to assert we're close to it. We are not close to it in any useful sense. It's not even 200 years off: it's beyond.

We will have normal cyclical boom and bust many times before we reach it. The rape of the Amazon and they CO2 burden are more worrisome, but as limits represent a different reason to clamp consumption and growth.

 _My theory, for what it's worth, is that the civil rights legislation of 1964 and '65, which removed legal barriers to full participation in national life, induced considerable anxiety among black citizens over the new disposition of things, for one reason or another. And that is exactly why a black separatism movement arose as an alternative at the time, led initially by such charismatic figures as Malcolm X and Stokely Carmichael._

I don't know about the second clause but I believe differently about the first clause. Removing the legal impediment did not obligate society to change, black America received as much systemic instituionalized racism after the law changed as before, it was now simply illegal. Freeing the slave (btw, largely they freed themselves) didn't give them work and passing the civil rights laws didn't magically end racism or provide opportunities.</comment>


Corundum: Open-source, high performance, FPGA-based NIC - <AUTHOR> https://github.com/ucsdsysnet/corundum <comment><USER2> _Corundum is an open-source, high-performance FPGA-based NIC. Features include a high performance datapath, 10G /25G/100G Ethernet, PCI express gen 3, a custom, high performance, tightly-integrated PCIe DMA engine, many (1000+) transmit, receive, completion, and event queues, MSI interrupts, multiple interfaces, multiple ports per interface, per-port transmit scheduling including high precision TDMA, flow hashing, RSS, checksum offloading, and native IEEE 1588 PTP timestamping. A Linux driver is included that integrates with the Linux networking stack. Development and debugging is facilitated by an extensive simulation framework that covers the entire system from a simulation model of the driver and PCI express interface on one side to the Ethernet interfaces on the other side.

Corundum has several unique architectural features. First, transmit, receive, completion, and event queue states are stored efficiently in block RAM or ultra RAM, enabling support for thousands of individually-controllable queues. These queues are associated with interfaces, and each interface can have multiple ports, each with its own independent scheduler. This enables extremely fine-grained control over packet transmission. Coupled with PTP time synchronization, this enables high precision TDMA._

<comment><USER3> FGPA = field-programmable gate array. NIC = network interface card. PTP = Precision Time Protocol. TDMA = time-division multiple access. I'm trying to understand what it is and what makes it special.

<comment><USER4> What makes TDMA special? It seems to be a provisioning scheme to reserve queue slots to enable guaranteed bandwidth for specific connections.

What makes Corundum special? Mainly that you can add client code into it and maybe free up an isolated core, or stage packets to send on short notice.

Mainly of interest for low-latency finance and for high-performance compute clusters.

<comment><USER5> Regarding TDMA only: it's part of IEEE time sensitive networking (TSN), which is intended to make Ethernet suitable for industrial application where short latencies and deterministic behavior are critical, and not guaranteed with stock Ethernet.

Supporting critical traffic with TSN is a two steps process. First, you synchronize all the participating network nodes. For this you can use PTP (IEEE 1588), which is like an Ethernet level NTP (grossly oversimplified, but you get the idea). Once all the nodes are in sync, they can use time aware scheduling (TAS) where a TDM frame is overlaid over all the LAN, with Ethernet traffic classes (TC) assigned to specific ranges. In other words, you define a repeating pattern, split into different sequential zones, and TC are aligned to some zones. The goal is to define repeating ranges dedicated to specific traffic classes, where one can control the load and make sure there is no contention and traffic will go through with deterministic latency.

All this could be used in a plant, to support both best effort traffic but also sensitive real-time traffic for automation, while protecting the later.

TSN started out for media applications (broadcasting) over Ethernet, but is getting into industrial applications (see [https://opcfoundation.org/](https://opcfoundation.org/)).

Support for TSN is planned for 5G (NR) release 16, to support industrial applications.

All this area is in flux, so having a flexible programmable platform can be interesting.

</comment></comment></comment></comment><comment><USER6> I've used NetFPGA ([https://netfpga.org/](https://netfpga.org/) ) before which seems a little more complete, will be interesting to see how this compares.

<comment><USER7> NetFPGA is a toolbox for network-based packet processing. It is not a NIC, and their NIC reference designs leave a lot to be desired. Corundum is specifically a NIC.

<comment><USER8> If NetFPGA gives you access to the PCI bus, it should be possible to make it into a NIC.

Simple matter of some verilog and a linux driver. ;-)

Of course, we also have non-FPGA Smart NICs from the likes of Netronome, etc. which can do things like accelerate EBPF or run P4.

<comment><USER7> Well, we're planning on porting Corundum to the NetFPGA SUME hardware at some point in the near future. Should be relatively straightforward as the PCIe interface on the Virtex 7 is the same as on the Ultrascale parts.

NetFPGA does have a NIC reference design, but AFAIK it's just the Xilinx XDMA core connected to a Xilinx 10G MAC. No accessible transmit scheduler, no offloading of any kind, etc. Just about as spartan as you can get, and it's built from completely closed components so you can't really make many modifications to it.

For what we're doing, we can't use any existing commercial NICs or smart NICs because they can't provide the precision we need in terms of controlling transmit timing. We don't care about EBPF, P4, etc. We care about PTP synchronized packet transmission with microsecond precision.

</comment></comment></comment></comment><comment><USER9> Really interesting project. Couldn't find the motivation explained. Is this just for research? Is it usable in production running in an FPGA? Are there plans to produce hardware?

<comment><USER10> It's from a group at UCSD, so yes, this is research.

The applications for these kinds of things range from SDN (software-defined networking) where low-latency is a concern and to applications in network monitoring. One could, for example, put together a system that performs line- rate TLS decryption at 10Gbps. You need an FPGA (a big one) for something like that.

There are commercial vendors for this kind stuff (selling closed source IP and hardware). It is not _yet_ in Open Compute networking projects, but I expect that's coming soon.

You can now buy "whitebox" switches that run open network linux and put your own applications on them. In the not-too-distant future those "applications" will also extend to stuff that can run on FPGA hardware .

<comment><USER11> Nope! Netflix does 10G tls on commodity hardware in kernel space. CPU can do a lot.

<comment><USER12> I believe they are doing 100Gbps now: [https://t.co/cbb7NA9vJf?amp=1](https://t.co/cbb7NA9vJf?amp=1)

It's hard for me to see the use case of an FPGA nic. The reasons outlined above don't seem compelling when a commodity nic like mellanox do so much more already.

<comment><USER13> It looks like the UCSD team are exploring data center TDMA which no commercial NIC supports. [http://cseweb.ucsd.edu/~snoeren/papers/tdma- eurosys12.pdf](http://cseweb.ucsd.edu/~snoeren/papers/tdma-eurosys12.pdf)

<comment><USER7> The group web page is here: [https://circuit- switching.sysnet.ucsd.edu/](https://circuit-switching.sysnet.ucsd.edu/)

Corundum was originally geared more towards optical circuit switching applications, but it's certainly not limited to that. Since it's open source, the transmit scheduler can be swapped out for all sorts of NIC and protocol related research.

</comment></comment></comment></comment></comment></comment><comment><USER14> Might be silly question but is there a technique to rapidly program FPGA's without interrupting other processes. Say I have multiple soft-CPU's and only want to use my gates to enable ethernet once its needed or the user plugs in?

<comment><USER15> Not a silly question and actually a very powerful, seldom used feature: partial reconfiguration.

There are, however, several limitations to it. Clock cannot be changed, for example, and usually neither can I/O, specially high-speed transceivers. This has been improving (Ultrascale Xilinx allows for reconfiguring I/O), but you still have to reserve area for reconfiguring (meaning literal area, as in a geographic region in the FPGA).

However, I/O versatility as you suggested has very few advantages to it. You need the reserved logic for ethernet to be programmed at when you plugin. Why would you leve it unprogrammed? If is simply disabled, it won't use any extra power resources, and your soft-CPU's won't be able to take advantage of these resources while you are working. Maybe you could use the area for new soft- cpus, but then you'll hit the problem of over segmenting your design and allowing for less optimization. This would inevitably impact timing constraints and area usage.

Also, FPGA programming may take minutes to finish, and always at least a few seconds. This will be very noticeable by an user and not very efficient if it has to be done frequently.

There are, of courses, good uses for that. But there is also a lot of effort on doing it right and you always risk overdoing it.

<comment><USER16> Is programming speed really that bad for the ultra high-end devices? Minutes? I don't remember it being that bad for the Amazon F1 when I ported a Xilinx build to use the F1 SDK (I didn't spend lots of time with our prior one, so I wouldn't know.) Of course, their programming strategy is extremely customized, but even for very high-utilization images, it was only ever on the order of seconds. Vivado is absolutely terribly slow though, no matter what you do, or what device you use. (Not to mention if you want to use the ILA support over the internet...)

Also, for some designs you can mitigate the reconfiguration time issue by having two regions and draining requests to one of them, before doing an update. Most of the Xilinx tooling for OpenCL does this kind of thing by default (4-6 "opencl kernel" regions.) But of course it's not always an option to give up that much space...

<comment><USER7> It depends on the programming interface. JTAG is bit serial and rather slow, so it can take quite a while to load a large FPGA via JTAG. However, there are several other interfaces that can be used, including QSPI, dual QSPI, parallel flash, and a simple parallel interface from some other controller. These can run at many MHz and can load a configuration into a large FPGA in less than a second.

</comment></comment></comment></comment><comment><USER17> The hobbyist in me is disappointed: Even the ExaNIC X10 seems to come at 350US$ used, and forget about the four figure UltraScale boards :( Of course, the FPGA can do a lot of stuff in addition, so for HPC this might be really nice to offload application-specific stuff really early (because sustained 2*10G traffic is bound to go somewhere, e.g. CPU[s]).

<comment><USER4> $350 is cheap for such a powerful NIC. You could pay $10k for a Napatech, or $2k for a Solarflare, and not get this level of programmability.

libexanic is a remarkably clean user-space kernel-bypass library that allows you to do processing on early fragments of the packet while the rest are still being received.

<comment><USER18> Comparing used prices to new prices is dishonest. It costs $2,961.00 new.

[0] [https://www.shi.com/Products/ProductDetail.aspx?SHISystemID=...](https://www.shi.com/Products/ProductDetail.aspx?SHISystemID=ShiCommodity&ProductIdentity=33645693)

<comment><USER7> I don't know where the heck that price came from. The cards are more like $1200 new.

[https://www.cdw.com/product/exablaze-exanic-x10-network- adap...](https://www.cdw.com/product/exablaze-exanic-x10-network- adapter/3981568?enkwrd=exanic+x10)

<comment><USER19> [https://m.aliexpress.com/item/4000523308171.html](https://m.aliexpress.com/item/4000523308171.html)

Ultrascale. Significantly cheaper. Could it be made to work out is it subject to your comments concerning kintex, pcie straddling?

Aside from that did you know you were going to do this when you did verilog- ethernet etc?

</comment></comment></comment></comment></comment><comment><USER7> Author of Corundum here--if you have any questions, ask away.

<comment><USER20> Are you aware of the extraordinary good deal on huge kintex (K420T) nic-like dev boards on aliexpress?

There are boards with 4 sfp+, ones with 2 sfp+ and 2 QSFP+, and even one with 4 QSFP28 (and UltraScale+ XCVU9P)...

[https://www.aliexpress.com/store/group/FPGA- DEV/620372_25030...](https://www.aliexpress.com/store/group/FPGA- DEV/620372_250309057.html?spm=2114.12010612.pcShopHead_35478622.1_1)

they sound like great targets for your work...

<comment><USER7> Yes, I am aware of those. However, the kintex PCIe interface is a bit of a pain as it has a TLP straddling mode that can't be disabled, so it will be some time before it's supported as it will require some significant reworking in the PCIe interface modules. I am planning on supporting straddling eventually as this will improve PCIe link utilization on the ultrascale and ultrascale plus parts. If someone wants to donate a board, I can look in to supporting it.

<comment><USER21> Interesting, I never heard of straddling, what is it supposed to achieve?

<comment><USER7> Stradding is an artifact of very wide interfaces. On the Ultrascale+ parts, the PCIe gen 3 x16 interface comes out as a 512 bit wide interface. Every cycle of the 250 MHz PCIe user clock transfers 64 bytes of data. The issue has to do with how packets are moved over this type of interface. If your packets are all a multiple of 64 bytes, no problem, you get 100% throughput. However, if your packets are NOT a multiple of 64 bytes in length, you have a problem. What byte lane do packets start and end in? The simplest implementation is to always start packets in byte lane 0. The interface logic for this is the simplest - the packets always start in the same place, so the fields always end up in the same place. However, if your packet is 65 bytes long, the utilization is horrible - it doesn't fit in one cycle, so you have to add an extra cycle for every packet, and bus utilization falls to 50% as you have 63 empty byte lanes after every packet.

Straddling is an attempt to mitigate this issue. Instead of only staring packets in lane 0, the interface is adjusted to support starting packets in several places. Say, byte lanes 0 and 32. Or 0, 16, 32, and 48. Now, when you have a packet end in byte lane 0, you can start the next packet in the same clock cycle, but in byte lane 16 or 32. This increases the interface utilization. The trade-off is now the logic has to deal with parts of two packets in the same clock cycle, and it has to deal with multiple possible packet offsets.

The specific annoyance with PCIe packets is that the max payload size is usually 256 bytes, but every packet has a 12 or 16 byte TLP header attached, which really screws things up when combined with the small max payload size.

<comment><USER21> Fantastic explanation, thanks.

</comment></comment></comment></comment></comment></comment><comment><USER22> This looks very interesting. If this were included in the Linux kernel, would it read and utilize existing sysctl memory and qlen values as well as have it's own sysctl settings, or would all the settings be derived at module load in the modprobe parameters? Why I am asking is that I current disable TOE (TCP offload engine) on all my nic's as they have their own buffer and retry settings and ignore the OS network settings.

<comment><USER7> It's still in development at the moment. We'll see about the interface. But there are no plans to implement any segmentation offloads or TOE in Corundum, that will be left up to the network stack. However, scatter/gather DMA support is planned so that software GSO will work. Right now, most of the low-level twiddling is done from a user space app that directly accesses device registers. For a research device, that's fine, but that would obviously have to be improved for a commercial product.

</comment></comment><comment><USER18> Although this is cool, the downside is that it only works on specific FPGAs. Are hardware independent designs possible so that one can run it on any sufficiently large FPGA?

<comment><USER16> Making RTL portable, so it can be used with different toolchains, is certainly possible -- and how/why you do this is, like everything, is an engineering tradeoff. Sometimes when you write C code it's easier to just use Linux features and not care about portability! Sometimes it's very easy (or very desirable) to keep portability for your code, which might be easy (use the standard library) or hard (use lots of #ifdef or whatever.)

But, unlike portable C code, to run designs like this on real hardware, you need to do things like describe how the physical pins on the FPGA are connected to the board peripherals (for instance, describing which pin might be connected to an LED, vs a UART). This generally requires a small amount of glue, and depending on how the project is structured, some amount of Verilog/VHDL code, as well. It's not like saying "cc -O2 foo.c" with your ported C compiler that has a POSIX standard library.

This is just the case if you're using the same base FPGA, but with different board layouts. Using different FPGAs (for example, a current-gen FPGA by vendor XYZ, vs XYZ gen N-1), or especially when porting between vendors -- the details can become vastly more complex very quickly.

</comment></comment><comment><USER23> TDMA in a data center environment, anyone else have some heavy deja vu?

<comment><USER7> That's something we joke about quite a bit in the research group - "back to the future!"

</comment></comment><comment><USER24> I really wish people would try making original names for their products. Not only am I now going to have to sift through Steven Universe stuff when I look up corundum for people, now I'll have to filter this out as well.

Very annoying for geology-hobbyists.

<comment><USER7> There are two hard things in computer science: cache invalidation, naming things, and off-by- one errors.

</comment></comment><comment><USER25> I vaguely remember a corundum project related to the ruby (and rust?) languages, but search engines fail because the terms are all related to mineralogy.

FWIW: this appears to be different / unrelated to ruby or rust.</comment>


Is this the End of the Sales Person? - <AUTHOR> http://sales4startups.org/atlassians-cameron-deatsch-onno-sales-people-strategies/

<comment><USER2> Thanks a ton for doing this interview :-) This has been on my todo list for a long time.</comment>


Tell Facebook: There's a severe bug when changing profile pics on the iOS app. - <AUTHOR>

(I've submitted a bug report with Facebook, but cross posting it anonymously here so it hopefully gets some attention).
To reproduce: Open Facebook iOS app --> tap profile pic --> tap "choose existing" --> minimize Facebook app --> open photos app --> delete some photos from the photo stream --> go back to facebook iOS app --> try selecting a photo --> the selected photo is NOT the photo that was tapped.
This happened to me just now. I got the fright of my life when the selected photo was one which I'd NEVER want uploaded to the internet. Thankfully there was a "crop" screen saving me from what would have been the worst embarrassment of my life.
I recommend fixing this ASAP. It's just a matter of time before someone actually does accidentally upload a "private" photo of themselves due to this bug. When that happens, there's a reasonable chance of an enormous lawsuit. <comment><USER2> Tried to recreate and the Facebook app just ended up crashing on my iPhone 4...

<comment><AUTHOR> I've done a few more tests.

Let's say you were about to select the nth image. If you go to the photo app and delete, say, the (n - x)th image, then go back to the facebook app, selecting the nth image will actually select the (n + 1)th image. If you select the _last_ image, it will crash (presumably with an array index out of bounds.)</comment></comment>


Gift HN: I'll build your project/MVP for free - <AUTHOR>

First of all, thank you HN for getting me started on my dream of being a coder. I started november last year with Udacity's CS 101 and followed up with Steve Huffmans Web Development course. For the past year I've been learning Javascript and played around a little bit with Django and Objective-C building projects for friends, and I'm really having a lot fun with it.
I was recently about to embark on my first large challenge of helping a friend build a dating site for a niche market, but he pulled out in the last minute. So now I have two months with a lot of spare time which I'd like to focus on doing a fun programming project. Unfortunately I don't have any good ideas atm and I rather help somebody with a real problem.
So my offer is: If you have a real problem you'd like to solve, or a product/app you'd like to create, I'd be happy to help you out. My main condition is that this is something you really will want to use, so I can get feedback from real users. I make no guarantees regarding code quality, it'll most probably look like spaghetti under the hood. My biggest strength is just that I love coding (and am good at googling), especially for people who really need it.
I have no idea if this is a good idea or not, but I thought it could be worth a try. Merry Christmas :)
//Jonas mail: bolin dot jonas at gmail dot com <comment><USER2> Would you be willing to work on Ugly Crush, a fun dating website idea I had but no time to do it.. The problem is that dating is boring and everyone has fake photoshopped/instagrammed pictures of himself. The idea is to make people put pics of themselves where they are not in their advantage,

<comment><AUTHOR> Sounds like a fun site. Do you think people would actually use it for dating (because of it's honesty), or just to look at funny pics?

<comment><USER2> The aim is that they will come for the fun part (lol check out this guy) , and stay for the cool part (dating, guys don't care if a girl is cute or not at least that's what they say here in France). The ugliest photos will be rated and everything, well it's an idea, feel free to contribute. What do you think ?

</comment></comment></comment><comment><USER3> No matter what you do - be sure to post it up on HN (maybe even blog about it as you go). Would love to see what you end up with :)</comment>


Dozens of new craters suspected in northern Russia - <AUTHOR> http://siberiantimes.com/science/casestudy/news/n0127-dozens-of-mysterious-new-craters-suspected-in-northern-russia/ <comment><USER2> I wonder how much gas is released in these events and the implications on global warming.

<comment><USER3> There is tons of carbon based gas (such as methane) trapped beneath the ice which will be released into the atmosphere. Gas which was trapped down there about 50 million years ago when a weed infestation erupted and by way of chemical reaction turned a mostly carbon-based atmosphere into a mostly oxygen-based one.

Implication on global warming? I'm going to up that one a little bit with Chemistry 101: what happens when C, H and O will react with each other on a truely massive scale. And I mean _truely_ massive scale.

Here's a small hint: The human species will certainly become the next dinosaurs.

Or in the words of climate scientist Jason Box: "If even a small fraction of Arctic sea floor carbon is released to the atmosphere, we're f'd." ([https://twitter.com/climate_ice/status/494146188514693120](https://twitter.com/climate_ice/status/494146188514693120))</comment></comment>


Anonymous attacks Sweden - <AUTHOR> http://www.thelocal.se/43602/20121003/

<comment><USER2> Someone posted something dumb on 4chan and this newspaper called the cops to create a story. Nothing going on here folks, move along.</comment>


Automated testing to discover quiet API changes - <AUTHOR> http://inkdroid.org/2016/04/02/follow/ <comment><USER2> Yep, I've been working with Facebook's marketing API, and the integration tests have been a bottomless box of surprises. The test suite actually has to put up a bit of money to run, but whenever possible, it deletes / cancels whatever it is running before the money actually gets spent. Sometimes the test suite will run fine for days, and then just fail with a vague error code. I suspect that it is tripping some sort of abuse identification algorithm, but the failures always seem so... unique. The only thing that all of the failures have in common, is the vagueness of the error message / error code explanation.

I've put integration testing on hold until FB finishes their sandbox, which might be never.</comment>


Show HN: Personalized content & behavioral targeting boost sales/conversions - <AUTHOR> http://www.conversionly.com

<comment><USER2> This looks like it could be quite useful. I do think the site would benefit from the addition of case studies. If you don't want to publicly share any on a blog, you could set up an email opt-in to receive them.

</comment><comment><AUTHOR> I would appreciate feedback for my new startup.</comment>


Verizon to take on Netflix with Web service - <AUTHOR> http://www.reuters.com/article/2011/12/06/us-verizon-paytv-idUSTRE7B527L20111206

<comment><USER2> I wish verizon would just stick to being a "pipe." As much as I would appreciate a competitor to netflix, it just seems like there would be an enormous temptation for verizon to throttle down netflix (or other media services) while throttling up their own offerings.

Don't forget that this is a company that is happy to shamelessly rake-in pocket change selling stupid overpriced ringtones to kids and thinks nothing of permanently installing annoying crapware on their android phones.</comment>


Replace macOS with KDE on a rock-solid base - <AUTHOR> https://neon.kde.org <comment><USER2> Looks like white Windows 8 ? The recent discussion about Elementary OS [1] showed good aesthetics and positive response [2].

Honest question, does it bring any significant benefits apart from being on 'The latest and greatest of KDE community software packaged on a rock-solid base.' ?

[1] [https://elementary.io/](https://elementary.io/) ( A fast and open replacement for Windows and macOS )

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

<comment><AUTHOR> I would recommend Elementary OS to non powerusers because of the easy look and feel. KDE neon is also based on Ubuntu (Xenial LTS) but has way more stuff and tweaks. Just try both

</comment></comment><comment><AUTHOR> As a long-time user of KDE neon i can only say that it is a brilliant mix of Ubuntu Xenial and KDE. If you have questions about using it...just ask.

<comment><USER3> I'm looking at putting together a gaming/multimedia pc soon. Would it be easy to use or configure the KDE environment to suit a TV screen?

<comment><USER4> What kind of gaming do you mean? Linux is still a somewhat... masochistic choice for that.

<comment><USER3> Most of my gaming is paradox games, which all run on linux. The rest I could live without.

Might even be a good thing to end up buying less games that I don't play anyway.

</comment></comment></comment></comment><comment><USER5> How does this differ from other distros in a way that people migrating from macOS (as the title suggests) should prefer this one?

<comment><AUTHOR> Always the latest and greatest KDE applications und OS updates based on a rolling release (but the core is Ubuntu Xenial LTS). I guess there is no easy way to migrate a whole macOS system to a Linux based one (like having a iOS app that states "Click here and all data is being migrated to iOS from your old Android phone")

</comment></comment><comment><USER6> I've never actually considered using KDE (Plasma in the early days was really laggy), but seeing this posts makes me want to actually try KDE Neon. I guess it's time to dust off the trusty ol' netbook.</comment>


CRISPR gene editing can cause hundreds of unintended mutations - <AUTHOR> https://phys.org/news/2017-05-crispr-gene-hundreds-unintended-mutations.html <comment><USER2> I'm a programmer who's been programming for a long time. The worst type of project for me is to go into a pile of code and start making changes. Many times I can get away with it but most of the time I pay by breaking the code then or finding the trouble later.

The genome is no different. If you make changes at one point you're bound to get unintended consequences. This article does not surprise me. The big problem is that we can't back up and start over.

We think now that global warming or nuclear weapons are the problem but the real threat is something we don't expect. Like screwing up our biological environment by changing the genome without knowing enough about the consequences.

Does anyone know how to backup and restore that?</comment>


Ask HN: Why are modern Intel CPUs not getting a lot more cores? - <AUTHOR> As we move to further process nodes, I presume we have more surface area to put cores in. About a decade ago, people used to say we'd get CPUs that have the same clockspeeds but have a lot more cores. When I look at Skylake and Kabylake (rumors), I don't see the number of cores increasing (we seem to be at 2 for laptops and 4 for desktops). I know there are some SKUs like the 6850 with more, and of course, there arr Xeon chips. But .. why are desktop processors not getting beefier over the last 5-10 years? <comment><USER3> 1) Nobody writes multi-threaded code

For user applications multi-threading is overkill. It's hard to write, and there are very little benefits the average user will see. Good concurrency isn't even that important on servers. You can trash your cache and interrupt tables but you'll still handle 10million clients per node so nobody cares. Great concurrency is really only practiced in HFT and HPC.

2) Modern hardware/OS's suck at multithreading:

IO interrupts are normally handled on 1 core. While you process data on any core. This causes some non-trivial caching issues. Furthermore putting 2 10GBE nic's on the same core can prevent you from actually using all 20GBE of bandwidth you have because the processor literally isn't fast enough. Then you need to set affinity for epoll thread, etc. etc.

3) Amdahl's Law: [https://en.wikipedia.org/wiki/Amdahl%27s_law](https://en.wikipedia.org/wiki/Amdahl%27s_law)

Every time you double the number of execution units, even if your calculation gets twice as fast, the improvement factor constantly decreases. Take for example a 60 second calculation that can be fully parallelized

           1 units: 60sec
           2 units: 30sec
           4 units: 15sec
           8 units: 7.5s
           16 unit: 3.75s
           32 unit: 1.87s

The transitions between 8-16-32 really show you the effect coming into play. Yes the calculation is being done faster. But the overall change from 8 to 32 units saves you ~5.63seconds, while using 4x the resources.

<comment><USER4> 1) I think this argument is plain wrong. It is incorrect that EVERY APP should use ALL CPUS. Rather, different apps use different cpus --> less interrupts --> speed up.

2) I think they are actually very good at what can be done by now. How do you think they are so bad?

<comment><USER3> 1)

Yes, but then you need to manage IO thread affinity, this isn't commonly done. Also you need to manage what is running on which NUMA node as often on 2 node systems 1 is almost never interrupted except for cross CPU conversation.

Facebook moved to Single Socket Xeon-D's rather then bake task affinity to their HHVM run time. So yeah, people still screw this up a lot.

2)

The main answer to concurrency these days is to just swap thread stacks in userland when ever something blocks. Yeah this works fine, but it's no different then what the kernel does for you. The stack is just smaller, the swapping is baked into the user land program. So you end up breaking most debuggers, and your C-FFI gets very slow.

This isn't any faster then what the kernel is doing. It's just the language run-time limits stack size so the swapping happens faster. Setting smaller stack sizes and using Thread Groups yields similar performance.

</comment></comment></comment><comment><USER5> AMD tried and failed. Multiple cores is what the FX is all about. What's the one type of application that drives processor sales on the desktop? Right, games. What's one of many types of applications that do profit more from fewer stronger cores than from more slower ones? Right again, games.

That said, over the last 5 years processors did get beefier. They just did not got more cores. The i5-2500K (from 2011) is slower than the i5-6600K, both have 4 cores though. But if we go back 10 years, we are looking at the Core 2 Duo, those had only two cores.

And games are also changing. Not too long ago you could still play games (like Fallout 3) with a single core. New games (like Fallout 4) rely on the processor having multiple cores, some don't even start with a dual core (Hyperthreading is needed then and saves the i3). And games supporting DX12 (and probably Vulcan) work better on the FX processors than those using DX11. More cores become more useful now, and processors will have to add more of them also in the consumer desktop area soon.

<comment><USER6> > AMD tried and failed.

What's your personal definition of "failed"? AMD may not be the market leader but for the same price, their multicore processors are far better than Intel's offering.

Old games that haven't been properly designed to take advantage of more than 2 or 3 cores don't benefit from AMD's 8-core processors, but calling a marketing issue a failure, particularly a technical one, is simply disingenuous.

> Multiple cores is what the FX is all about. What's the one type of > application that drives processor sales on the desktop? Right, games. What's > one of many types of applications that do profit more from fewer stronger > cores than from more slower ones? Right again, games.

False dilemma. All processes take advantage from faster cores, but more cores don't mean faster cores. More cores offer the ability to run more processes concurrently.

If an application isn't developed to take advantage of the available cores, you end up with a system where over half of the available computational resources remain idling while only 3 or 4 are taxed.

Inefficient software isn't a hardware problem.

> And games are also changing. Not too long ago you could still play games > (like Fallout 3) with a single core.

That's precisely the issue. Game developers need to target the computer hardware that gamers use, and the computer hardware that the average gamer uses is very old. For instance, let's look at Steam's hardware and software survey:

[http://store.steampowered.com/hwsurvey](http://store.steampowered.com/hwsurvey)

Nearly half of the hardware runs with less than 2 cores, and around 95% runs harware with up to 4 cores.

Yet, AMD offers 6 and 8-core processors, which appear to be used by less than 2% of Steam's gaming community.

Why would video game developers spend their resources designing software that take advantage of the available computational resources provided by AMD's 6 and 8-core line of processors if this only impacts less than 2% of the gaming community?

Therefore, games keep being developed based on constrained hardware requirements.

But this is by no means a technical failure on behalf of AMD.

<comment><USER5> > _What 's your personal definition of "failed"? AMD may not be the market > leader but for the same price, their multicore processors are far better > than Intel's offering._

They are not. I talk mainly about gaming performance here, because it's the one thing where cpu performance actually matters for a relevant market. Have a look at [http://www.techspot.com/review/991-gta-5-pc- benchmarks/page6...](http://www.techspot.com/review/991-gta-5-pc- benchmarks/page6.html) as an example. The i3-4130 (that wasn't even their fastest i3 at that time) as fast as the FX-6350, the FX-8350 slower than the old i5-2500K. AMD has not one processor that can compete with an i5-6600K in current games. It's not like you can't play modern games with an FX-8370, but with that you pay as much as with intel, you get worse FPS and your processor uses more energy. Ah, and you buy into a dead socket.

Other criteria for failure: Market share. AMD has a little bit more than 20% of the PC-gaming market, [http://store.steampowered.com/hwsurvey/processormfg/](http://store.steampowered.com/hwsurvey/processormfg/). It gets less and less since the disastrous FX started.

> _Inefficient software isn 't a hardware problem._

If you want to sell your hardware of course it is.

> _Why would video game developers spend their resources designing software > that take advantage of the available computational resources provided by AMD > 's 6 and 8-core line of processors if this only impacts less than 2% of the > gaming community?_

Despite all, the FX-6300 is a popular processor. I highly doubt that number. The FX line can't have sold that bad.

> _But this is by no means a technical failure on behalf of AMD._

I'm not talking technique. I'm talking about performance, both in real existing applications and on the market. In both the FX was a disaster for AMD, and I really hope the coming Zen-Architecture can make AMD relevant again. A Intel-Monoculture would be horrible, as is already visible in prices and customer-friendliness of the offerings.

</comment></comment></comment><comment><USER7> Memory bandwidth is another issue. What people forget in the recent deep learning pissing match between Intel and nvidia is that memory bandwidth limits mean the difference between optimized CPU, GPU and FPGA systems is not that much.

<comment><USER8> Memory bandwidth is _the_ issue for scaling CPU cores. Very, very few problems can saturate 32 cores worth of computational work with the N-channel DDR memory, so there's no reason to design a Xeon or Opteron with more than that many. There may be challenges related to N-way cache coherency too.

> memory bandwidth limits mean the difference between optimized CPU, GPU and > FPGA systems is not that much.

Well, not really -- the enormous memory throughput of GDDRx is much of what's fueled the growth in the GPGPU market over the last decade.

</comment></comment><comment><USER9> They are, but in the GPU.

GPUs handle the tasks that can be easily parallelized better than CPUs. Many supercomputers are now made from GPUs.

I have a theory that we will gradually favour business and societal forms that _can_ be easily parallelized, i.e. on GPU.

BTW intel's growth focus is on ASICs (application-specific integrated circuits) - effectively, code pushed down to silicon. [https://news.ycombinator.com/item?id=11287511](https://news.ycombinator.com/item?id=11287511) And will integrate them in future Xeons [http://www.pcworld.com/article/2921832/intel-looking-to- boos...](http://www.pcworld.com/article/2921832/intel-looking-to-boost- horsepower-on-server-chips-with-asic-integration.html)

</comment><comment><USER10> Because common desktop applications still don't do much with multiple cores, and thus a few fast cores are better (and techniques like TurboBoost are useful, where cores sleep to free the energy budget to allow a single core to clock even higher). And for many things, CPUs have been fast enough for quite a while now.

So the common CPUs have only a few cores, people who really want more get to pay the premium for the gamer models or Xeons, since they don't really have alternatives, and Intel knows that ;)

For servers, you can get CPUs with 4-16 small(er), low-power cores instead of a few large ones. (Atom C2xxx, Xeon-D)

<comment><USER11> How many applications are actively running on a modern desktop? The kernel and GUI... The modern browser with Javascript engine? An always listening Cortana or Siri would be nice for many people. What's the current threading on modern games? I'd think at least 8 cores could be utilized.

<comment><USER10> But could they be better utilized than 4 cores with the same energy budget and cost?

Most of the time, most applications use barely any CPU at all. What you really feel is the moments when a single application suddenly needs a lot of CPU, and when it isn't parallelized it wants a single fast one, not several slower ones. I almost never see my system under 100 % load, but I regularly see processes maxing a single core.

<comment><USER11> You'd think most apps could be built to utilize at least 2 cores, instead of pinning just 1 core.

</comment></comment></comment></comment><comment><USER12> The move over the last few years has been towards mobile, and decreasing power consumption.

So over the last ten years or so, Intel has responded to this realisation by, inter alia, using the extra transistor budget afforded by Moore's Law to move more and more of what was once on the chipset on die.

This is, practically, a much better use of silicon than simply adding more cores.

<comment><USER13> Intel has responded to this realisation by .. giving up on mobile, for the time being.

(The integrated graphics are getting quite acceptable and we're starting to see PC-on-a-stick and cheap Intel tablets as a result, but I'm not sure how big a market that is)

<comment><USER14> Actually, the Iris branded GPUs are quite impressive, considering that they are essentially a co-processor inside the chip and they pull over 800 GFLOPs of compute power.

[https://en.wikipedia.org/wiki/Intel_HD_and_Iris_Graphics#Sky...](https://en.wikipedia.org/wiki/Intel_HD_and_Iris_Graphics#Skylake)

</comment></comment></comment><comment><USER15> You can put Xeon in desktop motherboard like with X99 chipset. I myself recently got 22 (44 threads) core one, but for day to day tasks it doesn't make a difference and it is quite expensive. If there was a larger demand then perhaps we could see more of these.

<comment><USER16> what kind of workload did you intended to you use this beast for ? I really wish i had a use case to buy on of those :).

How did you decided to go with the X99 chipset instead of the c230/c236 (traditionally used with xeons)

<comment><USER15> Mainly for making music, some plugins that are doing simulations are very computationally expensive, so it is not possible to run many instances in realtime using typical 4-core PC. So multicore cpu like in my case helps a lot with this. Another thing is that I use a lot of virtual machines for my work, so it is handy to have when launching a lot of them etc. You also get the benefit of having more memory slots available. In terms of X99 - I had i7-5820K cpu which I was maxing out all the time and since X99 is supporting XEONS as well, i decided to keep it for money reasons :) I could also keep non-ECC memory, so that was a plus.

</comment></comment></comment><comment><USER17> Caches.

Xeons and the like dedicate much of their transistor budgets towards larger caches.

If you take that budget for caches and put it towards more execution units, you get the equivalent of Xeon Phi which is a lot of Pentiums built on today's fabrication processes.

<comment><USER18> With the normal Intel Core CPUs, they seem to often have a _huge_ amount of their chip area / transistors taken up by integrated graphics. Which could be a bit depressing if someone gets one and doesn't use the IGP.

<comment><USER19> IT seems to me a lot more enthusiast desktops are using xeon processors instead of cores, this being one of the reasons people are making the swap- you gain a lot of performance/$$ because loosing integrated graphics saves a fair amount of money. The average user still needs integrated graphics though, so I don't see the core ever going away. Who knows though, they might come out with some enthusiast grade core processors that don't have int graphics.

<comment><USER18> Hopefully said enthusiasts take the opportunity to now use ECC RAM! It's rather hostile that the consumer lines are fenced out from correctness- promoting technology.

</comment></comment></comment></comment><comment><USER20> They actually are doing more cores... For now, they integrated the Phi chip into a real cpu. Give it another 2-3 years then this tech will come to consumers (very likely I think).

[http://www.anandtech.com/show/10553/asrock-rack- launches-2u4...](http://www.anandtech.com/show/10553/asrock-rack- launches-2u4nf-x-200-knights-landing-xeon-phi-cpu)

And I completely disagree with that consumers don't need many cores... That would be paramount to saying that consumers don't need GPUs. One of Intel's core arguments for bringing Phi to the masses is realtime raytracing (something for which normal GPUs suck bad). Also NVidia is working on a Phi- kind-of-thing as their next generation GPU. So we are getting there, but it was a long journey from 2006.

<comment><USER21> Interesting. Could you provide some links to nVidia's next generation GPU to be a Phi-kind-of-thing? Just curious.

</comment></comment><comment><USER22> A balance needs to be striken between the consumers of data (OOO execution, multiple issues, HT threads and multiple cores), and the providers of data, the cache subsystem (and memory etc).

Bigger caches that would be required by more cores in order to keep the "usefulness" of the design in balance, would lead to higher power consumption, which a) is a primary criterium of evaluation of the product such as laptops, even before the computing power; b) not justified given typical "office+home" workload, as already mentioned in the answers.

<comment><USER23> Also could it be that bigger caches would require more coherence-logic (or even a more complicated/congested cache-bus), making everything slower, and eventually negating the advantage of more cores?

<comment><USER24> You can make cache coherence scale to multiple cores with precise tracking and the overhead of precise tracking can be reduced by arranging your cores as clusters.

Exact tracking basically requires a bit field with one bit for each core. The problem is with the storage overhead since a 64 core cpu would need 64 bits per cache line. However if you had a 64 core CPU you could partition it into 8 clusters with 8 cores each which means you only need 8 bits per cache line for exact tracking.

[http://www.cis.upenn.edu/acg/papers/cacm12_why_coherence.pdf](http://www.cis.upenn.edu/acg/papers/cacm12_why_coherence.pdf)

</comment></comment></comment><comment><USER25> Thoughts: \- Diminishing returns in performance per core because some tasks are truly serial, not parallel. \- It costs money - putting stuff on silicon costs money. The only justification for spending more money is that you will make it in revenue. \- The PC market imploded. Lenovo has killed the laptop and PC market, and soon will be entering the server market. Expect the end of the server market in the next 5 years or so. There is a lot less money to go around. \- Moores 1st law (there are several) is hitting a wall, that is what drove the multi-core approach. They couldn't double the clock speed, so they effectively added to the clock-count. \- There is on-die architecture including routers and memory busses. They have capacity limits and tend to be the performance limiters for max temperature. They might be the limiting technology. \- Low power is important, as is low heat. More cores (aka more ALU's means more heat and higher power use. \- The more components, the easier for something to go wrong. \- Gartner says the next big money is in IoT, not massively parallel on the PC. (It seems google beat Intel to a machine- learning ASIC, and deep learning seems to be a decent market right now - <USER2> because Gartner didn't say it the Intel leadership can't hear about it).

</comment><comment><USER26> All the answers about more cores not being that useful for desktops are true, but there is also the fact that Intel doesn't want to cannibalize its high margin Xeon business by selling high core count cheap desktop CPUs.

Finally for desktops, and especially for mobile, the die real estate is probably put to better use by incorporating a larger integrated GPU.

</comment><comment><USER27> I agree with the "less core but faster processors are what is most useful on desktops".

But I ask, has anyone one or any language made the number of processors/hyperthreads transparent? Ideally I would just create a thread and some load balancing system would distribute it to the correct processor. Am I just behind the times?

<comment><USER28> On a small number of cores Erlang does this. That's why actors can be in the thousands and still performant.

<comment><USER29> Also Go language.

</comment></comment></comment><comment><USER30> If the desktop has four cores now, then it has double the cores of a few years ago when two was standard and that was double the number of cores 'anyone' had ten years ago: desktop Conroe chips started shipping in 2007. Which means the number of cores has quadrupled in less than ten years.

</comment><comment><USER31> This is my current understanding:

Mostly down to poor support for multiple cores in software, a lot of which have some kind of legacy heritage, and some tasks not translating well to running in parallel. Take video editing, for example - generally a single task the requires straight-line speed on one core, while the rest sit idle. Games are the most intensive for multi-core CPUs, but gamers usually buy top-end components, up to and including Xeons.

If anything, we tend to have a glut of CPU performance for day to day tasks. Even low-grade CPUs like Celerons are capable daily-use machines; some tech people (a friend included) see no reason to go beyond an i3. The multi-core paradigm shift around 2005-6 also massively increased CPU efficiency over anything that came before, reducing the need for existing applications to be reworked to exploit the extra cores. Intensive Javascript on sites can really drag your browser down, but even Chrome only runs one process per tab, and few people work with more than one tab at once. Multi-cores therefore tend to take care of background tasks, with only one core at a time doing all the heavy lifting. For one of the best examples of multi-core not being the ideal solution, one need only look at the Playstation 3. The 7-core (I think?) CPU is extremely powerful, but very, very difficult to program for, creating real headaches for developers trying to exploit its potential.

Multi-core might have drastically improved power efficiency, but it hasn't completely solved the heat generation problem. With the Prescott P4, Intel realised the core was generating so much heat it presented a serious problem to cool it. Cramming 10 of those on a single die would probably cause a China Syndrome. Adding cores allowed manufacturers to clock each core lower and still crunch a similar amount of numbers while reducing the heat output, but this sacrifices straight-line speed for single tasks. Ergo, AMD and Intel have to compromise for their consumer-grade products - enough straight-line performance that it doesn't feel slow for the current task, and enough cores to keep the throughput high. Looking at the current Xeon E7 v4 series, for example, increasing the core count above 4 results in a decrease in clock speed, likely entirely down to keeping the heat under control.

Add into this, laptop sales overtook desktops sometime around 2010, which require lower power consumption above all else. You could put a 16-core CPU in a laptop, but to keep power consumption realistic each core would probably end up clocked slower than a Pentium II. Further to this, a second shift occurred a year or two later where tablet and phone sales outstripped laptops. Mobile devices based on ARM CPUs are very power-efficient for all but the most demanding tasks. I know several people who've ditched laptops altogether and use Android or iPads exclusively. Essentially, current consumers have no need for the higher number-crunching capability of a desktop, which in turn means the traditional market for Intel and AMD has shrunk noticeably. ARM CPUs are starting to come standard with 8 cores, and it's difficult to find a current device with less than 4, all helped by the ARM architecture's power efficiency. Because they run an OS designed specifically for low power, not for general purpose, the cores can be clocked lower.

A lot of factors, but as noted, Intel and AMD are still improving their CPUs, just not by cramming more cores into the same die.

</comment><comment><USER32> I am the proud owner of a Xeon 12/24 3.0Ghz. It's the best one!

Some people like hot-rod cars.

I don't use a GPU like normal people do. Graphics are great for parallel execution. (Obviously)

If everybody owns a Xeon 12/24 then you can make real-time software that requires it. There's not a chance any software will be written until most people have it.</comment>


Ask HN: When management say they want something to happen repeatedly, does it? - <AUTHOR> I worked at several companies where management ask for something to happen, either as a once off or as a continuous thing.
Often as not it would happen once or twice but never again.
Is this a familiar experience for anyone else? <comment><USER2> If they have to repeat themselves, it's probably not going to happen. Or management simply likes the sound of their own voice.

</comment><comment><USER3> Whatever you reward, you get more of. Not what you say you want.</comment>


The Mac's iconic startup chime is back in macOS Big Sur - <AUTHOR> https://www.theverge.com/2020/6/23/21300545/apple-mac-macos-big-sur-startup-chime-sound-back-return <comment><USER2> As long as you turn it off I'm happy. My work Mac makes too many invited noises.</comment>


Linotype: Letterpress game engine for Ruby - <AUTHOR> https://github.com/barelyknown/linotype

<comment><USER2> It's case sensitive and has related problems in finding words. Entering all lowercase letters recommended.

While I'm sure it was a fun exercise to build it and there will most likely even be "helper apps" appearing on the App Store soon, I frown upon these. Letterpress will lose a lot of its fun once cheating takes over.

<comment><USER3> I was thinking that an app where you could take a picture of letterpress screen and it would use that and with some strategy (in terms of defending letters) would be fun project to make. Maybe more than playing the game :)

<comment><USER4> I have done that with Spelltower (: <https://github.com/flixic/spelltower>

</comment></comment></comment><comment><USER5> Implementing a Letterpress cheater in Python took me around 10 minutes. Computers are very fast nowadays: <https://gist.github.com/3968275>

There is no need for a whole game engine if you want nothing more than to know the best possible word to play each turn. It will be enough to win with 99% of people. If you want to win a Letterpress AI tournament, you would of course need to look at alpha-beta and other algorithms.

</comment><comment><USER6> I made my own primitive helper. <http://inarticulate.eu/letterpress>

</comment><comment><USER4> Neat. I'm working on JS-based word suggestion (=cheater) for Letterpress, and there were a few bits from here that I might borrow.

</comment><comment><USER7> I'd love to hack on this to extend it; do you plan on writing any tests for it?</comment>


How you 'attach' to people may explain a lot about your inner life - <AUTHOR> https://www.theguardian.com/science/2020/jan/10/psychotherapy-childhood-mental-health <comment><USER2> As someone who didn't have many healthy attachments growing up and has spent a lot of time with a wide variation of therapies. I agree with the article, many different therapies can fix people and I've found it better to have more than one type of therapy. I believe at the root of it is a mindset which centres around the cultivation of self-leadership.

My multi-year long journey of what I learned and getting back to health - which most visibly manifested itself as CFS symptoms (Post exertional malaise) - can be summed up as:

Trusting the therapist and understanding they are not perfect humans themselves. Accepting they are not going to fix me, they are a companion on the journey, I must fix myself with their help.

Going on a journey through all major points in my past and re-experiencing what I'd been through. Whilst having the therapist with me to slowly help unfold the emotions and understand it from a different perspective (i.e. I did not cause the bad things that happened to me, it was not my fault).

This helped me build a foundation, a place of support that didn't rely on other people, which gave me self-confidence to listen to the negative self- talk that I had blocked off for years, because it was too overwhelming to hear. When I started listening to this self-talk, I could then start to converse with it. e.g. "You aren't good enough", "Perhaps I'm not, but let's see what happens when I apply my focus to it", which started taking away its power and effect over me.

Which led me to realising that my intellect and conscious part of my mind is probably only in control of 20%-30% of me. That I'm not a fully logically creature and that I needed to come to peace with my body's needs and messages from my less conscious mind and work together as an integrated whole, rather than trying to force my will based on pure 'rational' thought.

Life has been considerably better since and my decades of depression and low energy have begun to abate.

Whilst the points may seem simple, understanding like this rarely comes from knowing in the conscious mind. It is understanding that has to be understood at a deep level, which is why therapy can take a long time. My favourite way of describing this conscious acceptance but lack of sub-conscious understanding can be summed up as: "I know that, but try telling me that".

<comment><USER3> Your comment regarding your intellect and the conscious part of your mind only controlling about 20% - 30% of you is super interesting. I'd love to hear more specifically what made you come to that conclusion, as I've experienced a similar insight. Mine came from an overdose of marijuana ironically enough, but it gave me just enough perception of the feeling of two minds. I don't think I'll ever forget that experience.

<comment><USER2> The concious mind controlling 20-30%, in itself was not that much of a realisation, I would suspect a lot of people could agree they are not fully in control of themselves. So the understanding of that I'd known for a long time came from many sources.

But the difference in understanding that at superficial level vs being able to experience that at a deeper level, is what caused changes to my behaviour at a deeper level and is the real revelation.

As to how I experienced that, I would preface this by saying that this is going to be very unique for everyone depending on how your mind communicates with itself so I won't go into the exact process for fear of someone trying to emulate my path exactly (self-leadership is more important than being led). It is something I came up with myself rather than a specific therapy (again, self-leadership)

After many many sessions of eventually being able to see and feel the parts of myself pushing against each other. I began to see the person that I thought was me, which was the 'cleverest part', that was centered in the front part of my brain and that denied listening to the rest of my body. Was really a small piece of a whole. When I realised I could move my observation and inhabit different parts of my mind and body that is when I knew I wasn't leading the show in the way I believed I was.

I could see I didn't have control of the other voices or feelings that were inside of me. They would express what they wanted. I could either deny, accept them or attempt to change it if I thought that part was maladjusted and needed help. An example of a maladjusted response might be wanting to apologise for being abused or feeling shame for things that I had no control over.

<comment><USER4> Can you elaborate on identifying the various parts that push against each other? What are these parts? Voices or something more subtle like desires or aversions?

As an aside, based on various therapies I've worked out my method of emotional acceptance of past events and traumas which has and is helping me to accept and integrate them, but it still feels crude. I catch any strong emotion and then observe it and allow it and accept it. Sometimes it's tied to a seemingly trivial memory(my mind trick is that the memory is not actually trivial) which I can look at and integrate and accept as well.

</comment></comment></comment></comment><comment><USER5> I had three different therapies in my life so far. The first one was a bad experience, the other two helped me a lot. I like both therapists but never felt like we are close or connected in any way this article writes about.

Always I knew I'm dealing with a professional. I saw other patients leave the room before my session started. We needed to look for an appointment because of vacations and stuff, it was always just a person doing his job.

And I'm fine with that. I also think it is necessary to have a person who is not too close to you helping you some times. Family members and friends want you to have as little pain as possible and doing better as fast as possible which is natural but often not the right thing.

"On this view, the good therapist becomes a temporary attachment figure, assuming the functions of a nurturing mother, repairing lost trust, restoring security, and instilling two of the key skills engendered by a normal childhood: the regulation of emotions and a healthy intimacy."

The therapist can't repair lost trust or security, only you can. A good therapist will help you do that.

<comment><USER6> A personal question, if I may.

I think seeing a therapist would be good for me, I have issues I'm struggle to fix myself but how does the conversation even start ?

What I mean is, I can go to a regular doctor for a regular problem and he will say "what is the issue?" and I can explain it pretty clearly even if I don't know the underlying cause. e.g. "My leg hurts here when I move it in such a way"

But I can't imagine how this conversation starts with a therapist. If they asked me what is wrong, I genuinely don't know. I don't know where to point to the pain. Then I just see myself sitting there with someone awkwardly, them thinking I'm an idiot.

<comment><USER7> Are you familiar with rubber duck debugging?

The idea is that when you (as a developer) run into a software bug you can't fix, you try to describe it out loud to a rubber duck. It turns out that the act of formulating these thoughts into speech is massively effective as a debugging method.

So my challenge to you is to revisit this statement:

>If they asked me what is wrong, I genuinely don't know.

Instead of shutting down because you don't know, just start speaking. Keep speaking. Deliberately turn off your filter. If that's hard, narrow the question. Instead answering "what's wrong?" answer "what's wrong today?" or "what's the strongest emotion you felt last week" or etc. And then expand around it. Describe the experience. Etc.

<comment><USER8> RDD works because talking is really powerful. Ever had to teach a class on something you thought you knew? The act of turning an amorphous blob of 'knowledge' into a linear presentation will often show you that you didn't understand things as well as you thought. The therapist's "Tell me more" forces you to tease out of the blob the distinct threads of the issue.

Journaling can also be useful in forcing you to produce words that describe what's going on, but it's also easier to slack off when there's nobody else in the room. If you worry about what you'll say in a therapy session, start writing and you'll likely come up with plenty to talk about.

<comment><USER9> RDD works because most of the people really don't understand what they don't understand without a direct linear thinking about the problem. They have this blob in their head that creates an illusion of knowledge.

I have the same thing. Every time I start thinking "big" I need to consciously stop myself and ask "what do you not know?"/"what needs to be measured?" Instead of continuing making assumptions.

You don't need to speak to a duck to do that though. Speech has got nothing to do with your ego/laziness that makes you believe there's nothing to be done and everything can be solved by thinking.

</comment></comment></comment></comment></comment><comment><USER10> "To complicate matters, numerous studies over the past few decades have reached what seems a counterintuitive conclusion: that all psychotherapies have roughly equal effects."

The article gives a number of possible explanations for this, but not the obvious one: that the effect of psycho-therapy right now might not be more than a placebo effect. I wonder why this could not be the case.

<comment><USER11> I can understand the relationship between the two is what makes the difference. But the framework and the tools must as well.

Given the same level of trust, empathy, communication, etc, one form of therapy should give different results than other. They can't all be equal.

Unless ofc none of them do anything. I can find no other possible explaination.

<comment><USER12> > They can't all be equal Unless ofc none of them do anything.

I often think of my therapist like a personal trainer. If you get a personal trainer, and go regularly, you will get fit. The particular workout they use does not matter so much as just going. Maybe one trainer would improve my cardio more, another would make me better at lifting weights and burst strength. Either way I am going to be healthier for going.

<comment><USER11> Running and weighlifting clearly net different results. So no.

<comment><USER12> Weightlifting increases your resting metabolism, while cardio burns more calories per session. If you were doing either of these in the right ratio, and sampled weekly for total calories burned, you would not be able to tell the difference between the two.

Similarly, I'm not arguing that there is no difference between different therapies, just that the way we measure is only able to say the equivalent of "most types of regular exercise result in increased burning of calories"

<comment><USER11> Calories burned is just such a small part of exercising, weightlifting and running have massive differences in results in all other areas. Saying you can't tell the difference between the two is just ridiculous, I'm sorry.

But ok, let's just focus on the single aspect that makes your argument hold a drop of water: calories. If you try to burn as much calories with weightlifting you will end up at least overtrained if not injured (thousands of calories per day eaten by PED users does not count). Running on the other hand can get you to Auschwitz physique pretty safely.

Which brings me to another massive difference: the failure scenarios of both techniques. You can get injured and harm your health in completely different ways. Weight lifting has vastly higher injure rates. What about therapy? There is something that can influence you but only in a good way? No way to over do it or do it wrongly? And all techniques are equal in this regard as well? I can tell you another thing which has these properties of "all are equal, nothing can harm you": homeopathy. Because again, it doesn't do anything.

</comment></comment></comment></comment></comment></comment><comment><USER13> Really long article but this is the crux:

> The emotional bond and the collaboration between client and therapist – > called the alliance – have emerged as a strong predictor of improvement, > even in therapies that don't emphasise relational factors.

> Until recently, most studies of this alliance could show only that it > correlates with better mental health in clients, but advances in research > methods now find evidence for a causal link, suggesting that the therapy > relationship might indeed be healing. Similarly, research into the traits of > effective therapists has revealed that their greater experience with or a > stricter adherence to a specific approach do not lead to improved outcomes > whereas empathy, warmth, hopefulness and emotional expressiveness do.

<comment><USER14> >The emotional bond and the collaboration between client and therapist – called the alliance – have emerged as a strong predictor of improvement, even in therapies that don't emphasise relational factors.

Yeah, OK, I might buy that as much as I might buy any result associated with something as nebulous as psychotherapy. How do they characterize this, exactly?

Having good feelings about a therapist you got better from ... you probably have better feelings about a podiatrist associated with fixing your foot pain than the one who didn't as well. That doesn't mean your feelings are causal of your foot getting better. In fact the podiatrist (or therapist) might not have done anything real either; sometimes you just get better.

<comment><USER15> As the article makes clear, it is not just general good feelings, but the specific, back-and-forth interactions between the therapist and the patient.

<comment><USER14> That's great: how are these specific interactions measured? Without that being something actually measurable in the corporeal world, it's just gibberish and assertions.

<comment><USER15> Very detailed observation, in particular using video tapes.

<comment><USER14> That's not a helpful answer. What's the scoring system? What are the visual cues used, and how is it used in a linear regression model? The article is making strong claims: it never tells us what the data are, and how they differ from "well that's just your opinion, man."

<comment><USER15> The reason that the article doesn't go into that sort of thing is it was written for the general public. I am not expert in this area. I do know that over the years I have read a great many articles for the general public that refer to scientific study of infant-mother interaction. If you are seriously interested, do some research and read up about it.

Let me add that, I do understand that people in the therapy field often make claims that are unsupported by scientific research, and so I can understand that you are suspicious in this case. But this field is different, there is lots of sound research.

<comment><USER14> >I am not expert in this area

> But this field is different, there is lots of sound research.

Come on man: pick one. I read the article as you did, and it seems like a big pile of moosh, just as most things in psychology that don't involve large sums of money. If you know something about it: share why I should trust this shit other than "trust me, the non expert." If not; not saying anything is an option.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> > Things get even more puzzling if you consider the sheer number of therapies > on offer and the conflicting methods that they often employ. Some want you > to feel more (eg, psychodynamic and emotion-focused approaches); others to > feel less and think more

They all share being heard, raw, and I believe that is key.

I spent time talking with a consoler years ago to work through some personal issues, and I genuinely feel having someone there to listen in a way where I knew judgements on their part would never threaten our relationship was the true value. Being able to just tell someone how I felt about things, clearly and honestly, without the need to self censor or sugar coat - particularly in the way I would with a friend - helped more than anything else.

</comment><comment><USER17> If this resonates with you, or you're thinking about therapy, I recommend reading 'The Drama of the Gifted Child', by Alice Miller.

Don't be put off by the title, it's a great read regardless if you're think you're gifted or not. Gifted in this context means something closer to 'sensitive'.

This, together with therapy, has significantly improved my life.

</comment><comment><USER18> It's so sad to hear about mom/mother/maternal so much in that article, and so little about the father's side of things. I want to believe that I can be an emotionally-nurturing influence on my kids, it feels like such a shame that there was zero mention that a male can fulfill this role - does the science say it's not possible at all?

Otherwise a great article and some sections certainly did resonate.

<comment><USER19> There was a halfhearted attempt to remind that this figure doesn't have to be the mother:

"By contrast, children of unresponsive or insensitive caregivers form insecure attachment. They become anxious and easily distressed by the smallest sign of separation from their attachment figure... Finally, children with abusive caregivers become disorganised: they switch between avoidant and anxious coping, engage in odd behaviours and, like Cora, often self-harm."

So this is an implicit acknowledgement that the gender of that early caregiver matters less than that they are nurturing.

But I agree, the article is remiss in explicitly making mention that the gender of the early caregiver does not matter - especially given that the other half of the article is devoted to a male-female relationship (Cora and her therapist) which _clearly_ contradicts the assumption that this needs to be a mother-child.

Personally, I would have loved to see mention that even those with one stable caregiver can still develop issues when the other caregiver is _not_ stable, or worse: that the other caregiver does not care. That often results in a person forming good relationships with their friends, but having a different (worse) standard of conduct towards their romantic partner - e.g. a child who sees their same-gendered parent [physically or verbally] abused, and once an adult, enters into an abusive relationship because that is what is normal to them in regards to the "other" gender.

</comment></comment><comment><USER20> Probably a mistake to treat parenting styles as exogenous. Parents respond to their child's temperaments too. It's easy to be attached to an easy-going child. A kid that's always crying is going to wear you out.

<comment> caleb-allen Perhaps a kid that is always crying is attempting and failing to communicate pain or discomfort.

I've been told that I was a miserable newborn--I cried nonstop for months and months and my screams made everybody around me miserable too.

My mother was told by family that I needed to cry it out, but 6 months on there was no difference. I was taken in to the hospital and was found to have had a hernia which required surgery.

After surgery, I'm told, I was absolutely quiet and unproblematic. Through the rest of my childhood and teenage years I was the 'easy-going' kid of the family. Through therapy I have learned that my attachment style is avoidant, and I have no doubt that this early experience (among others) heavily influenced the way I process emotions and feelings.

It isn't that I was a naturally 'easy-going' kid, or that I didn't have the troubles that my siblings had. I felt things, but my experiences taught me not to express them. I formed a tendency to over-intellectualize my experience and, in retrospect, heavily suppress negative emotions and even physical pain. My nature was not to seek out help when I felt immense pain, but to persist with self-reliance, at all costs.

Like the commenter above, therapy has done wonders for me in learning to recognize my feelings and having the capability in processing them in a healthy way.

I am not a parent and so I can't speak to the difficulty of a child's temperament; I have no doubt that one child's personality might be much more difficult to handle than another. A parent is clearly going to be affected to their children's temperament, but the parent is also responsible for teaching the child how to process those emotions, and is significantly more equipped in dealing with how the child affects them than the child is at dealing with how their parent affects them.

</comment></comment><comment><USER21> This is a good and interesting read regardless, but I'll just point out that when studies are properly controlled for confounders, the "relationship with the early caregivers" matters much less than we want to think. Maybe not even at all.

What shapes us are our interactions with our early peers. This makes sense from a hunter-gatherer point of view too; those are the people we will spend almost all our life with.

I highly recommend reading _The Nurture Assumption_ for more on this. The author effectively argues with evidence for why relationships with parents are nothing more than relationships with parents.

It really opened my eyes both for things that went on in my upbringing, the upbringing of people I know, and taught me what is going to be important as I raise my son.

<comment><USER22> The existence of several attachment disorders, where insecure parenting styles and resulting poorly developed attachment has been irrefutably shown to be the cause of the disorder, refutes any claims that "the relationship with early caregivers might not matter at all"

For an extreme result of poorly developed attachment see [https://en.m.wikipedia.org/wiki/Reactive_attachment_disorder](https://en.m.wikipedia.org/wiki/Reactive_attachment_disorder)

Several comments here are dismissive of attachment theory and the importance of proper development of attachment. I don't really know why but it might be the unfortunate existence of the pseudoscientific "attachment therapy" which has nothing to do with what the article is about:

[https://en.m.wikipedia.org/wiki/Attachment_therapy](https://en.m.wikipedia.org/wiki/Attachment_therapy)

<comment><USER21> How does one go about irrefutably showing insecure parenting leads to attachment disorders that affect people outside of the home? Genuine curiosity.

<comment><USER22> I was too brash, of course there's no 100% guaranteed proven causality.

But "experiments", or rather observations, on for example Romanian orphanages show such strong evidence that, in my experience, this has become child psychology dogma

</comment></comment></comment></comment><comment><USER23> > _All of this suggests a tantalising alternative to both the medical > professional's and the layperson's view of therapy: that what happens > between client and therapist goes beyond mere talking, and goes deeper than > clinical treatment. The relationship is both greater and more primal, and it > compares with the developmental strides that play out between mother and > baby, and that help to turn a diapered mess into a normal, healthy person._

Oh man, pop culture is rediscovering the use of psychoanalysis, finally! Transference is so important!

> _I am referring to attachment._

Oh. God dammit.

Can't escape the vortex of "science", leading to the massive fragmentation of psychological frameworks, destroying the field's credibility.

<comment><USER24> I'd argue pop culture started catching on when The Sopranos aired

<comment><USER23> Well, Freud was big back in the day, and then fell out of favor. And psychoanalytic theory still gets used in media and lit crit (and in writing the shows themselves), but... not in what it was built for, therapy.

<comment><USER25> Last I checked it does about as well as all other types of therapies in studies.

What does it say about the theories of mind underlying the different schools of therapy that they all work about equally well?

<comment><USER23> Ah, "Studies" whose language and inventories are already rooted in particular paradigmatic understandings of psychology. I would expect psychoanalysis to do worse, in the studies, than "regular" psychology! Damning that it doesn't!

</comment></comment></comment></comment></comment><comment><USER26> (Restatement from a comment I posted previously[0] in a related thread.)

My go-to reference is

Attachment Disturbances in Adults: Treatment for Comprehensive Repair by Daniel P. Brown PhD & David S. Elliott PhD. [1]

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

[1] [https://www.amazon.com/Attachment-Disturbances-Adults- Treatm...](https://www.amazon.com/Attachment-Disturbances-Adults-Treatment- Comprehensive/dp/0393711528/)

</comment><comment><USER27> About age of 20 I suddenly became unable to pee in urinals. Can't pee in aircraft toilets either or anywhere I feel like I'm under scrutiny in some way. I've endured what felt to me like severe physical pain on long haul travel. I can't persuade my subconscious to let me pee even though I really want to. No idea why this happened to me, having previously had no problems whatsoever. The only thing that I can think of was getting a gay approach at about that age but I can't say that was the cause of it though I think it might have been.

<comment><USER28> I also have trouble with this. It helps if I pretend that I'm somewhere else, where I'd be comfortable doing my business. I think, "I'm at home, in my own bathroom. I was playing a video game and I paused it to take a quick leak."

<comment><USER27> Yes I've tried that but I can't seem to fool my subconscious it seems.

</comment></comment></comment><comment><USER29> This really resonated with me

</comment><comment><USER30> I wonder if one alternate explanation for the "dodo theory" is like antidepressants in that the average level of effectiveness in aggregate is fairly low but each individual patient usually has several which work for them. I am not an expert admittedly.

</comment><comment><USER31> Summary:

"... the deeper reason why no single psychotherapy seems to provide unique advantages over any other is that they ALL work because of shared elements. Chief among these is the therapeutic relationship, connected to positive outcomes by a wealth of evidence."

"The emotional bond and the collaboration between client and therapist – called the alliance – have emerged as a strong predictor of improvement, even in therapies that don't emphasize relational factors..." cites co-author of the book "Attachment in Therapeutic Practice" (2018).

".. what if, attachment theory asks, therapy gives you the chance to reach back and repair your earliest emotional bonds, correcting, as you do, the noxious mechanics of your mental afflictions?"

</comment><comment><USER32> Like clockwork, every decade or so, someone says "Hey, we haven't looked at attachment theory in a while! We can get a few pubs and a book out of it.". A bunch of studies later, we see the repeat of all the previous findings: inconclusive, some interesting patterns, nothing super repeatable with strong effects.

It's fine to revisit and revise past theory work. It's just surprising that after 70 years, this theory that should explain so much, after scrutiny, just... doesn't.

Looking forward to the latest revisions to see how to apply attachment patterns to our modern world. I have popcorn in hand.

<comment><USER33> Well if you want to make the argument that attachment theory is junk then you should provide some evidence.

<comment><USER32> That's not really the way science works. The theory drives testable hypotheses. We look at data to feel some confidence that the hypotheses are correct. If we don't find that data, we can continue to believe in the theory, but with less and less confidence. If a theory cannot be supported, then I can make the claim that its not correct in its current form. I don't think it's junk, but more that it's causal impact may be less than the theory purports.

And sure, we can have an alt theory that goes against Attachment theory, and generate hypos from that, and put them to the test. Answering a different question, but same problem: can't just say "won't work", need to generate specific testable hypotheses.

I'm just pointing out that the theory is nice and should have more provable (and supported) predictions, but it keeps having limited support from research, fades from view, comes back around, history repeats.

After a while, our confidence goes very low. But it's not zero, and the fact that it keeps showing up again provides new hope. The theory is attractive so I hope we find its proper alignment through this latest iteration. But it has a tough road to hoe.

<comment><USER33> Right now the scientific consensus is in for attachment theory.. I asked you to provide evidence or an alternative that it is not. What is the experiment that proves the null hypothesis? You claim it does not replicate? Ok, show me some papers.

"That's not really the way science works. The theory drives testable hypotheses."

Aside from the ethical considerations of using human subjects to test hypotheses, you also won't like genomic/bioinformatics/physics, if you faithfully adhere to the Popper doctrine.

<comment><USER32> Perhaps we follow different sources. Bowlby and Ainsworth suggest that att drives many, many behaviors and thought processes. Clinical psych has found situations where the theory applies and some therapies have had success. Yet social psych, for example, has not found similar success using this basis to predict behaviors or mental processes, for example, on relationship behaviors as adults. Since so many other theories do drive predictions across branches of science, then it's hard to believe that this theory, even after all the evolution its had, is as general as it should or could be. Not to say it won't get there, or that it's wrong, but that it gets at something without quite getting there (to put it very vaguely).

I'm not sure I get your final point: while Popper was never a fan of social sciences, psychologists have spent years running testable hypotheses and experimenting with them. Att is just a preexisting condition, and therefore should drive a repeatably different response to certain stimuli; I don't think anyone was suggesting we try raising babies in diff att styles.

But yeah, if you take Popper at his word, lots of work goes out the window (I avoided saying "pops"). I'm gonna choose a middle ground here, and see where att theory goes. I have high hopes!

</comment></comment></comment></comment></comment><comment><USER34> stuff makes sense now

</comment><comment><USER35> TL;DR having personal bonds helps you be a normal person. If you didn't have them in early life a therapist can act as someone forms bonds.

In general though psychotherapy is a bunch of quack, as stated in the article the only thing that really matters is the patient and shrink working together.

<comment><USER33> The point is to get the tools to develop a secure attachment with yourself with the end goal of developing an integrated emotional response.</comment></comment>


Ask HN: As a non-developer, how can I build a refer a friend tool? - <AUTHOR> <comment><USER2> addthis.com or sharethis.com</comment>