Skype does well at poking holes through NAT, it uses a couple of pretty neat tricks to do it. You can tell that this works because it's manual doesn't have a "what incoming ports do I need to open for feature X to work?" page (there is one for outgoing ports, but it mostly says "anything is nice, but in a pinch, HTTPS will do").
Skype is actually mostly P2P in operation, from what I understand.
Any successful solution needs to duplicate the tricks that Skype uses for port tunnelling, or it's not going to be taken up by the masses. And being taken up by the masses is the cornerstone of success for any communications program.
There's mostly no motivation for an ISP to do it, because most of them are also your telephone company, and they'd be killing their long-distance calling business stone dead.
Given that VoIP of any sort will eventually do this for them anyway, they should be setting up their own VoIP servers as a value-add (and maybe even charging a few bucks a month for them), rather than doing the opposite, which is attempting to prevent VoIP from taking hold.
VB6 has an _option_ to compile to p-code interpreted executables, which is not switched on by default.
Native binaries produced by VB6 _do_ have a lot of dependencies on the VB runtimes, because it uses them for a lot of it's internal implementation, like bounds checks on primitive types, it's String type, it's array type (which is not a raw array like C but an array class), but they are definitely native binaries. Many of these runtime checks contribute to the perception that VB6 is slow - you can turn a lot of them off in the compiler options. I think you might even be able to remove it's dependency on the runtimes, but that's really a bit pointless for what is designed to be a rapid prototyping / development system - it would be the equivalent of removing all the Python runtimes and wondering why your pace of development ground to a halt.
The main thing that makes people think VB6 is slow is they build large strings by concatenating them - because the VB6 String is an immutable BSTR, this means that every time you append a character, it copies the whole string. Unlike Java, it lacked a StringBuilder class in the base runtimes, and you had to roll your own using memcopy() APIs.
People think VB6 was terrible because it would let you get away with stupid crap. Couple that to it's relatively shallow learning curve and you got a lot of low-quality but otherwise functional programs written by people with less than stellar programming ability, which then go on to cause massive maintenance headaches for people who program professionally.
One of the ancestor posters was right on the money though - it was and remains a way of knocking out something functional very quickly. If you wanted to write something a little more complex in it, you had to be a real hard-ass with yourself, because VB would give you a lot of rope to hang yourself with. But with discipline, and sometimes some advanced tricks to work around it's limitations, you could write high quality, functional software, very quickly compared to C++.
My VB6 skills are kind of my pension plan... it really is the modern COBOL. I see so many job opportunities now that are thinly veiled "VB6 maintenance programmer" roles.
This is about the GNOME Toolkit (GTK) rather than the GNOME shell itself (which doesn't run on Windows AFAIK). The Windows port allows applications like GIMP to run on Windows.
Removing support for other environments would be a double-edged sword. On the one hand, it would allow you to concentrate more efforts on making the Linux features better. On the flipside, it could really hurt open-source adoption - if GTK apps become unavailable on Windows, you obviously can't try them out without running Linux, which is a bridge too far for many people. If you try out GTK apps, and like them, they become a bridge to adopting Linux ; you can be sure that the apps you found useful are available to you on your new platform.
I'd probably not have too many qualms about dropping support for OS/X - after all, they are in a minority. But I can't help but feel that dropping support for Windows is a mistake.
I keep wanting a password input that works off a keycode stream, not a string.
That way your password could include deletions, modifier keys, and other unusual combinations. It sounds less fragile than this approach, although it might be interesting on devices with different keyboard layouts.
How is that different from cash? If I give you a $20, no one will know it happened except for us.
They are trying really hard - both European and US issuers of currency have been looking at embedding uniquely numbered RFID tags in bank notes. This makes it a lot easier to track the movements of cash. While this obviously doesn't provide 100% coverage, it makes things like every cash transaction being logged much more feasible - including the serial numbers of the banknotes. Most large corporate entities would see this as an advantage. Wal-Mart has been mandating RFID tracking on much of it's stock for years, I'm sure it would be first to the party on RFID tracking of cash.
Register with Amazon. Enter card number, name, address, CVV number. Get punted to my bank website to enter randomly selected characters from a password.
Bitcoin :
Register with Amazon. Paste Amazon's per-customer bitcoin address into my client, enter the amount, push "Send".
They are about equivalent in terms of complexity, methinks.
The Bitcoin method has the advantage that Amazon cannot retain any details that could be stolen to help siphon Bitcoins from my balance.
The URLs are possible to retain if you run a transparent proxy (which most ISPs seem to do these days). The email headers, that probably refers to headers on mails transmitted via their SMTP relays. Neither of these requires DPI, and it would be a more expensive way of acquiring this data.
It's a badly phrased summary - it makes is ambiguous about what is illegal here.
Using text messaging apps and VoIP isn't illegal in the Netherlands, by the way. It's the Deep Packet Inspection that's illegal, in the opinion of a lobbyist quoted in one of the linked stories.
This is why we really need to spread out our research on fusion ; it's far more intrinsically safe.
Fission reactors are based on the premise of controlling something that runs away from you if you let it. So if you stop trying (cut costs, etc), something disastrous happens.
If you stop trying hard enough to make fusion work, it just stops working.
Hmm. I agree the GP is a foam-mouthed radical, but I take issue with the idea that those that choose to use BSD-style licenses are somehow more altruistic than those who use copyleft licenses - in my view, it's less likely that they are being purely altruistic, because they are using a license that they know will curry them favour with their commercial partners. On the flip side, those releasing code under copyleft licenses are doing so in the hope that it will encourage others to give the same gift as a result.
I also take issue with the whole "permissive" / "restrictive" badging - I prefer to think of it as "promiscuous" (goes with anyone, even for money) and "freedom-preserving";-)
I can't speak for PHP, but in C# that only applies to primitive types. C# has exactly the same behaviour as your JavaScript snippet. As does every other language that supports reference types.
public class RefAssign {
public int change; }
public class Program {
public static void Main(string[] args) {
RefAssign oldObject = new RefAssign();
oldObject.change = 1;
RefAssign newObject = oldObject;
newObject.change = 5;
System.Console.WriteLine(oldObject.change);// Emits '5' on the console
} }
If people could do it, they would. Noise is wasted energy. Wasted energy is greater fuel consumption.
The trade off making it quieter is presumably that you get less thrust to move the chopper around with. There are suggestions that this lack of manoeuvrability is what caused the crash in the first place.
I'm more interested in the alternate hot-fusion approaches, the ones that haven't cost $30B so far.
Bussard's EMC2 corporation continues to receive Navy funding. Lawrenceville Plasma Physics seem to be making progress on their dense plasma focus based design (with their product having a secondary use as a portable high power X-Ray source). The history of innovation is littered with projects that got by on a shoestring and produced surprising successes. Projects that went massively over budget and timeline yet still produced something of worth are less common.
And these projects neatly sidestep the whole issue of where we are going to get all that unobtanium (helium-3 or tritium) from by proposing to use something so common and cheap it gets used as eyewash (boron).
What annoys me more is the equally sick and dying 4:3 flatpanel industry.
The ridiculous economies of scale involved in producing LCD TV panels mean that a decent computer panel is harder to come by. As long as you don't mind a low vertical resolution of just over 1000 pixels, you're in luck, because they are cheaper than ever. But if you actually want progress, you need to splash some serious cash.
I mean, FFS, I was using a 1600x1200 panel when my laptop had Windows NT on it. I'm searching through the HP website looking at laptops. I can't seem to find a screen with a vertical resolution above 768 pixels on anything less than £1000 ; and it's a bloody struggle to even tell what the resolution on most of the higher end models is. "HD"? Well, some people claimed 768 was HD, so forgive me for not trusting that that means anything... grrrr.
They were the straw that broke the camels back - they wanted to charge to use their machine, on top of the charge from the card issuer for using a foreign machine. The resulting fuss caused all the banks to rethink and drop ALL their ATM transaction fees (from the customer perspective).
Cashback here is limited to larger stores in general. It's something I will use, but I go long enough between visits that I need to visit an ATM to grab some lunch money. Perhaps we don't habitually carry as much cash as a result - I rarely carry over £50 ($82) unless I know I'll be away from an ATM or I'm planning to spend heavily.
The population density thing, I totally get. It probably is worth it to avoid driving an hour or something similarly stupid. I even understand it for situations like nightclubs where the utility cost of leaving, finding an ATM, not getting mugged, and getting the bouncer to let you back in, and having your "pull" survive the 20 minute break, outweighs a few dollars.
And Wikipedia says that 60% of your ATMs are of the third-party variety, so I guess the market agrees too.
One thing that did shock me some more on reading is that some ATMs in the USA charge "denial" fees, for telling you that you can't have any money (because none is left or you exceeded your daily withdrawal limit). That's just nasty.
It likewise predates the web here ; I do remember the age when you had to go to the right bank, but never experienced that myself. But I don't think I remember any time when you were charged for withdrawing from your own bank (my mother would never have stood for that).
In the end it was the planned combination of charges by the card issuer AND the machine operator that was the last straw for any kind of ATM fees in this country. It would seem that the USA has accepted this state of affairs.:-(
I prefer human checkout operators - they're faster than robo-checkouts. The majority of the time spent checking out is rotating the goods so the barcode is visible to the laser sensor and selecting the correct item for produce by weight - both of which are something that a human has to do, and which a checkout operator has much more skill at than myself. On top of that, a robo-checkout adds a mandatory pause after each item to check the bag scale to make sure the barcode matches the mass of the item you put in the bag, so even if you DO get as fast as a checkout operator at scanning, you won't be able to operate at full speed.
The only reason to use a robo-checkout I can think of is when you're in a hurry, you only have one item, the other checkouts are saturated, and the robo-checkout lane is empty because they are so crap. Even then, I prefer to use the human lane - a minimum wage checkout worker needs their job more than I need to buy stupid crap faster.
Skype does well at poking holes through NAT, it uses a couple of pretty neat tricks to do it. You can tell that this works because it's manual doesn't have a "what incoming ports do I need to open for feature X to work?" page (there is one for outgoing ports, but it mostly says "anything is nice, but in a pinch, HTTPS will do").
Skype is actually mostly P2P in operation, from what I understand.
Any successful solution needs to duplicate the tricks that Skype uses for port tunnelling, or it's not going to be taken up by the masses. And being taken up by the masses is the cornerstone of success for any communications program.
There's mostly no motivation for an ISP to do it, because most of them are also your telephone company, and they'd be killing their long-distance calling business stone dead.
Given that VoIP of any sort will eventually do this for them anyway, they should be setting up their own VoIP servers as a value-add (and maybe even charging a few bucks a month for them), rather than doing the opposite, which is attempting to prevent VoIP from taking hold.
In the UK "the pavement" is the sidewalk.
They actually use dermal contact electrodes to get into cyberspace.
The jacks behind the ear are for installing software into your brain (called "microsoft", ironically), like languages or databases.
No, it doesn't.
VB6 has an _option_ to compile to p-code interpreted executables, which is not switched on by default.
Native binaries produced by VB6 _do_ have a lot of dependencies on the VB runtimes, because it uses them for a lot of it's internal implementation, like bounds checks on primitive types, it's String type, it's array type (which is not a raw array like C but an array class), but they are definitely native binaries. Many of these runtime checks contribute to the perception that VB6 is slow - you can turn a lot of them off in the compiler options. I think you might even be able to remove it's dependency on the runtimes, but that's really a bit pointless for what is designed to be a rapid prototyping / development system - it would be the equivalent of removing all the Python runtimes and wondering why your pace of development ground to a halt.
The main thing that makes people think VB6 is slow is they build large strings by concatenating them - because the VB6 String is an immutable BSTR, this means that every time you append a character, it copies the whole string. Unlike Java, it lacked a StringBuilder class in the base runtimes, and you had to roll your own using memcopy() APIs.
People think VB6 was terrible because it would let you get away with stupid crap. Couple that to it's relatively shallow learning curve and you got a lot of low-quality but otherwise functional programs written by people with less than stellar programming ability, which then go on to cause massive maintenance headaches for people who program professionally.
One of the ancestor posters was right on the money though - it was and remains a way of knocking out something functional very quickly. If you wanted to write something a little more complex in it, you had to be a real hard-ass with yourself, because VB would give you a lot of rope to hang yourself with. But with discipline, and sometimes some advanced tricks to work around it's limitations, you could write high quality, functional software, very quickly compared to C++.
My VB6 skills are kind of my pension plan... it really is the modern COBOL. I see so many job opportunities now that are thinly veiled "VB6 maintenance programmer" roles.
Apologies, I thought they'd backronym-ed it by now.
Or maybe I'm talking out of my butt, and it IS about the shell. Should RTFA.
This is about the GNOME Toolkit (GTK) rather than the GNOME shell itself (which doesn't run on Windows AFAIK). The Windows port allows applications like GIMP to run on Windows.
Removing support for other environments would be a double-edged sword. On the one hand, it would allow you to concentrate more efforts on making the Linux features better. On the flipside, it could really hurt open-source adoption - if GTK apps become unavailable on Windows, you obviously can't try them out without running Linux, which is a bridge too far for many people. If you try out GTK apps, and like them, they become a bridge to adopting Linux ; you can be sure that the apps you found useful are available to you on your new platform.
I'd probably not have too many qualms about dropping support for OS/X - after all, they are in a minority. But I can't help but feel that dropping support for Windows is a mistake.
I keep wanting a password input that works off a keycode stream, not a string.
That way your password could include deletions, modifier keys, and other unusual combinations. It sounds less fragile than this approach, although it might be interesting on devices with different keyboard layouts.
How is that different from cash? If I give you a $20, no one will know it happened except for us.
They are trying really hard - both European and US issuers of currency have been looking at embedding uniquely numbered RFID tags in bank notes. This makes it a lot easier to track the movements of cash. While this obviously doesn't provide 100% coverage, it makes things like every cash transaction being logged much more feasible - including the serial numbers of the banknotes. Most large corporate entities would see this as an advantage. Wal-Mart has been mandating RFID tracking on much of it's stock for years, I'm sure it would be first to the party on RFID tracking of cash.
Card :
Register with Amazon. Enter card number, name, address, CVV number. Get punted to my bank website to enter randomly selected characters from a password.
Bitcoin :
Register with Amazon. Paste Amazon's per-customer bitcoin address into my client, enter the amount, push "Send".
They are about equivalent in terms of complexity, methinks.
The Bitcoin method has the advantage that Amazon cannot retain any details that could be stolen to help siphon Bitcoins from my balance.
The URLs are possible to retain if you run a transparent proxy (which most ISPs seem to do these days). The email headers, that probably refers to headers on mails transmitted via their SMTP relays. Neither of these requires DPI, and it would be a more expensive way of acquiring this data.
It's a badly phrased summary - it makes is ambiguous about what is illegal here.
Using text messaging apps and VoIP isn't illegal in the Netherlands, by the way. It's the Deep Packet Inspection that's illegal, in the opinion of a lobbyist quoted in one of the linked stories.
This is why we really need to spread out our research on fusion ; it's far more intrinsically safe.
Fission reactors are based on the premise of controlling something that runs away from you if you let it. So if you stop trying (cut costs, etc), something disastrous happens.
If you stop trying hard enough to make fusion work, it just stops working.
Hmm. I agree the GP is a foam-mouthed radical, but I take issue with the idea that those that choose to use BSD-style licenses are somehow more altruistic than those who use copyleft licenses - in my view, it's less likely that they are being purely altruistic, because they are using a license that they know will curry them favour with their commercial partners. On the flip side, those releasing code under copyleft licenses are doing so in the hope that it will encourage others to give the same gift as a result.
I also take issue with the whole "permissive" / "restrictive" badging - I prefer to think of it as "promiscuous" (goes with anyone, even for money) and "freedom-preserving" ;-)
I can't speak for PHP, but in C# that only applies to primitive types. C# has exactly the same behaviour as your JavaScript snippet. As does every other language that supports reference types.
public class RefAssign {
public int change;
}
public class Program { // Emits '5' on the console
public static void Main(string[] args) {
RefAssign oldObject = new RefAssign();
oldObject.change = 1;
RefAssign newObject = oldObject;
newObject.change = 5;
System.Console.WriteLine(oldObject.change);
}
}
Not by default. By default, their shell association is to open in notepad. Which I actually prefer.
If people could do it, they would. Noise is wasted energy. Wasted energy is greater fuel consumption.
The trade off making it quieter is presumably that you get less thrust to move the chopper around with. There are suggestions that this lack of manoeuvrability is what caused the crash in the first place.
I'm more interested in the alternate hot-fusion approaches, the ones that haven't cost $30B so far.
Bussard's EMC2 corporation continues to receive Navy funding. Lawrenceville Plasma Physics seem to be making progress on their dense plasma focus based design (with their product having a secondary use as a portable high power X-Ray source). The history of innovation is littered with projects that got by on a shoestring and produced surprising successes. Projects that went massively over budget and timeline yet still produced something of worth are less common.
And these projects neatly sidestep the whole issue of where we are going to get all that unobtanium (helium-3 or tritium) from by proposing to use something so common and cheap it gets used as eyewash (boron).
What annoys me more is the equally sick and dying 4:3 flatpanel industry.
The ridiculous economies of scale involved in producing LCD TV panels mean that a decent computer panel is harder to come by. As long as you don't mind a low vertical resolution of just over 1000 pixels, you're in luck, because they are cheaper than ever. But if you actually want progress, you need to splash some serious cash.
I mean, FFS, I was using a 1600x1200 panel when my laptop had Windows NT on it. I'm searching through the HP website looking at laptops. I can't seem to find a screen with a vertical resolution above 768 pixels on anything less than £1000 ; and it's a bloody struggle to even tell what the resolution on most of the higher end models is. "HD"? Well, some people claimed 768 was HD, so forgive me for not trusting that that means anything... grrrr.
They were the straw that broke the camels back - they wanted to charge to use their machine, on top of the charge from the card issuer for using a foreign machine. The resulting fuss caused all the banks to rethink and drop ALL their ATM transaction fees (from the customer perspective).
Cashback here is limited to larger stores in general. It's something I will use, but I go long enough between visits that I need to visit an ATM to grab some lunch money. Perhaps we don't habitually carry as much cash as a result - I rarely carry over £50 ($82) unless I know I'll be away from an ATM or I'm planning to spend heavily.
The population density thing, I totally get. It probably is worth it to avoid driving an hour or something similarly stupid. I even understand it for situations like nightclubs where the utility cost of leaving, finding an ATM, not getting mugged, and getting the bouncer to let you back in, and having your "pull" survive the 20 minute break, outweighs a few dollars.
And Wikipedia says that 60% of your ATMs are of the third-party variety, so I guess the market agrees too.
One thing that did shock me some more on reading is that some ATMs in the USA charge "denial" fees, for telling you that you can't have any money (because none is left or you exceeded your daily withdrawal limit). That's just nasty.
Brazil is changing it's ATMs to Linux. Presumably it's the year of Linux on the ATM.
It likewise predates the web here ; I do remember the age when you had to go to the right bank, but never experienced that myself. But I don't think I remember any time when you were charged for withdrawing from your own bank (my mother would never have stood for that).
In the end it was the planned combination of charges by the card issuer AND the machine operator that was the last straw for any kind of ATM fees in this country. It would seem that the USA has accepted this state of affairs. :-(
I prefer human checkout operators - they're faster than robo-checkouts. The majority of the time spent checking out is rotating the goods so the barcode is visible to the laser sensor and selecting the correct item for produce by weight - both of which are something that a human has to do, and which a checkout operator has much more skill at than myself. On top of that, a robo-checkout adds a mandatory pause after each item to check the bag scale to make sure the barcode matches the mass of the item you put in the bag, so even if you DO get as fast as a checkout operator at scanning, you won't be able to operate at full speed.
The only reason to use a robo-checkout I can think of is when you're in a hurry, you only have one item, the other checkouts are saturated, and the robo-checkout lane is empty because they are so crap. Even then, I prefer to use the human lane - a minimum wage checkout worker needs their job more than I need to buy stupid crap faster.