A defect in a molecule like this is one atom wrong. A cpu is not built to those tolerances. You can have many atoms wrong and have a chip still pass since the tolerances are fairly large on this kind of scale. Molecules also have to have the right shape so you have to have all the atoms but also the right isomer which makes life even harder. Most biological molecules are left handed versions and right handed versions can be deadly.
Modern cpus even have issues where cores can be marked bad and sold as a lower end chip or sold at a lower clock rate depending on the type of failure. There are just far more things that can go wrong which still allow the chip to be sold which you can't do for a biomolecule.
When TV, Microwave, cars etc first came out they were very expensive also. The costs of these drugs are coming down as new technology is developed but if we stop trying to make them the costs won't come down. Also it would be about $50K/year to make not per dose for some of the most expensive drugs. Making these things is on the very edge of what our technology can do right now and it is doing a lot to drive forwards our understand of chemistry and molecular dynamics. As our understanding improves we learn faster, simpler and cheaper ways to make these drugs. The costs are coming down on biotech drugs it will just take some time.
This is something I wish we could actually work on as a species though. Most of the research to bring the costs down are being done by manufacturing companies and the hardware companies. I wish we could get governments working together to help fund new method development designed to lower costs of making these drugs. Some of the new technologies that may or may not work are so expensive that no one company can pay that alone and that slows down development tremendously. When the cost to develop a new method is greater than the cost of bringing a single new drug to market (and most bring only a few drugs to market per year) it quickly becomes too big of a risk to do it. Often the expenses are so high in developing a new drug that for the smaller companies 1 or 2 failed drugs will end the company and even the larger ones take a huge hit for a drug failure. Adding fundamentally different method development to that adds another dimension to the problem.
Just to address that site also all the drugs listed on that site are traditional pharmaceutical drugs, None of them are biologic drugs. It is very hard to make a biological drug in pill form since your stomach takes proteins, DNA and RNA apart and that destroys the drug. Biological drugs require special climate control and injections, they are also massively more complex to make.
Most pharmaceutical drugs are made of 50 atoms and are made with a chemical process. Biological drugs are normally tens to hundreds of thousands of atoms and are normally manufactured using genetically engineered cells and then purified. This makes them VASTLY more complex and expensive to make. The more atoms you connect the more likely a mistake is to occur and mistakes are often lethal.
I agree with this entirely. The government should be bargaining for drugs and it should be doing that collectively across all the insurance options it covers. Medicare, medicaid, congressional insurance, fbi insurance, military insurance etc. should be bargained together to get better prices.
I also want to see penalties for executives that abuse their power.
For the biological type drugs (DNA, RNA, protein) I don't have any sources that I can share. Biotech drugs are all very expensive due to things like chromatography resin, complex filters and the stability of the molecules. Some of the manufactures do have prices for some of these components on their websites which can be used for estimates.
One of the things you can look at though is that generic biological drugs are usually 10% cheaper or less. This shows there is often not much room to drop the price.
There is a difference between something being legal and something being a good idea.
The pharma and biotech industries as a whole want to avoid price regulations but this kind of behavior heavily pushes politicians to look at passing laws to do that for consumer protection. That is why when Martin Shkreli raised the price of an AIDS medication by 5000% another company started to manufacture the same drug and sold it at only slightly above cost. The intention was to stave off new regulations by showing they could deal with bad actors as an industry and not harm patients in the process. My understanding is that the same thing is being worked on right now to get some more auto-injectors approved and drop the price way down in order to prevent tis from being used to regulate.
The problem is that some drugs are seriously expensive to make. Some of them require some difficult processes that making enough of the drug for one person for one year can cost $50K and that does not cover the cost of R&D that went into it. Typically those drugs would then sell for $100K or so. If you have price caps then many drugs would just not be made at all because they are at the edge of our technology and we don't know of a cheaper way to make them. Especially with biotech drugs you have to connect together tens of thousands of atoms essentially perfectly. You need to make on the order of 10^24 of the molecules and your defect rate has to be 0.001%. There is nothing else on our planet that is manufactured to those kinds of standards and it is HARD and EXPENSIVE. The prices are coming down on them as technology gets better but mostly what happens is that even harder molecules are made.
It really bothers me when I see a company that makes a drug for $0.50 and then sells it for $100+ because it puts the entire industry at risk. I don't want to see DNA, RNA and protein based drugs going away because they no longer fit within price caps.
I find that I needed to use my ID extremely rarely. Only a few times per year.
No ID needed to use a debit card No ID needed to use an ATM I don't buy alcohol or cigarettes since neither interest me I HATE cars. I won't buy a car until they drive themselves.
I much prefer to live in a nice area that I can walk and ride a bike around.
If you register to vote by mail you also don't need to use ID. The voter fraud rate is so close to zero it is not worth worrying about. I have not seen a single study that shows otherwise so far. Voter disenfranchisement though is a major which is confirmed by many studies and the far more serious issue to address.
Election day should be a national holiday for people that want to vote in person.
In Colorado the left and the right supported legal weed. That is how it passed. The best arguments though for legal weed where from some of the groups on the right. The argument boiled down to locking up pot heads is a waste of money. None of them hurt anyone else, the vast majority held stable jobs and the cost of locking them up was bankrupting the state so even if the state made no money from tax revenue it would still be a huge net win. The state does actually get quite a lot in tax revenue from weed at this point.
Part of the reason I voted for legalization of weed was the conservative arguments. I have never used it in my life, I have no real intention to use it but I don't rule it out but spending money to lock up pot heads that mainly threaten bag of chips and pizzas while playing video games or considering how deep a flower is wastes a lot of money. All the money spent to arrest them, charge them, convict them, lock them up etc for someone that is not a threat to society is a gigantic waste. If we are going to spend that much money it needs to be worth it.
From what I can find the statement is only partially true. The Obama administration put in more restrictions on travel from those countries and didn't allow the visa waiver program to apply to those countries but did not actually try to ban them. It also looks like the list changed over time based on recommendations from the intelligence agencies.
You also ignored the emoluments issue entirely. It is like you latched on to one small thing you could attack while ignoring the overall issue. That is nitpicking and not useful.
He stated publically that he fired Comey to end the russia investigation. He specifically fired him with INTENT to disrupt/end the investigation. He then expressed relief at having disrupted the investigation.
There is also nothing stupid about the emoluments clause. It is intended to make sure that the president can not be paid off by foreign powers. Do you think it is a little strange that Saudi Arabia was not included in the countries in the travel ban? The country where we actually have had a number of terrorists come from? Actually quite a number of countries where left off the travel ban list and even a judge noted that the countries left out all have trump properties in them. We don't know for sure if that was part of the reason for leaving them out but that is also why that clause exists. Right now Trump and his family are personally and directly benefiting financially from the office of the president with respect to foreign powers.
Obstruction of justice is a crime that has been committed.
Trump publically admitted to that one when he said he fired Comey over the russian investigation. Regardless of if there was any collusion or not Trump knew his administration was under investigation by Comey and fired him. That is obstruction of justice. He even double down on it when he revealed to the russians that he had made his life easier by firing Comey to end the investigation.
Trump has also definitely violated the Emoluments clause and could be impeached for that.
I don't know if his campaign colluded with Russia during the election and that is still being investigated.
I have had a few times where I could not get phone calls but text messages came through or even a voice mail would appear when the reception was really bad. I am not saying it is likely to work. I am just saying that in an actual emergency they can feel free to notify you with every method possible.
If this is true I hope the DNC and campaign lost the lawsuit badly. It doesn't matter which political group, non-profit etc does this since it does not change that it is wrong.
Right now the RNC is supporting this and the DNC has not taken an official position so as far as I am concerned they are both guilty right now.
The ONLY exception I can think of right now for this would be safety related. If the government needs to warn of an evacuation and can't get you by phone they should be able to leave a voicemail. I was in Boulder when a fire was heading towards the city and got an automatic call to prepare for evacuation, along with a text message, emergency alert, and other things. In that kind of situation leaving a voice mail is also okay.
Most regular software is waiting on disk, network or user interaction and they really only need to be fast enough to handle that. Being faster won't make the application faster to use. You can easily get FAR faster than you need for most purposes with C#. I can't really comment on Java because I have never run into a well performing Java gui application.
However, when you get to high performance code (the kind you run on clusters, supercomputers etc) the types of problems change. Computers have a lot of vectorization available and if you can use this effectively you can get large speedups in program execution. This is where Java and C# don't work very well, but they are also not designed to work well there.
Java and C# won't replace C, C++ and Fortran because while they do have some areas of overlap mostly they are used in different types of problems.
It is not remotely the same thing. Java is not an automobile with C, C++ and Fortran being horses. At least between Java and C++ and Fortran there are few advantages for HPC software writing or maintenance to be found with Java.
I also think you underestimate how much relies on hpc simulations. Computer vision, modern drug development, plant control, aerospace design etc are built on hpc. This is not a tiny niche like race horses where if it went away nobody would care. If this stuff went away you would notice immediately.
I am also not saying that Java is a bad language but it is not suitable for everything and there are important programming areas that are worth hundreds of billions of dollars where Java is not viable. There are also many programming areas where I would not use C, C++ or Fortran. Not all programming languages are interchangeable for the same reason that a sledge hammer normal nail hammer are both hammers but not used for the same things.
Can you show me what some of these modern benchmarks are? All the stuff I have been able to find on Java for HPC code is that it is MUCH slower than C, C++ or Fortran and the only way to get good performance out of it is to have all the heavy lifting done in high performance libraries written in C, C++ or Fortran and call them from Java. Most of the java benchmarks I have found for BLAS now are getting old and I don't see much work on things like high performance libraries.
I am also not talking about any kind of distributed computing. That is 128 cores on a single fat node. ccNUMA refers to the type of memory access where each socket or sometimes even groups of cores on a socket have their own memory connection for faster communication. The whole system is still a unified memory space but not all memory accesses are the same speed. This means your data has to be allocated in such a way that the memory spreads across the different memory nodes correctly. If you allocate all the memory on a single node then every access will be non-local and run much slower. Things like TBB have a memory allocated designed to handle this for C++ and there are similar things for C and Fortran. How well does Java handle ccNUMA?
Native code is not magic and not all native code is equal. Some languages make it much harder to optimize than in others. Even with native code compilers for Pascal, Lisp etc you don't seem them optimizing as well (especially with vectorization) as you do with C, C++ and Fortran and a lot of that reason is more money has been put into optimizing C, C++ and Fortran. Java native compilers are just not as good and likely never will be.
The interesting thing is that computers are getting much faster at certain types of tasks but not faster at others. For straight sequential code performance peaked a while ago without fundamental changes to the materials we use to make chips and probably even the fundamental technology. However, if your code can be heavily vectorized and threaded then modern cpus have an enormous performance advantage over older cpus. The problem is that using the performance on a modern CPU is HARD. I mean ridiculously hard and it requires a lot of experience and education on how a CPU works.
I am not talking about regular programs. I am talking about the types of high performance computing software that is usually run on large clusters or supercomputers.
For the simplest possible case lets say you have to add up an array of tens of millions of doubles. On an x64 arch cache lines are normally 64 bytes which allows you to store 8 doubles at 8 bytes each. You can also use vectorization in a modern CPU and haswell and above can do do vector operations per cycle. If you break up the work to something small like 128 threads you need to break the whole thing up into very large chunks memory such that each chip gets a large contiguous memory region and such that each core in that chip also has a large contiguous memory region. You also need to allocate the memory to hold each cores temporary result such that none of them are on the same cache line or you will cause invalidations on every summation operation and have a large impact on performance.
If you do all of this completely correctly then you are doing linear memory with unit 1 stride and that will allow the memory controller to optimally load in data while you are processing. You also use every entry in the cache line and a cache line never has to be fetched again. At the very last step you would need to read from 128 memory locations on different cache lines to do a final add but you did eliminate all false sharing.
This is of course a trivial example meant to illustrate a point. Even just adding up lots of numbers can be quite complicated to make high performance. Sure a java program can do this but it won't be anywhere in the same ballpark speed wise. In a more realistic example you have to do this kind of optimization work but the problem is not so simple. Just designing a data structure that correctly works across all the different usage and ordering cases can take weeks of work and profiling.
More commonly you have parallel processing that happens in phases where you have large parallel areas followed by sequential areas and then followed by parallel areas again that operate on the same pieces of data. If you are VERY careful you can keep the information you last used in the cache still and so long as you assign all the work to the same cores as they where assigned the first time all the memory access will be local. If you screw it up performance is often 10x to 100x worse on a ccNUMA system with 128 cores.
This type of programming is programming is HARD but it is an area where C/C++ and Fortran completely dominate with no competitors around. Everything from molecular dynamics simulations, quantum simulations to chemical simulations and machine learning. This is an area where Java does not play in and Oracle is not even trying to push it in this area. When Oracle does high performance they do it with C/C++ usually and OpenMP. They have given some very interesting talks on OpenMP optimization.
Science and engineering continue to move towards doing more simulations. Everything from chemical simulations to flow simulations. The more accurate these simulations are the more computationally intensive they get but also the more money you can make since you have to do fewer real world experiments to isolate the true running conditions and the simulations can also be used as control systems allowing you to operate closer to the true danger area.
In most chemical plants reactions are run FAR from the actual danger points in terms of product yield, purity, reaction speed etc because things like PID controllers just can't adapt to how chemical systems really work.
The problem is that for this kind of work java and.net are SLOW. They can easily but 100x to 1000x slower than a program written in C, C++ or Fortran. The tooling to support High Performance Computing type applications really doesn't exist outside of C, C++ and Fortran. They have the most advanced optimizing compilers, profilers, debuggers, libraries etc. What I often see is something like MATLAB for visualization, Python for command and control and C/C++/Fortran for the actual simulation running on clusters.
These newer microchips that have more cores per chip are only going to continue to push things in that direction. It is easy to gain a little scaling with threads but if you want to really get a program to run fast you need to either have direct memory control or you would need a far more efficient runtime than has ever been created so far.
This may come as a surprise but almost no normal software uses more than about 1% of a cpu's capabilities. Even most games are 5%. You can see this when you run them under a good profiler like VTune. Sure the CPU is technically busy running the software but it is mostly just waiting for data and working with unoptimized data structures. To get over this barrier you need to do thousands of small changes to your program.
If you need a program to run FAST you need to eliminate false sharing. If you have two threads write to different indexes in an array but the items are too close to each other in memory they could be sitting on the same cache line and this will cause the cores to have to resync and retry calculations based on which one committed first. The more cores you add the worse this problem gets. I have worked on a program that went from 30 seconds on 128 cores to 0.03 seconds on 128 cores by removing all the false sharing.
You also need fine grained control over parallelization. You need to be able to decide that a function should only be parallelized and to what degree it should be parallelized based on the amount of data being handed into that function. That is why things like TBB and OpenMP allow those to be controlled at runtime. If you make a parallel version of quicksort and run each division in parallel recursively you reach a point where you are creating parallel tasks that are far too small and have too much overhead. This means you need to understand how many cpu cycles an operation normally takes and can parallelize based on this information.
At this point I don't see any other languages really moving in to really compete with C and C++. Sure there are languages that do a lot of the high level stuff that used to be done with C and C++ but the world has also moved to harder problems and C and C++ have moved onto those harder problems also. This is a problem you can't just buy more hardware to fix. Many of these simulations take days to run in highly optimized C and C++ code and the java/.net versions would take a year to run. The time alone would kill the programs usefulness but forget ever optimizing your system using the simulation.
You can choose what you say and you can't choose what you are.
This is really very simple and based on fairly simple human decency. Work is a place for getting work done. You can talk about off-topic things at times so long as it does not interfere with the work. There are some subjects that most of us know makes other uncomfortable and so we avoid them while at work. One of the examples giving in this thread is two women talking about abused children in a book and I would also say that is not appropriate for work.
There are many topics that are pretty safe to discuss and don't cause others to feel uncomfortable. I am not talking about safe spaces or any of that other stuff that keeps being brought up. These are people you have to work with every day and often need to work with them for years. Making them uncomfortable is just going to harm your working relationship and directly make your life worse long term.
In the end show some basic professionalism and decency towards others. If it is so horrible for you to control yourself then maybe you need some help.
I don't find your interest reprehensible. I find it reprehensible that this happened in a company setting. There is a large amount of peer pressure for people to just go along with something especially if their job is involved. Even if people are uncomfortable with something or are even disgusted by it they will often put up with it so they can keep their jobs and get promotions. This creates a hostile working environment and it is not acceptable.
If you want to talk like this then do it in a context where there is no coercive force on others present.
I have no idea where these people work but this would not be considered remotely acceptable at any place I have ever worked. I can't imagine a professional company putting up with this kind of behavior.
I would hate to explain to the FAA, FDA etc why a plane crashed or a drug killed people and have them find out about this kind of behavior. You would be nailed to the wall.
I agree entirely. As a man I would not have wanted to work there either. I understand a certain amount of off-topic conversations at work but this is way outside what is okay.
If you discuss a new movie, tv, scientific study, etc at work that is fine so long as it does not take up too much time but not this kind of stuff.
In general I would also avoid politics and religion.:)
None of my friends have EVER acted like this when I have been around them. I have also not encountered this before at any company I have worked at.
Every business I have worked with would have had the offending employees get one warning and then be out the door the next time it happened. I can't even imagine any engineering company being okay with "microdosing". The liability alone would kill that idea.
Even when I have been in a group of only male masters or phd students we mostly talked about science, engineering, movies, games etc kind of topics but not sexual exploits.
This is reprehensible behavior and should not be tolerated.
A defect in a molecule like this is one atom wrong. A cpu is not built to those tolerances. You can have many atoms wrong and have a chip still pass since the tolerances are fairly large on this kind of scale. Molecules also have to have the right shape so you have to have all the atoms but also the right isomer which makes life even harder. Most biological molecules are left handed versions and right handed versions can be deadly.
Modern cpus even have issues where cores can be marked bad and sold as a lower end chip or sold at a lower clock rate depending on the type of failure. There are just far more things that can go wrong which still allow the chip to be sold which you can't do for a biomolecule.
When TV, Microwave, cars etc first came out they were very expensive also. The costs of these drugs are coming down as new technology is developed but if we stop trying to make them the costs won't come down. Also it would be about $50K/year to make not per dose for some of the most expensive drugs. Making these things is on the very edge of what our technology can do right now and it is doing a lot to drive forwards our understand of chemistry and molecular dynamics. As our understanding improves we learn faster, simpler and cheaper ways to make these drugs. The costs are coming down on biotech drugs it will just take some time.
This is something I wish we could actually work on as a species though. Most of the research to bring the costs down are being done by manufacturing companies and the hardware companies. I wish we could get governments working together to help fund new method development designed to lower costs of making these drugs. Some of the new technologies that may or may not work are so expensive that no one company can pay that alone and that slows down development tremendously. When the cost to develop a new method is greater than the cost of bringing a single new drug to market (and most bring only a few drugs to market per year) it quickly becomes too big of a risk to do it. Often the expenses are so high in developing a new drug that for the smaller companies 1 or 2 failed drugs will end the company and even the larger ones take a huge hit for a drug failure. Adding fundamentally different method development to that adds another dimension to the problem.
Just to address that site also all the drugs listed on that site are traditional pharmaceutical drugs, None of them are biologic drugs. It is very hard to make a biological drug in pill form since your stomach takes proteins, DNA and RNA apart and that destroys the drug. Biological drugs require special climate control and injections, they are also massively more complex to make.
Most pharmaceutical drugs are made of 50 atoms and are made with a chemical process. Biological drugs are normally tens to hundreds of thousands of atoms and are normally manufactured using genetically engineered cells and then purified. This makes them VASTLY more complex and expensive to make. The more atoms you connect the more likely a mistake is to occur and mistakes are often lethal.
I agree with this entirely. The government should be bargaining for drugs and it should be doing that collectively across all the insurance options it covers. Medicare, medicaid, congressional insurance, fbi insurance, military insurance etc. should be bargained together to get better prices.
I also want to see penalties for executives that abuse their power.
For the biological type drugs (DNA, RNA, protein) I don't have any sources that I can share. Biotech drugs are all very expensive due to things like chromatography resin, complex filters and the stability of the molecules. Some of the manufactures do have prices for some of these components on their websites which can be used for estimates.
One of the things you can look at though is that generic biological drugs are usually 10% cheaper or less. This shows there is often not much room to drop the price.
There is a difference between something being legal and something being a good idea.
The pharma and biotech industries as a whole want to avoid price regulations but this kind of behavior heavily pushes politicians to look at passing laws to do that for consumer protection. That is why when Martin Shkreli raised the price of an AIDS medication by 5000% another company started to manufacture the same drug and sold it at only slightly above cost. The intention was to stave off new regulations by showing they could deal with bad actors as an industry and not harm patients in the process. My understanding is that the same thing is being worked on right now to get some more auto-injectors approved and drop the price way down in order to prevent tis from being used to regulate.
The problem is that some drugs are seriously expensive to make. Some of them require some difficult processes that making enough of the drug for one person for one year can cost $50K and that does not cover the cost of R&D that went into it. Typically those drugs would then sell for $100K or so. If you have price caps then many drugs would just not be made at all because they are at the edge of our technology and we don't know of a cheaper way to make them. Especially with biotech drugs you have to connect together tens of thousands of atoms essentially perfectly. You need to make on the order of 10^24 of the molecules and your defect rate has to be 0.001%. There is nothing else on our planet that is manufactured to those kinds of standards and it is HARD and EXPENSIVE. The prices are coming down on them as technology gets better but mostly what happens is that even harder molecules are made.
It really bothers me when I see a company that makes a drug for $0.50 and then sells it for $100+ because it puts the entire industry at risk. I don't want to see DNA, RNA and protein based drugs going away because they no longer fit within price caps.
I find that I needed to use my ID extremely rarely. Only a few times per year.
No ID needed to use a debit card
No ID needed to use an ATM
I don't buy alcohol or cigarettes since neither interest me
I HATE cars. I won't buy a car until they drive themselves.
I much prefer to live in a nice area that I can walk and ride a bike around.
If you register to vote by mail you also don't need to use ID. The voter fraud rate is so close to zero it is not worth worrying about. I have not seen a single study that shows otherwise so far. Voter disenfranchisement though is a major which is confirmed by many studies and the far more serious issue to address.
Election day should be a national holiday for people that want to vote in person.
Taxing them brings even more revenue because you waste no time on enforcement at all and you have far fewer points of contact you have to deal with.
In Colorado the left and the right supported legal weed. That is how it passed. The best arguments though for legal weed where from some of the groups on the right. The argument boiled down to locking up pot heads is a waste of money. None of them hurt anyone else, the vast majority held stable jobs and the cost of locking them up was bankrupting the state so even if the state made no money from tax revenue it would still be a huge net win. The state does actually get quite a lot in tax revenue from weed at this point.
Part of the reason I voted for legalization of weed was the conservative arguments. I have never used it in my life, I have no real intention to use it but I don't rule it out but spending money to lock up pot heads that mainly threaten bag of chips and pizzas while playing video games or considering how deep a flower is wastes a lot of money. All the money spent to arrest them, charge them, convict them, lock them up etc for someone that is not a threat to society is a gigantic waste. If we are going to spend that much money it needs to be worth it.
I keep seeing people say that but all the evidence I can find does not really support that statement.
http://www.politifact.com/wisc...
From what I can find the statement is only partially true. The Obama administration put in more restrictions on travel from those countries and didn't allow the visa waiver program to apply to those countries but did not actually try to ban them. It also looks like the list changed over time based on recommendations from the intelligence agencies.
You also ignored the emoluments issue entirely. It is like you latched on to one small thing you could attack while ignoring the overall issue. That is nitpicking and not useful.
He stated publically that he fired Comey to end the russia investigation. He specifically fired him with INTENT to disrupt/end the investigation. He then expressed relief at having disrupted the investigation.
There is also nothing stupid about the emoluments clause. It is intended to make sure that the president can not be paid off by foreign powers. Do you think it is a little strange that Saudi Arabia was not included in the countries in the travel ban? The country where we actually have had a number of terrorists come from? Actually quite a number of countries where left off the travel ban list and even a judge noted that the countries left out all have trump properties in them. We don't know for sure if that was part of the reason for leaving them out but that is also why that clause exists. Right now Trump and his family are personally and directly benefiting financially from the office of the president with respect to foreign powers.
Obstruction of justice is a crime that has been committed.
Trump publically admitted to that one when he said he fired Comey over the russian investigation. Regardless of if there was any collusion or not Trump knew his administration was under investigation by Comey and fired him. That is obstruction of justice. He even double down on it when he revealed to the russians that he had made his life easier by firing Comey to end the investigation.
Trump has also definitely violated the Emoluments clause and could be impeached for that.
I don't know if his campaign colluded with Russia during the election and that is still being investigated.
I have had a few times where I could not get phone calls but text messages came through or even a voice mail would appear when the reception was really bad. I am not saying it is likely to work. I am just saying that in an actual emergency they can feel free to notify you with every method possible.
If this is true I hope the DNC and campaign lost the lawsuit badly. It doesn't matter which political group, non-profit etc does this since it does not change that it is wrong.
Right now the RNC is supporting this and the DNC has not taken an official position so as far as I am concerned they are both guilty right now.
The ONLY exception I can think of right now for this would be safety related. If the government needs to warn of an evacuation and can't get you by phone they should be able to leave a voicemail. I was in Boulder when a fire was heading towards the city and got an automatic call to prepare for evacuation, along with a text message, emergency alert, and other things. In that kind of situation leaving a voice mail is also okay.
Most regular software is waiting on disk, network or user interaction and they really only need to be fast enough to handle that. Being faster won't make the application faster to use. You can easily get FAR faster than you need for most purposes with C#. I can't really comment on Java because I have never run into a well performing Java gui application.
However, when you get to high performance code (the kind you run on clusters, supercomputers etc) the types of problems change. Computers have a lot of vectorization available and if you can use this effectively you can get large speedups in program execution. This is where Java and C# don't work very well, but they are also not designed to work well there.
Java and C# won't replace C, C++ and Fortran because while they do have some areas of overlap mostly they are used in different types of problems.
It is not remotely the same thing. Java is not an automobile with C, C++ and Fortran being horses. At least between Java and C++ and Fortran there are few advantages for HPC software writing or maintenance to be found with Java.
I also think you underestimate how much relies on hpc simulations. Computer vision, modern drug development, plant control, aerospace design etc are built on hpc. This is not a tiny niche like race horses where if it went away nobody would care. If this stuff went away you would notice immediately.
I am also not saying that Java is a bad language but it is not suitable for everything and there are important programming areas that are worth hundreds of billions of dollars where Java is not viable. There are also many programming areas where I would not use C, C++ or Fortran. Not all programming languages are interchangeable for the same reason that a sledge hammer normal nail hammer are both hammers but not used for the same things.
Can you show me what some of these modern benchmarks are? All the stuff I have been able to find on Java for HPC code is that it is MUCH slower than C, C++ or Fortran and the only way to get good performance out of it is to have all the heavy lifting done in high performance libraries written in C, C++ or Fortran and call them from Java. Most of the java benchmarks I have found for BLAS now are getting old and I don't see much work on things like high performance libraries.
I am also not talking about any kind of distributed computing. That is 128 cores on a single fat node. ccNUMA refers to the type of memory access where each socket or sometimes even groups of cores on a socket have their own memory connection for faster communication. The whole system is still a unified memory space but not all memory accesses are the same speed. This means your data has to be allocated in such a way that the memory spreads across the different memory nodes correctly. If you allocate all the memory on a single node then every access will be non-local and run much slower. Things like TBB have a memory allocated designed to handle this for C++ and there are similar things for C and Fortran. How well does Java handle ccNUMA?
Native code is not magic and not all native code is equal. Some languages make it much harder to optimize than in others. Even with native code compilers for Pascal, Lisp etc you don't seem them optimizing as well (especially with vectorization) as you do with C, C++ and Fortran and a lot of that reason is more money has been put into optimizing C, C++ and Fortran. Java native compilers are just not as good and likely never will be.
The interesting thing is that computers are getting much faster at certain types of tasks but not faster at others. For straight sequential code performance peaked a while ago without fundamental changes to the materials we use to make chips and probably even the fundamental technology. However, if your code can be heavily vectorized and threaded then modern cpus have an enormous performance advantage over older cpus. The problem is that using the performance on a modern CPU is HARD. I mean ridiculously hard and it requires a lot of experience and education on how a CPU works.
I am not talking about regular programs. I am talking about the types of high performance computing software that is usually run on large clusters or supercomputers.
For the simplest possible case lets say you have to add up an array of tens of millions of doubles. On an x64 arch cache lines are normally 64 bytes which allows you to store 8 doubles at 8 bytes each. You can also use vectorization in a modern CPU and haswell and above can do do vector operations per cycle. If you break up the work to something small like 128 threads you need to break the whole thing up into very large chunks memory such that each chip gets a large contiguous memory region and such that each core in that chip also has a large contiguous memory region. You also need to allocate the memory to hold each cores temporary result such that none of them are on the same cache line or you will cause invalidations on every summation operation and have a large impact on performance.
If you do all of this completely correctly then you are doing linear memory with unit 1 stride and that will allow the memory controller to optimally load in data while you are processing. You also use every entry in the cache line and a cache line never has to be fetched again. At the very last step you would need to read from 128 memory locations on different cache lines to do a final add but you did eliminate all false sharing.
This is of course a trivial example meant to illustrate a point. Even just adding up lots of numbers can be quite complicated to make high performance. Sure a java program can do this but it won't be anywhere in the same ballpark speed wise. In a more realistic example you have to do this kind of optimization work but the problem is not so simple. Just designing a data structure that correctly works across all the different usage and ordering cases can take weeks of work and profiling.
More commonly you have parallel processing that happens in phases where you have large parallel areas followed by sequential areas and then followed by parallel areas again that operate on the same pieces of data. If you are VERY careful you can keep the information you last used in the cache still and so long as you assign all the work to the same cores as they where assigned the first time all the memory access will be local. If you screw it up performance is often 10x to 100x worse on a ccNUMA system with 128 cores.
This type of programming is programming is HARD but it is an area where C/C++ and Fortran completely dominate with no competitors around. Everything from molecular dynamics simulations, quantum simulations to chemical simulations and machine learning. This is an area where Java does not play in and Oracle is not even trying to push it in this area. When Oracle does high performance they do it with C/C++ usually and OpenMP. They have given some very interesting talks on OpenMP optimization.
Science and engineering continue to move towards doing more simulations. Everything from chemical simulations to flow simulations. The more accurate these simulations are the more computationally intensive they get but also the more money you can make since you have to do fewer real world experiments to isolate the true running conditions and the simulations can also be used as control systems allowing you to operate closer to the true danger area.
In most chemical plants reactions are run FAR from the actual danger points in terms of product yield, purity, reaction speed etc because things like PID controllers just can't adapt to how chemical systems really work.
The problem is that for this kind of work java and .net are SLOW. They can easily but 100x to 1000x slower than a program written in C, C++ or Fortran. The tooling to support High Performance Computing type applications really doesn't exist outside of C, C++ and Fortran. They have the most advanced optimizing compilers, profilers, debuggers, libraries etc. What I often see is something like MATLAB for visualization, Python for command and control and C/C++/Fortran for the actual simulation running on clusters.
These newer microchips that have more cores per chip are only going to continue to push things in that direction. It is easy to gain a little scaling with threads but if you want to really get a program to run fast you need to either have direct memory control or you would need a far more efficient runtime than has ever been created so far.
This may come as a surprise but almost no normal software uses more than about 1% of a cpu's capabilities. Even most games are 5%. You can see this when you run them under a good profiler like VTune. Sure the CPU is technically busy running the software but it is mostly just waiting for data and working with unoptimized data structures. To get over this barrier you need to do thousands of small changes to your program.
If you need a program to run FAST you need to eliminate false sharing. If you have two threads write to different indexes in an array but the items are too close to each other in memory they could be sitting on the same cache line and this will cause the cores to have to resync and retry calculations based on which one committed first. The more cores you add the worse this problem gets. I have worked on a program that went from 30 seconds on 128 cores to 0.03 seconds on 128 cores by removing all the false sharing.
You also need fine grained control over parallelization. You need to be able to decide that a function should only be parallelized and to what degree it should be parallelized based on the amount of data being handed into that function. That is why things like TBB and OpenMP allow those to be controlled at runtime. If you make a parallel version of quicksort and run each division in parallel recursively you reach a point where you are creating parallel tasks that are far too small and have too much overhead. This means you need to understand how many cpu cycles an operation normally takes and can parallelize based on this information.
At this point I don't see any other languages really moving in to really compete with C and C++. Sure there are languages that do a lot of the high level stuff that used to be done with C and C++ but the world has also moved to harder problems and C and C++ have moved onto those harder problems also. This is a problem you can't just buy more hardware to fix. Many of these simulations take days to run in highly optimized C and C++ code and the java/.net versions would take a year to run. The time alone would kill the programs usefulness but forget ever optimizing your system using the simulation.
You can choose what you say and you can't choose what you are.
This is really very simple and based on fairly simple human decency. Work is a place for getting work done. You can talk about off-topic things at times so long as it does not interfere with the work. There are some subjects that most of us know makes other uncomfortable and so we avoid them while at work. One of the examples giving in this thread is two women talking about abused children in a book and I would also say that is not appropriate for work.
There are many topics that are pretty safe to discuss and don't cause others to feel uncomfortable. I am not talking about safe spaces or any of that other stuff that keeps being brought up. These are people you have to work with every day and often need to work with them for years. Making them uncomfortable is just going to harm your working relationship and directly make your life worse long term.
In the end show some basic professionalism and decency towards others. If it is so horrible for you to control yourself then maybe you need some help.
I don't find your interest reprehensible. I find it reprehensible that this happened in a company setting. There is a large amount of peer pressure for people to just go along with something especially if their job is involved. Even if people are uncomfortable with something or are even disgusted by it they will often put up with it so they can keep their jobs and get promotions. This creates a hostile working environment and it is not acceptable.
If you want to talk like this then do it in a context where there is no coercive force on others present.
I have no idea where these people work but this would not be considered remotely acceptable at any place I have ever worked. I can't imagine a professional company putting up with this kind of behavior.
I would hate to explain to the FAA, FDA etc why a plane crashed or a drug killed people and have them find out about this kind of behavior. You would be nailed to the wall.
I agree entirely. As a man I would not have wanted to work there either. I understand a certain amount of off-topic conversations at work but this is way outside what is okay.
If you discuss a new movie, tv, scientific study, etc at work that is fine so long as it does not take up too much time but not this kind of stuff.
In general I would also avoid politics and religion. :)
None of my friends have EVER acted like this when I have been around them. I have also not encountered this before at any company I have worked at.
Every business I have worked with would have had the offending employees get one warning and then be out the door the next time it happened. I can't even imagine any engineering company being okay with "microdosing". The liability alone would kill that idea.
Even when I have been in a group of only male masters or phd students we mostly talked about science, engineering, movies, games etc kind of topics but not sexual exploits.
This is reprehensible behavior and should not be tolerated.