That's definitely true, but counting function parameters was only a small part of the difficulty. Weren't most of the problems related to optimization being harder and less effective than predicted?
HN user
elwin
But there is a lot of work for the compiler here, wow. Knowing the maximum number of registers that is needed for any function call made within a function? Ouch.
That shouldn't be too difficult. The compiler is already type-checking the parameters of every call within the function. Remembering the highest count won't take much more work, and it's capped at 8 anyway.
Support for multiple return values is cool though. That'd be incredibly nice.
Agreed. So many processors seem designed just to run C. Then when something extra like multiple returns appears, it goes unused.
That's what I get for citing Wikipedia. But the idea was also brought up by actual southern politicians, particularly in the discussions at the end of the Mexican War.
https://en.wikipedia.org/wiki/Golden_Circle_%28proposed_coun...
https://en.wikipedia.org/wiki/Filibuster_%28military%29
If you're looking for a more serious reference, Freehling's Road to Disunion devotes a chapter to the subject.
A detector is typically a series of concentric cylinders, with the beam pipe, where the collisions occur, running through the center. The inner layers are tracking chambers, which detect the paths of charged particles. This is what produces all the curved lines radiating from the center.
The outer layers are calorimeters, which catch particles and measure their kinetic energy. As you correctly assumed, these produce the bar plots. Often there will be one layer of calorimeters for photons and electrons, and a second for hadrons (protons, mesons, etc.)
This Wikipedia article is a good starting point: https://en.wikipedia.org/wiki/Hermetic_detector
tmux is an OpenBSD-influenced project. Those projects' version numbers often progress from N.9 to N+1.0 without having any special significance.
This site has some useful articles: http://hpdz.net/TechInfo.htm
Signals are too brittle and complex. That's why you have to read three whole manpages to figure out what happens if a process gets the same signal twice in rapid succession.
They are also un-Unixlike: they are used to communicate three or four different kinds of information, and they do most of them badly.
The current kdbus controversy is unrelated to systemd, as far as I can tell.
There's a lot of good advice already, but here's one tip:
Learn how to read documentation. Consult man pages and official documentation before resorting to random people on websites. This is a skill that requires practice, because a lot of the material is mediocre. Some writers give overviews, some give examples, some list every feature. You may be more comfortable with one kind, but learn how to digest each one and extract the knowledge you need.
The point I was trying to make is that production needs to match consumption. Which can be difficult to plan for digital goods.
Yes, more content adds more value. But past a certain point of saturation, it no longer adds enough additional value to compensate its creators. My argument is that we are long past that point.
Which would be more valuable, doubling the world's content, or doubling the amount of time and money to spend on it?
The world probably needs less content creation. We're long past the point where there are too many useful books to read in one lifetime. Even in narrow fields, we're producing comedy television, historical fiction novels, or cat pictures faster than one person could consume them all. You could spend a lifetime just researching what's worth consuming.
With this kind of overproduction, it's no surprise creators can't make money.
a C to fpga compiler which you would suspect could do some crazy things and took thousands of engineering hours to make work. But instead it just implements a CPU in the FPGA
Is that seriously how Vivado HLS works? Now I'm glad I decided not to buy it.
That's an interesting analogy with nuclear weapons, but I think there's an important difference. Nuclear weapons have a deterrent effect. That's why the American first possession meant that nuclear weapons would never be used to their full potential.
There won't be any deterrent effect with tools that remain secret and unattributable after they are used. We've already seen that NSA dominance isn't going to lead to a truce in the style of the Cold War. For example, see the Chinese NSA counterparts who were recently indicted in the US, or the suspected Russians who can't be rooted out of the State Department network. The fact that the NSA is (probably) better at that kind of mayhem didn't stop them.
I fear the invention of electronic warfare will be more like the introduction of firearms than of nuclear weapons.
The various civil rights movements got where they are today through the use of social repercussions.
I don't think this was the case. Look at, for example, the abolitionist movement. You'll find the social repercussions directed against the movement. It took over twenty years of convincing people of the justice of their cause, despite the forces used against them.
The lack of social repercussions for things means the status quo stays
Isn't it more likely that social repercussions will be used to enforce the status quo? Only when change has already won can it use social force to complete its victory.
I was going to say that social repercussions are prone to be abused, but I think it's more accurate to say that social repercussions are abuse.
For every source of bigoted and hateful nonsense that is silenced, there are a hundred victims of thoughtless discrimination and a dozen people using their social power to punish those they hold grudges against.
DCSS is a remarkable open source project. The game's design is focused and coherent, avoiding "feature creep". Yet the devs are open to community suggestions and stay on good terms with the players. I can't think of any other project that so well harnesses the creativity of random internet people.
Historically, debt neither increases forever nor collapses catastrophically. Individual sectors collapse, and new ones develop. In the early modern period, governments would simply refuse to repay their debts. Nowadays we have things like stock market crashes and mortgage crises.
It would only take a simple addon to add browser support. There are several in the Firefox catalog.
Also, browsers tend to have better CSS support than e-readers.
Try looking at the comments from a different angle. Instead of grouping them into "pro-NSA" and "anti-NSA" categories, try checking for technical ignorance. Look for ideas about cyberwarfare based on bad analogies with real warfare. Look for a mindset that puts winning an arms race first and never considers ethical implications. Look for vague statements about protecting or harming America that don't explain whether they mean the American military, the civilian government, or ordinary citizens. Look for equation of the NSA's offensive and defensive capabilities.
The other side of the debate has its own poorly reasoned comments. I haven't noticed many on this article yet, but they should arrive soon.
I doubt such comments are written by people with NSA connections, but their sudden appearance is odd. The only other subject that produces so many strongly opinionated, poor-quality comments is systemd.
I suspect that "cyberweapons", like biological weapons, are almost impossible to use in a way that does not harm civilians. Their development is practically certain to lead to use against civilians in a way hard to reconcile with the ideas behind current international law. On the other hand, the idea of fighting a war without harming civilians is a 19th century notion unlikely to survive much longer.
I actually don't know what you mean with "criticism of UNIX traditionalists for years" in regards to the Linux kernel and the userland.
There's a joke from the 90's that goes something like "FreeBSD is what you get when Unix hackers write a Unix clone for the PC. Linux is what you get when PC hackers write a Unix clone for the PC." From the point of view of BSD or proprietary Unix fans, the early Linux distros were just throwing together a haphazard collection of poorly tested components.
In fact the only purpose of an init system is to start executables in a defined order, not more.
That's where the disagreement lies. I see the purpose of an init system as being to transition the machine from one state to another. Sometimes this means starting executables. Sometimes it means stopping them. Sometimes it involves more complicated tasks.
This is going to be like X, a huge pile of unmaintainable code
That is exactly my opinion of the shell scripts that previously handled networking.
It makes me wonder if Moorcock has ever actually read Tolkien.
Probably he just didn't read it thoroughly enough. Recent writers put characterization and moral ambiguities at the forefront of their stories, like Moorcock wanted. Tolkien (and the pre-modern works he imitated) put those elements in the background and make the reader dig them out.
Agreed about Jack Vance. I recommend Eyes of the Overworld/Cugel the Clever.
On Amazon, I usually ignore the average rating. Read some 1 and 2 star reviews, and see whether they make serious critiques or are one-sentence complaints that the writing style was too difficult.
Maybe I was too vague. I meant that a programmer would always use an API rather than scripted interactions with a GUI. An ordinary user might assume that programs use interfaces designed for humans, because the concept of an API doesn't even have a place in his mental model of how computers work.
The article shows an interesting illustration of the disconnect between programmers and normal computer users. Like the author says at the beginning, any experienced developer knows that automating interaction with a GUI is a crazy idea. It's a painful, fragile way to move data around. But to the author and anyone who's done data entry, it's an improvement to their workday that demonstrates the power of programming.
So much programming instruction seems designed to teach people who already understand programming how to solve problems that nonprogrammers wouldn't even understand. A tutorial that started with automating tasks like this might be more effective than all the ones that start by demonstrating how to do basic arithmetic in $LANGUAGE and go on to a detailed explanation of $LANGUAGE's object system.
While open source is great, its a terrible business model.
I think this is a necessary trade-off. Great business models often lead to monopoly and stagnation.
Because a right not to be offended requires a power to suppress offensiveness. The right to life and the right to property would be meaningless if murder and theft were decriminalized. In the same way, a right not to be offended implies that offensiveness must be punished.
The power to suppress murder is a relatively small power, and its limits are easily determined by laws and courts. A power to suppress offensiveness would be broad and vague, capable of suppressing anything anyone might object to. Since taking offense is so subjective, it would be difficult for this power to be administered by a neutral third party. It would be prone to abuses.
A right not to be offended requires an arbitrary power incompatible with freedom.