> But does a 200 line function have more bugs than 17 12-line functions calling each other
Yes, significantly so. Because when the author or reviewer are looking at it, they HAVE to divide it into chunks that are no more than twelve lines. That's about how much human short-term memory can hold. In the 200-line function, each chunk uses arbitrary variables also used in other chunks, chunks that are no longer in short-term memory.
By dividing the chunks explicitly, on purpose, you decide which variables get passed where and make that explicit in the function call.
> Sometimes multiple function can make code harder to understand.
Once you have a dozen inter-related functions, that's a class or library. Your software then uses that class, and the three short functions called by main() can be understood (reviewed, debugged) separately from each of the library functions.
I think in this most recent presidential election on the Republican side there were about six "traditional" candidates - successful government and business leaders who basically did what candidates do, and then there was Donald Trump. The votes for "some reasonable choice of a person with a good track record" got spread amongst several primary candidates, leaving Trump to pick up all of the "somebody different" vote. Plus Trump is just good at getting attention.
Also, we're living in a world where most voters have an attention span of 140 characters. People aren't reading in-depth analysis in the editorial pages, they are reading tweets.
> keep seeing people say that vertical monitors are better for coding. I say bullshit. If your function is exceeding 1080 points high, write shorter more self contained functions.
Agreed. A six-line function will very rarely have any bugs, and if there are any they'll be easy to find in code review and testing. A 12-line function is almost as reliable. A 200-line function normally has multiple bugs.
The reason is that human short-term memory can't hold and process more than about 6-12 items at once. Once you go past 12 lines, the programmer and reviewer have to mentally chop it up into multiple sections anyway, they can't mentally see the entire function *in all it's detail* at once. That creates bugs, and makes some of them hard to see.
Of course there are some exceptions, such as tables, lists of homogenous items.
A) In finance, if you owe an money, that's debt. It doesn't have to be money - because you borrowed money. If an airline has 50 planes delivered and hasn't paid for them yet, that's included in debt load. Compare liabilities, which can be non-money things owed.
B) We're talking about law, not finance. Let's look at the preeminent law dictionary, Black's Law Dictionary: --
A debt is a sum of money due by contract. It is most frequently due by a certain... ---
> That's a sales contract that has been fulfilled by one party and not the other...
Which is almost EXACTLY the legal definition of debt, when a contract says money is due and it hasn't yet been paid.:)
Suppose you have a $100K salary, a $50K deduction, and a 20% nominal tax rate. The government ends up with $10K, or 10% of your money. The net effective tax rate is 10%.
With the the deductions, credits, brackets, etc the nominal tax rate has little to do with the actual net rate, and those are different each year, and of course different in each country. So for comparison purposes we can use the total net tax defined as "how much does the government take". In pure communism, the government takes all of it. There are no private pay checks in complete communism, all the money goes to the government. Workers get only need-based government checks, what would be the rough equivalent of welfare in the United States. The government takes all the money and does what they choose with it - a 100% tax rate. Again, defining tax rate as "how much goes to the government", irrespective of games played with credits, deductions, brackets, etc.
If there is a credit that averages and a 30% tax rate what is the total net tax rate? 20%.
With the the deductions, credits, brackets, etc the nominal tax rate has little to do with the actual net rate, and those are different each year, and of course different in each country. So for comparison purposes we can use the total net tax defined as "how much does the government take". In pure communism, the government takes all of it. There are no private pay checks in complete communism, all the money goes to the government. Workers get only need-based government checks, what would be the rough equivalent of welfare in the United States. The government takes all the money and does what they choose with it is a 100% tax rate
Changing tax rates up or down doesn't "generally" move revenue either direction, it totally depends.
Starting with a communist country, 100% tax rate, cutting the rate by 80% will massively increase economic production and increase government revenue. Starting at a 0% tax rate, moving up to 20% will greatly increase government revenue. There is a rate which maximises revenue. If the current rate is too high, reducing it will boost the economy, increasing paychecks, and increase revenue. If the current rate is too low, increasing it will boost revenue to the government, at the cost of reducing people's paychecks.
There is of course a LOT of debate about what the ideal rate is for a given country, the rate which maximises government revenue. Studies indicate the best rate is probably somewhere between 20%-30%, that's the general range you get if you leave politics out of it and just try to objectively optimize revenue.
While either increasing or decreasing tax rates may increase government revenue, increased rates almost always decrease people's pay checks. Therefore it's better to err on the side of a tax rate that's slightly lower than what optimizes government revenue. Better for you to get $2000 and the government get $950 than for you to get $1000 and the government gets $1000.
Also of course the different types of taxes have completely different optimum rates. One of the best indicators for how well an economy will do is savings rate, how much people save up and invest. People who save up in a 401K now are generating revenue for the government both now and layer, so you want tax policy to strongly encourage savings and investment.
The same articles of the Constitution that say the feds set the money and states can't, also say that the feds CANNOT do anything other than the listed powers and all other powers are reserved to the states. So Constitutionally the states, not the feds, regulate possession of marijuana.
The feds Constitutionally regulate *interstate commerce* - in marijuana and other things. Try getting caught selling weed across state lines and see how that goes.
Section 8 of the Constitution also assigns to the federal government the establishment of uniform immigration law. It does not, however, compel states to use their police forces to enforce immigration law.
Try to name one single state that attempts to override federal law, Section 31 U.S.C. 5103 (the Coinage Act) by saying any debt whatsoever can't be paid in cash.
After you've searched for a while, you can read Section 10 of the US Constitution: No state shall... make anything but gold and silver coin a tender in payment of debts;
Which pairs with Section 8: The Congress shall have power to... To coin money, regulate the value thereof
The US Congress, and Congress alone, has the power to determine what is valid payment of a debt. The exercised that power in 31 U.S.C. 5103. It would be UNCONSTITUTIONAL under section 10 of the Constitution for any state to purport to set any other method of payment.
Right, they don't have to give you the food, if you offer them cash. They do not have to accept cash and THEN give you something for it.
AFTER you've eaten the food, they say you owe them the money. That's a debt. "For all debts, both public and private" means that once you owe them money (you've already gotten the food), you can pay that debt in cash. They can't force you to go get a credit card. They CAN ask you not to come back again with cash.
> They can require payment up front in bitcakes or credit corns BEFORE serving you.
> By the time you pay your check you are paying off a debt. > They can't refuse payment of that debt in cash.
Exactly. Before giving you the food they can say "we're not going to give you food until you give us a card.". Afterwards, if they don't like your payment offer, what can they do? They could sue you - and you could pay the judgement in cash:) The judge would be annoyed with them, so you'd be sure to countersue for wasting your time with a frivolous suit. The judge would probably enjoy having them pay YOU since they were being dumbasses.
> So, hopefully, everyone will "vote with their wallet" on this debacle.
Wells Fargo is offering high salaries for experienced computer security professionals, but because we're currently in high demand we are quite free to choose which companies we accept interviews with. Who wants to work for a bunch of scumbags, in a toxic corporate culture? Not I, and not any of the security professionals O talk to.
> The data I really want to see is how often this happens.
Every eight years or so. About half of El Niños see significant coral bleaching. The coral expels the zooxanthellae that live inside, so the coral doesn't have to provide for the zooxanthellae until the "weather" gets better. The natural white color of the coral is then visible. When conditions improve they let the zooxanthellae come back.
The coral can only survive so long without the zooxanthellae, maybe a year, so if the heat (or other adverse conditions) last several years, coral can die.
Researchers have a new way using AI. In currently deployed, publicly available systems, the best way is regex. The new AI way may be better.
While regex is a reasonably good tool for the task, I don't know that it's the BEST way currently used. A small, simple routine built specifically for the task may be better because regex takes characters in order. It's difficult (and slow) to build a really good regex for this because you mostly don't care what order they are in. You care that you have groups of upper case, lower case, numbers, and certain punctuation. Regex is good for finding this OR that, but not so good at this AND that AND that, in any order.
> That's assuming that it's an exponential and not either a power function or just an extremely fast, but semi-random, rate of decay.
It's not an exponential rate, a power rate, or a fast rate. It's not any kind of rate. It's an event that happened in 2017. A current came through. It happens.
The summary included a nod to that truth while the headline "since 2016" tried to puff it up as a global warming thing.
Linux is much, much more well-known than any of the BSDs. Each has their own *technical* merits, but from a *business* perspective, they probably want to sell something that many people will want. Far more people have a favorable view of Linux than the total number of people who have *heard* of the BSDs.
Blackfin was discussed. It's not being removed at this time. A manufacturer using Blackfin, or someone who wants to keep support in newer kernels, will need to step up, though, or it will be removed soon.
Typically old hardware isn't dropped if we know someone is using it. Of course there are exceptions when a stack gets a major rewrite. If there is discussion about dropping support for something you use, just let us know on lkml.
Typically they'll leave old hardware in of anyone says they are USING it. It won't necessarily see new development. I've seen several lkml posts asking "is anyone using _____? If not, we'll remove it."
According to Scrum.org, a big part of Agile competence is understanding what the entire point of Agile is, and it's NOT supposed to make development faster or cheaper.
The point of Agile and Scrum, according to an article on Scrum.org, is to provide a way to deal with situations where you can't go sit with users to understand what the actual requirements are, and you can't look at some legacy system you're replacing, so you have no way of defining the requirements except "try something and ask users if it's getting closer to what they want." Scrum is a system to quick iterate through different things, presenting each possible deliverable until you get close to what users need.
If you CAN go sit with users and take notes as you watch them work, if you CAN look carefully at the system you're replacing, if you have any way of defining requirements before you start coding, Agile iterations will take LONGER than just defining the requirements and then building something that meets the requirements (while being conscious of boxing yourself in, because next year requirements may change a bit).
"Get other people interested" is right, and I'd say start that by thinking about WHO would be interested. Would you project be useful? If so, to whom? Especially if certain industries or types of businesses would find it useful, write that down. Write down WHY it would be better, for them, than existing alternatives.
As other commenters said "a new compiler" sounds questionable, and I wonder if you mean either "a new language" or a "translator from one language to another". If you're actually thinking a new *compiler* for an existing language, you probably have at least a thousand man-hours of work to do in order to get close to parity with existing compilers. Even then, doubtful it would make sense to write a whole new compiler; you'd instead either write a front-end for llvm or just use a compiler-generator like yacc, which automatically (and nearly instantly) creates your compiler for you.
Note that a new language has to be a LOT better than the old, on technical merits, in order to replace the old because there is a large cost to switching. I've been studying C for years and I use tools and libraries that have been developed over decades, interacting with APIs written by thousands of people. A language with minor technical benefits wouldn't be worth learning not just the new language but new tools and libraries. That's one reason C is still very widely used 45 years after it was introduced. In the last 45 years, people have introduced languages that are objectively slightly better for the tasks C is used for, but none of those languages has been ENOUGH better to overcome the change cost for systems programming, embedded, etc.
Price limits could be a good idea. Maximum prices would protect riders (and Uber's reputation). Minimum prices would prevent math-challenged drivers from losing money by pricing themselves lower than the cost of gas, tires, and mileage, thereby making it impossible for drivers to make money, and again damaging Uber's reputation.
In an ideal economy, we wouldn't need to protect drivers who can't (or don't) do simple arithmetic, but in America I'm afraid we do.
> But does a 200 line function have more bugs than 17 12-line functions calling each other
Yes, significantly so. Because when the author or reviewer are looking at it, they HAVE to divide it into chunks that are no more than twelve lines. That's about how much human short-term memory can hold. In the 200-line function, each chunk uses arbitrary variables also used in other chunks, chunks that are no longer in short-term memory.
By dividing the chunks explicitly, on purpose, you decide which variables get passed where and make that explicit in the function call.
> Sometimes multiple function can make code harder to understand.
Once you have a dozen inter-related functions, that's a class or library. Your software then uses that class, and the three short functions called by main() can be understood (reviewed, debugged) separately from each of the library functions.
Indeed, there were a lot of "Never Trump" people. They didn't all rally around one candidate, though.
The caucus system, used in 14 states, is more like a run-off, but it has its own problems.
I think in this most recent presidential election on the Republican side there were about six "traditional" candidates - successful government and business leaders who basically did what candidates do, and then there was Donald Trump. The votes for "some reasonable choice of a person with a good track record" got spread amongst several primary candidates, leaving Trump to pick up all of the "somebody different" vote. Plus Trump is just good at getting attention.
Also, we're living in a world where most voters have an attention span of 140 characters. People aren't reading in-depth analysis in the editorial pages, they are reading tweets.
> keep seeing people say that vertical monitors are better for coding. I say bullshit. If your function is exceeding 1080 points high, write shorter more self contained functions.
Agreed. A six-line function will very rarely have any bugs, and if there are any they'll be easy to find in code review and testing. A 12-line function is almost as reliable. A 200-line function normally has multiple bugs.
The reason is that human short-term memory can't hold and process more than about 6-12 items at once. Once you go past 12 lines, the programmer and reviewer have to mentally chop it up into multiple sections anyway, they can't mentally see the entire function *in all it's detail* at once. That creates bugs, and makes some of them hard to see.
Of course there are some exceptions, such as tables, lists of homogenous items.
A) In finance, if you owe an money, that's debt. It doesn't have to be money - because you borrowed money. If an airline has 50 planes delivered and hasn't paid for them yet, that's included in debt load. Compare liabilities, which can be non-money things owed.
B) We're talking about law, not finance. Let's look at the preeminent law dictionary, Black's Law Dictionary:
--
A debt is a sum of money due by contract. It is most frequently due by a certain...
---
> That's a sales contract that has been fulfilled by one party and not the other ...
Which is almost EXACTLY the legal definition of debt, when a contract says money is due and it hasn't yet been paid. :)
Suppose you have a $100K salary, a $50K deduction, and a 20% nominal tax rate. The government ends up with $10K, or 10% of your money. The net effective tax rate is 10%.
With the the deductions, credits, brackets, etc the nominal tax rate has little to do with the actual net rate, and those are different each year, and of course different in each country. So for comparison purposes we can use the total net tax defined as "how much does the government take". In pure communism, the government takes all of it. There are no private pay checks in complete communism, all the money goes to the government. Workers get only need-based government checks, what would be the rough equivalent of welfare in the United States. The government takes all the money and does what they choose with it - a 100% tax rate. Again, defining tax rate as "how much goes to the government", irrespective of games played with credits, deductions, brackets, etc.
If there is a credit that averages and a 30% tax rate what is the total net tax rate? 20%.
With the the deductions, credits, brackets, etc the nominal tax rate has little to do with the actual net rate, and those are different each year, and of course different in each country. So for comparison purposes we can use the total net tax defined as "how much does the government take". In pure communism, the government takes all of it. There are no private pay checks in complete communism, all the money goes to the government. Workers get only need-based government checks, what would be the rough equivalent of welfare in the United States. The government takes all the money and does what they choose with it is a 100% tax rate
Changing tax rates up or down doesn't "generally" move revenue either direction, it totally depends.
Starting with a communist country, 100% tax rate, cutting the rate by 80% will massively increase economic production and increase government revenue. Starting at a 0% tax rate, moving up to 20% will greatly increase government revenue. There is a rate which maximises revenue. If the current rate is too high, reducing it will boost the economy, increasing paychecks, and increase revenue. If the current rate is too low, increasing it will boost revenue to the government, at the cost of reducing people's paychecks.
There is of course a LOT of debate about what the ideal rate is for a given country, the rate which maximises government revenue. Studies indicate the best rate is probably somewhere between 20%-30%, that's the general range you get if you leave politics out of it and just try to objectively optimize revenue.
While either increasing or decreasing tax rates may increase government revenue, increased rates almost always decrease people's pay checks. Therefore it's better to err on the side of a tax rate that's slightly lower than what optimizes government revenue. Better for you to get $2000 and the government get $950 than for you to get $1000 and the government gets $1000.
Also of course the different types of taxes have completely different optimum rates. One of the best indicators for how well an economy will do is savings rate, how much people save up and invest. People who save up in a 401K now are generating revenue for the government both now and layer, so you want tax policy to strongly encourage savings and investment.
The same articles of the Constitution that say the feds set the money and states can't, also say that the feds CANNOT do anything other than the listed powers and all other powers are reserved to the states. So Constitutionally the states, not the feds, regulate possession of marijuana.
The feds Constitutionally regulate *interstate commerce* - in marijuana and other things. Try getting caught selling weed across state lines and see how that goes.
Section 8 of the Constitution also assigns to the federal government the establishment of uniform immigration law. It does not, however, compel states to use their police forces to enforce immigration law.
Try to name one single state that attempts to override federal law, Section 31 U.S.C. 5103 (the Coinage Act) by saying any debt whatsoever can't be paid in cash.
After you've searched for a while, you can read Section 10 of the US Constitution: ... make anything but gold and silver coin a tender in payment of debts;
No state shall
Which pairs with Section 8: ... To coin money, regulate the value thereof
The Congress shall have power to
The US Congress, and Congress alone, has the power to determine what is valid payment of a debt. The exercised that power in 31 U.S.C. 5103. It would be UNCONSTITUTIONAL under section 10 of the Constitution for any state to purport to set any other method of payment.
Right, they don't have to give you the food, if you offer them cash. They do not have to accept cash and THEN give you something for it.
AFTER you've eaten the food, they say you owe them the money. That's a debt. "For all debts, both public and private" means that once you owe them money (you've already gotten the food), you can pay that debt in cash. They can't force you to go get a credit card. They CAN ask you not to come back again with cash.
> They can require payment up front in bitcakes or credit corns BEFORE serving you.
> By the time you pay your check you are paying off a debt.
> They can't refuse payment of that debt in cash.
Exactly. Before giving you the food they can say "we're not going to give you food until you give us a card.". Afterwards, if they don't like your payment offer, what can they do? They could sue you - and you could pay the judgement in cash :) The judge would be annoyed with them, so you'd be sure to countersue for wasting your time with a frivolous suit. The judge would probably enjoy having them pay YOU since they were being dumbasses.
> So, hopefully, everyone will "vote with their wallet" on this debacle.
Wells Fargo is offering high salaries for experienced computer security professionals, but because we're currently in high demand we are quite free to choose which companies we accept interviews with. Who wants to work for a bunch of scumbags, in a toxic corporate culture? Not I, and not any of the security professionals O talk to.
> The data I really want to see is how often this happens.
Every eight years or so. About half of El Niños see significant coral bleaching. The coral expels the zooxanthellae that live inside, so the coral doesn't have to provide for the zooxanthellae until the "weather" gets better. The natural white color of the coral is then visible. When conditions improve they let the zooxanthellae come back.
The coral can only survive so long without the zooxanthellae, maybe a year, so if the heat (or other adverse conditions) last several years, coral can die.
I think what they are trying to say is this:
Researchers have a new way using AI.
In currently deployed, publicly available systems, the best way is regex. The new AI way may be better.
While regex is a reasonably good tool for the task, I don't know that it's the BEST way currently used. A small, simple routine built specifically for the task may be better because regex takes characters in order. It's difficult (and slow) to build a really good regex for this because you mostly don't care what order they are in. You care that you have groups of upper case, lower case, numbers, and certain punctuation. Regex is good for finding this OR that, but not so good at this AND that AND that, in any order.
> That's assuming that it's an exponential and not either a power function or just an extremely fast, but semi-random, rate of decay.
It's not an exponential rate, a power rate, or a fast rate. It's not any kind of rate. It's an event that happened in 2017. A current came through. It happens.
The summary included a nod to that truth while the headline "since 2016" tried to puff it up as a global warming thing.
Linux is much, much more well-known than any of the BSDs. Each has their own *technical* merits, but from a *business* perspective, they probably want to sell something that many people will want. Far more people have a favorable view of Linux than the total number of people who have *heard* of the BSDs.
https://www.scrum.org/resource...
Blackfin was discussed. It's not being removed at this time.
A manufacturer using Blackfin, or someone who wants to keep support in newer kernels, will need to step up, though, or it will be removed soon.
Typically old hardware isn't dropped if we know someone is using it. Of course there are exceptions when a stack gets a major rewrite. If there is discussion about dropping support for something you use, just let us know on lkml.
Typically they'll leave old hardware in of anyone says they are USING it. It won't necessarily see new development. I've seen several lkml posts asking "is anyone using _____? If not, we'll remove it."
According to Scrum.org, a big part of Agile competence is understanding what the entire point of Agile is, and it's NOT supposed to make development faster or cheaper.
The point of Agile and Scrum, according to an article on Scrum.org, is to provide a way to deal with situations where you can't go sit with users to understand what the actual requirements are, and you can't look at some legacy system you're replacing, so you have no way of defining the requirements except "try something and ask users if it's getting closer to what they want." Scrum is a system to quick iterate through different things, presenting each possible deliverable until you get close to what users need.
If you CAN go sit with users and take notes as you watch them work, if you CAN look carefully at the system you're replacing, if you have any way of defining requirements before you start coding, Agile iterations will take LONGER than just defining the requirements and then building something that meets the requirements (while being conscious of boxing yourself in, because next year requirements may change a bit).
> The static nature of C makes it really slow unless you're writing very static code with very simple data.
Of the 500 fastest supercomputers in the world, 500 are C-based systems. C is the ONLY language used by super-fast systems.
>Implementing relocatable memory in C is basically impossible
Please see - well anything under /usr/lib.
Otherwise, it sounds like basically you're trying to say "I forget to call free() after I malloc some memory".
"Get other people interested" is right, and I'd say start that by thinking about WHO would be interested. Would you project be useful? If so, to whom? Especially if certain industries or types of businesses would find it useful, write that down. Write down WHY it would be better, for them, than existing alternatives.
As other commenters said "a new compiler" sounds questionable, and I wonder if you mean either "a new language" or a "translator from one language to another". If you're actually thinking a new *compiler* for an existing language, you probably have at least a thousand man-hours of work to do in order to get close to parity with existing compilers. Even then, doubtful it would make sense to write a whole new compiler; you'd instead either write a front-end for llvm or just use a compiler-generator like yacc, which automatically (and nearly instantly) creates your compiler for you.
Note that a new language has to be a LOT better than the old, on technical merits, in order to replace the old because there is a large cost to switching. I've been studying C for years and I use tools and libraries that have been developed over decades, interacting with APIs written by thousands of people. A language with minor technical benefits wouldn't be worth learning not just the new language but new tools and libraries. That's one reason C is still very widely used 45 years after it was introduced. In the last 45 years, people have introduced languages that are objectively slightly better for the tasks C is used for, but none of those languages has been ENOUGH better to overcome the change cost for systems programming, embedded, etc.
"Zero is very close to one" - that's true! Lol
Price limits could be a good idea. Maximum prices would protect riders (and Uber's reputation). Minimum prices would prevent math-challenged drivers from losing money by pricing themselves lower than the cost of gas, tires, and mileage, thereby making it impossible for drivers to make money, and again damaging Uber's reputation.
In an ideal economy, we wouldn't need to protect drivers who can't (or don't) do simple arithmetic, but in America I'm afraid we do.