(I haven't read this paper yet, but I've read other Network Coding data and experimented with the idea myself)
With TCP, when a packet is lost you have to retransmit it. You could simply duplicate all packets, like using RAID1 for HDD redundancy. But this obviously wastes bandwidth.
Network coding combines packets in a more intelligent way. More like RAID5 / RAID6 with continuous adaptation based on network conditions. Any packet that arrives may allow you to deduce information that you haven't seen before. Basically each packet is the result of an equation like; f(p1, p2, p3) = a*p1 + b*p2 + c*p3. When each packet arrives, you attempt to solve the set of simultaneous equations you have received. When you have reduced each expression to just a single packet, you send it up the protocol stack.
You still need a TCP like acknowledgement scheme so that you can; rate limit the flow of packets based on measured congestion, tweak the percentage of redundant packets being sent due to measured packet loss, and advance the stream to include new data.
If you get the network coding parameters wrong, the connection still might stall, or you might be sending too much redundant data. If everything is going well, a link with 10% packet loss just means that your stream is transferred 10% slower.
What if you could transmit data without link layer flow control bogging down throughput with retransmission requests
TFS makes it look like network coding can magically send data without any form of ACK & Retransmit. Network coding still requires feedback from a flow control protocol. You need to tweak the percentage of extra packets to send based on the number of useful / useless packets arriving, and you still need to control the overall rate of transmitted packets to avoid congestion. The goal is to make sure that every packet that arrives is useful for decoding the stream, regardless of which packets are lost. So yes, it's a kind of automatically adapting error correction protocol for a stream service.
Modern compilers are amazing tools for optimising down to efficient machine code. But every step of the optimisation pipeline has been carefully designed, there's no strong AI there. Just a lot of heuristics.
In comparison, designing hardware still seems like a very manual process. IMHO there's plenty of room for automation improvements. But then, there are less people looking at the problem.
I could totally see a future where software is "compiled" into a mixture of CPU like, GPU like and FPGA like instructions without manual intervention. Or, if you really need the extra performance, output a design for an ASIC chip.
I'd predict that every step of the compilation pipeline would be as obvious and understandable as current compiler tools. With engineers working on optimisation passes at every layer. Tweaking the process to optimise for power consumption and/or gate count. It's just a question of finding the right motivation to do it.
DNSSEC should give you confidence that the person who currently "owns" the domain name is the same person who "owns" the server you're talking to. That should be enough for most casual connections. But it also puts all of your security in one basket. Take over the domain entry and you control everything.
So the next obvious step is to get multiple independent authorities to verify your identity, sign your key and provide that information via DNS and / or at connection establishment time. Then we should raise the bar for displaying a "This connection is secure and verified" in the browser to some minimum number of highly reputable signatures.
There's a simpler solution. Keep using GZip compression, but expose the sensitivity of strings to the compression layer. You could ensure that sensitive strings are transmitted as separate deflate blocks without any compression at all, and ignored for duplicate string elimination. All HTTP/2 would need to specify is the ordering of these values so that the compression can still be reasonably efficient for everything else.
Sure you need to actively modify network packets, rather than just monitor them. But without some form of authentication, man-in-the-middle attacks are trivial.
Writing queries on databases with large numbers of heavily normalised tables is a pain. Many queries end up similar or the same, with common table joins, and similar filter criteria. Sometimes this means you end up writing front end code to emit SQL, so that you can increase the flexibility of your application. And then you want to change the structure of a few tables. Good luck hunting down all of the queries in your app that need to change.
Or if a query gets too complicated for the database to use the right index. You end up re-writing the whole thing manually, using temporary tables, perhaps in a procedure.
Compilers have come a long way since databases and SQL were invented. Surely we can shift building query plans into the compilation process? Eliminate dead columns from the result set. Why stick with a just in time language when I'm sure we could build something better.
I don't have a problem with relational databases, but even though I'm pretty good at writing SQL queries, I don't like SQL as a language.
There should be a middle ground somewhere between SQL, Map-Reduce and Object Oriented coding styles. I want code reuse, I want encapsulation, I want LLVM-like compiler optimisations. I want to push as much processing down to where the data is, without needing to hand optimise everything.
We need a standard for publishing public keys in DNS, then signed by your registrar and secured via DNSSEC (or similar, I'm not claiming to be an expert on exactly what level of security DNSSEC provides). I mean we already trust the DNS system to some extent to handle proof of ownership, extending that system to give some form of cryptographic authentication at the connection level makes perfect sense to me. DNS registration is a weak link in the certificate chain already.
Of course a different name resolution system wouldn't hurt too.
More importantly, since they want a royalty payment on sales, why are they charging developers per month up-front? Wouldn't this reduce the number of developers willing to experiment with their engine?
I have wondered if the best way to measure password complexity is with an arithmetic compressor. Train it with a good dictionary, including words in various languages and any cracked passwords from hacked servers. The compressed size is the complexity measurement.
How many of the Dollars that you personally use are actually printed on paper (well, cloth or plastic in most places)? Most of the Dollars in circulation exist in bank ledgers, created by depositing the money from loans that banks have issued. Backed by the asset value of the banks balance sheet.
With the price of houses falling in the US, and the FED panicking and buying so many bank assets at face value...
If the ideas represented in the book are possible, the exchanges should take measures to ensure that these exploitable holes are closed. Measure the ping time between exchanges, delay *all* data about completed orders from exiting any of these exchanges for an equivalent amount of time. We're only talking about a delay somewhere between 50ms and 200ms applied fairly to everyone. This will ensure that if one player places an order at all of those exchanges, noone else can front-run any of the trades as they should all be filled before anyone else can learn of their existence. And you can achieve this without delaying the completion of trades at all.
AFAIK this new firefox design predates chrome. It just wasn't implemented till now. Google copied firefox, they were just first to market since they decided to start their browser from scratch and threw more resources at the problem.
Bank creates mortgage and records it in their asset column, and creates an entry for your loan in their liability column. Then you pay the vendor, which moves the liability from your account to theirs. If the vendor has a different bank, the two banks settle at the end of the day by borrowing overnight cash, or by repeating a very similar loan & deposit transaction with a central bank. And hey presto, the quantity and velocity of "money" in the economy has increased.
Banks don't lend from deposits or reserves. They lend the money first, which creates a matching deposit, and they borrow money later to meet their reserve and capital requirements if they have to.
We've given the power of the printing press to bank managers. They lend money that doesn't exist through the magic of double entry book keeping. We spend it to keep the economy going. And then we have to pay it back with interest. Except we aren't paying it back, we keep borrowing more.
During the 2007-2010 crisis, I was worried about deflation. It should have been worse than the aftermath of the 1929 crash. But it didn't quite happen. This time around it wasn't just businesses leveraged up to their eyeballs. When a business has to find cash to pay back their loans, they can slash prices on inventory, sell what they've got without ordering more and cut staff. All of this leads to a massive reduction in income, without managing to reduce debts much at all. In fact, since incomes fell so drastically, attempting to pay off debts caused them to rise.
While all those things did happen, this time around it was households holding a significant fraction of the debt. What is an individual going to do? Stop eating? Stop needing a roof over their heads?
Plus this time, we've managed to get everyone borrowing again. So the economy is back on track and heading upwards. We've recovered better than they did in the early 1930's. Here in Australia we managed to avoid a technical recession completely. Our PM at the time did everything he could to get spending money into the hands of every day people. He didn't give a cent directly to the banks, he didn't need to.
But we're not out of the woods, not by a long shot. Our mountain of debt is still there. On the average day in the 1930's the stock market was climbing, things were getting better. But then there was another crash. And the long term trend was still downwards. It was only with the outbreak of war and a massive spending spree on the part of the US gov, that debts finally reduced to sane levels.
History doesn't repeat exactly, but it certainly does rhyme. We're going to hit another crisis. The total debt level of the economy is too high for it to be otherwise. Some group of people out there are holding onto a lot of debt and are technically insolvent. At some point their creditors are going to notice and the whole stack of cards is going to tumble again. Who's it going to be? No idea.
Re:I don't think, they worry about non-US users
on
Hulu Blocks VPN Users
·
· Score: 1
This season in AU, the price is lower that last year. I don't think you need the HBO channel itself, they're carrying the show on one of the basic Foxtel channels. But there's still no way I'm signing up to cable for one show.
You can still have that price curve without region locking content. Heck you can do it with a single streaming service. Pay more for the higher bit-rate version, pay less after 6 months...
If I can get the bandwidth from Australia (though I probably can't), let me stream the content. If you don't I'll pirate it from someone who can. Heck that's the main reason we pirate so much down here. None of the major players have been giving us what we actually want, when we want it, for a price and level of convenience that makes it compelling.
me: "Hey at&t I need more phone lines in order to service all of my new customers"
at&t: "Sure that will be $X per line"
me: "What, but I'm already paying you for one line, can't you just let me handle more than one call over that? Your customers are the ones paying for the call, shouldn't you install more lines for free?"
So he mapped the layers of strata and their fossils, and noticed that these layers were mostly consistent over Britain. Then he applied this knowledge to identify these same layers in other places. This is not inconsistent with a flood that deposited all of these layers in a very short time frame. Initially with all of that material held in suspension as the water was moving quickly. With each layer of sediments and organisms settling out consistently across the entire area, as the water slows down. I'm not ignoring the data, I'm interpreting it differently.
So why are there so many organisms that only appear in the "older" layers, that still have surviving specimen in the wild?
(I haven't read this paper yet, but I've read other Network Coding data and experimented with the idea myself)
With TCP, when a packet is lost you have to retransmit it. You could simply duplicate all packets, like using RAID1 for HDD redundancy. But this obviously wastes bandwidth.
Network coding combines packets in a more intelligent way. More like RAID5 / RAID6 with continuous adaptation based on network conditions. Any packet that arrives may allow you to deduce information that you haven't seen before. Basically each packet is the result of an equation like; f(p1, p2, p3) = a*p1 + b*p2 + c*p3. When each packet arrives, you attempt to solve the set of simultaneous equations you have received. When you have reduced each expression to just a single packet, you send it up the protocol stack.
You still need a TCP like acknowledgement scheme so that you can; rate limit the flow of packets based on measured congestion, tweak the percentage of redundant packets being sent due to measured packet loss, and advance the stream to include new data.
If you get the network coding parameters wrong, the connection still might stall, or you might be sending too much redundant data. If everything is going well, a link with 10% packet loss just means that your stream is transferred 10% slower.
What if you could transmit data without link layer flow control bogging down throughput with retransmission requests
TFS makes it look like network coding can magically send data without any form of ACK & Retransmit. Network coding still requires feedback from a flow control protocol. You need to tweak the percentage of extra packets to send based on the number of useful / useless packets arriving, and you still need to control the overall rate of transmitted packets to avoid congestion. The goal is to make sure that every packet that arrives is useful for decoding the stream, regardless of which packets are lost. So yes, it's a kind of automatically adapting error correction protocol for a stream service.
Modern compilers are amazing tools for optimising down to efficient machine code. But every step of the optimisation pipeline has been carefully designed, there's no strong AI there. Just a lot of heuristics.
In comparison, designing hardware still seems like a very manual process. IMHO there's plenty of room for automation improvements. But then, there are less people looking at the problem.
I could totally see a future where software is "compiled" into a mixture of CPU like, GPU like and FPGA like instructions without manual intervention. Or, if you really need the extra performance, output a design for an ASIC chip.
I'd predict that every step of the compilation pipeline would be as obvious and understandable as current compiler tools. With engineers working on optimisation passes at every layer. Tweaking the process to optimise for power consumption and/or gate count. It's just a question of finding the right motivation to do it.
DNSSEC should give you confidence that the person who currently "owns" the domain name is the same person who "owns" the server you're talking to. That should be enough for most casual connections. But it also puts all of your security in one basket. Take over the domain entry and you control everything.
So the next obvious step is to get multiple independent authorities to verify your identity, sign your key and provide that information via DNS and / or at connection establishment time. Then we should raise the bar for displaying a "This connection is secure and verified" in the browser to some minimum number of highly reputable signatures.
There's a simpler solution. Keep using GZip compression, but expose the sensitivity of strings to the compression layer. You could ensure that sensitive strings are transmitted as separate deflate blocks without any compression at all, and ignored for duplicate string elimination. All HTTP/2 would need to specify is the ordering of these values so that the compression can still be reasonably efficient for everything else.
Sure you need to actively modify network packets, rather than just monitor them. But without some form of authentication, man-in-the-middle attacks are trivial.
Writing queries on databases with large numbers of heavily normalised tables is a pain. Many queries end up similar or the same, with common table joins, and similar filter criteria. Sometimes this means you end up writing front end code to emit SQL, so that you can increase the flexibility of your application. And then you want to change the structure of a few tables. Good luck hunting down all of the queries in your app that need to change.
Or if a query gets too complicated for the database to use the right index. You end up re-writing the whole thing manually, using temporary tables, perhaps in a procedure.
Compilers have come a long way since databases and SQL were invented. Surely we can shift building query plans into the compilation process? Eliminate dead columns from the result set. Why stick with a just in time language when I'm sure we could build something better.
I don't have a problem with relational databases, but even though I'm pretty good at writing SQL queries, I don't like SQL as a language.
There should be a middle ground somewhere between SQL, Map-Reduce and Object Oriented coding styles. I want code reuse, I want encapsulation, I want LLVM-like compiler optimisations. I want to push as much processing down to where the data is, without needing to hand optimise everything.
SQL doesn't provide much of those things.
If you can find someone motivated to use them, anything could happen.
We need a standard for publishing public keys in DNS, then signed by your registrar and secured via DNSSEC (or similar, I'm not claiming to be an expert on exactly what level of security DNSSEC provides). I mean we already trust the DNS system to some extent to handle proof of ownership, extending that system to give some form of cryptographic authentication at the connection level makes perfect sense to me. DNS registration is a weak link in the certificate chain already.
Of course a different name resolution system wouldn't hurt too.
"What does bitcoin smell like?"
No. Just no.
More importantly, since they want a royalty payment on sales, why are they charging developers per month up-front? Wouldn't this reduce the number of developers willing to experiment with their engine?
That battle was won when HD-DVD's security was practically broken. Not that Blu-ray lasted much longer.
I have wondered if the best way to measure password complexity is with an arithmetic compressor. Train it with a good dictionary, including words in various languages and any cracked passwords from hacked servers. The compressed size is the complexity measurement.
For basic apps like that, install the F-Droid installer. It only includes open source applications, built directly from source.
How many of the Dollars that you personally use are actually printed on paper (well, cloth or plastic in most places)? Most of the Dollars in circulation exist in bank ledgers, created by depositing the money from loans that banks have issued. Backed by the asset value of the banks balance sheet.
With the price of houses falling in the US, and the FED panicking and buying so many bank assets at face value...
If the ideas represented in the book are possible, the exchanges should take measures to ensure that these exploitable holes are closed. Measure the ping time between exchanges, delay *all* data about completed orders from exiting any of these exchanges for an equivalent amount of time. We're only talking about a delay somewhere between 50ms and 200ms applied fairly to everyone. This will ensure that if one player places an order at all of those exchanges, noone else can front-run any of the trades as they should all be filled before anyone else can learn of their existence. And you can achieve this without delaying the completion of trades at all.
AFAIK this new firefox design predates chrome. It just wasn't implemented till now. Google copied firefox, they were just first to market since they decided to start their browser from scratch and threw more resources at the problem.
Not that money multiplier myth again. Don't tell me you still believe in that old chestnut. Even the Bank of England has given up that myth.
Bank creates mortgage and records it in their asset column, and creates an entry for your loan in their liability column. Then you pay the vendor, which moves the liability from your account to theirs. If the vendor has a different bank, the two banks settle at the end of the day by borrowing overnight cash, or by repeating a very similar loan & deposit transaction with a central bank. And hey presto, the quantity and velocity of "money" in the economy has increased.
Banks don't lend from deposits or reserves. They lend the money first, which creates a matching deposit, and they borrow money later to meet their reserve and capital requirements if they have to.
We've given the power of the printing press to bank managers. They lend money that doesn't exist through the magic of double entry book keeping. We spend it to keep the economy going. And then we have to pay it back with interest. Except we aren't paying it back, we keep borrowing more.
During the 2007-2010 crisis, I was worried about deflation. It should have been worse than the aftermath of the 1929 crash. But it didn't quite happen. This time around it wasn't just businesses leveraged up to their eyeballs. When a business has to find cash to pay back their loans, they can slash prices on inventory, sell what they've got without ordering more and cut staff. All of this leads to a massive reduction in income, without managing to reduce debts much at all. In fact, since incomes fell so drastically, attempting to pay off debts caused them to rise.
While all those things did happen, this time around it was households holding a significant fraction of the debt. What is an individual going to do? Stop eating? Stop needing a roof over their heads?
Plus this time, we've managed to get everyone borrowing again. So the economy is back on track and heading upwards. We've recovered better than they did in the early 1930's. Here in Australia we managed to avoid a technical recession completely. Our PM at the time did everything he could to get spending money into the hands of every day people. He didn't give a cent directly to the banks, he didn't need to.
But we're not out of the woods, not by a long shot. Our mountain of debt is still there. On the average day in the 1930's the stock market was climbing, things were getting better. But then there was another crash. And the long term trend was still downwards. It was only with the outbreak of war and a massive spending spree on the part of the US gov, that debts finally reduced to sane levels.
History doesn't repeat exactly, but it certainly does rhyme. We're going to hit another crisis. The total debt level of the economy is too high for it to be otherwise. Some group of people out there are holding onto a lot of debt and are technically insolvent. At some point their creditors are going to notice and the whole stack of cards is going to tumble again. Who's it going to be? No idea.
This season in AU, the price is lower that last year. I don't think you need the HBO channel itself, they're carrying the show on one of the basic Foxtel channels. But there's still no way I'm signing up to cable for one show.
You can still have that price curve without region locking content. Heck you can do it with a single streaming service. Pay more for the higher bit-rate version, pay less after 6 months...
If I can get the bandwidth from Australia (though I probably can't), let me stream the content. If you don't I'll pirate it from someone who can. Heck that's the main reason we pirate so much down here. None of the major players have been giving us what we actually want, when we want it, for a price and level of convenience that makes it compelling.
Then there's the other half of the problem;
me: "Hey at&t I need more phone lines in order to service all of my new customers"
at&t: "Sure that will be $X per line"
me: "What, but I'm already paying you for one line, can't you just let me handle more than one call over that? Your customers are the ones paying for the call, shouldn't you install more lines for free?"
So he mapped the layers of strata and their fossils, and noticed that these layers were mostly consistent over Britain. Then he applied this knowledge to identify these same layers in other places. This is not inconsistent with a flood that deposited all of these layers in a very short time frame. Initially with all of that material held in suspension as the water was moving quickly. With each layer of sediments and organisms settling out consistently across the entire area, as the water slows down. I'm not ignoring the data, I'm interpreting it differently.
So why are there so many organisms that only appear in the "older" layers, that still have surviving specimen in the wild?