If they're listening to programmers they should give better error messages than "Object reference not set to an instance of an object", at least when stuff is compiled in DEBUG mode.
Many other languages at least tell you the names of at least one offending item in a similar situation, and maybe even what was being attempted (assignation, comparison, concatenation, etc).
I would skip GOTO in favor of putting some of that logic into a function. Then I can simply return;
Sometimes that makes the code harder to read - you have to go look up what each function does, when it's actually a different but simple thing each time.
Visual Studio does make the looking up quite easy (and you can nav back to the original place from the function), but it still takes longer than just looking at everything in one page and then scrolling a bit to see the rest.
And lastly, you often have to come up with decent names for those functions;). Sometimes coming up with good names takes longer than just writing the code...
In China there's a company that's done a 30 storey hotel in 15 days: https://www.youtube.com/watch?v=Hdpf-MQM9vY The foundation probably took some time, but it's still impressive to me.
Just wonder how much it cost to do that versus the "conventional" approach. And whether it's actually going to be used. They did a smaller one in 6 days before, I think as a tech demo.
Combine this concept with 3D printing advances and things might get interesting for the construction industry...
Now perhaps your animation studio has such an external backbone access, but multiply it by two thousands if you're doing a movie and not just a couple of stills and we're talking about +100Gb/s lines from your company to the Amazon service.
The workaround is to do everything in Amazon, including the streaming/distribution of the "final product" to your viewers.
Of course there's this too: http://aws.amazon.com/importexport/ So you could still ship TBs of stuff to/fro your studio whether for further processing or for backups.
NTFS already supports paths longer than 255 bytes; you just need to use the right APIs to access them.
Does Windows Explorer support that yet? Because if it doesn't work with Windows Explorer that's good as not working for many popular use cases.
Then it's just as silly as saying that Windows isn't using that much disk space with the SxS stuff, if stuff still grumbles about lack of disk space when you try to use that "actually unused space"...
Sorry I was using the wrong term, should be add-ons. The other add-ons like extensions don't run as a separate process and they're often the ones that cause Firefox to leak more.
Remove/disable the extensions and Firefox leaks less, but then you might as well use Chrome:).
In my experience Firefox (minus plugins etc) has leaked/used less memory than Google Chrome.
BUT, when a plugin/page starts leaking lots of memory the difference is with Google Chrome you can close the offending tab/window and the memory is freed up. You don't lose your sessions, don't lose your place on other tabs/windows. You can even reopen the page (esp if the page just slowly uses more and more memory).
In contrast with Firefox you often have to close the entire browser to free up the memory. And IMO that's Firefox's biggest problem when it comes to memory.
It doesn't matter how much better Firefox is on its own at memory management, in practice many people using Firefox are using it because of the plugins (otherwise they'd be using some other browser), and the plugin developers may not be so good at memory management.
So a judge of how well a system works is how much good you get vs how much bad, compared to other systems.
[1] I personally think the UK education system failed at domesticating humans. Humans are pack animals like dogs. But less predictable due to less organized breeding programmes;). Seriously though, most humans feel a need to belong to some group/tribe. In the old days, bad or good, there was stuff like religion, guilds, class systems. Nowadays religion etc is out-of-fashion, so there's stuff like football, street-gangs, Cult of Apple and the occasional pack of rioters. And within each group, the members will just do whatever the rest are doing or if a strong leader is present, they'll do whatever the leader tells them to do.
So I suggest that if you give the youth a less destructive "tribe"/"gang" to belong to, with interesting activities that give them a sense of purpose and a "place", it'll help keep more of them out of trouble for at least a number of years, till they find something else (or not).
While that's true, countries like Denmark might have a smoother "upgrade path" if more and more jobs end up being more efficiently done by machines.
People that say that there will always be jobs for humans are delusional, the whole point of things like "industrial automation" is to reduce the total number of humans needed for the work. Artificially creating jobs would be the same as welfare.
With a welfare state you could end up having 90% (or more?) of the population on welfare, while the machines are the slaves.
With a full free-market capitalist state, you may eventually end up having a small percentage of rich people, the larger percentage being some "tech priests", "chosen worshippers" and the rest being a mix of human and machine slaves.
Even though people are not only economic creatures, that reduced incentive does have an effect on the amount of work people are willing to do.
And why should people still have to work if one day machines can do it better? Just so the rich and powerful can feel superior?
That said, perhaps they should also do a test of the teachers, perhaps the direct reason for the difference is Finland has better teachers;).
BUT even so Finland might have better teachers because the teachers were once students themselves, and if most of the students were well-educated, then most of the teachers would be too...
Whereas if you have crappy students each generation and most teachers coming from the "crappier end" of very unevenly educated students, you're not going to get very good results.
In a democracy if you leave too many people "behind", unless you're at the very top, you're still eventually going to pay for it one way or another, as long as those behind can still vote;).
Maybe instead of making cables harder to steal we should make citizens that don't want to steal them...
At a certain point having a "welfare state" might become cheaper overall. Then most of them won't bother to steal if you provide them with food, shelter and tv/"youtube"/game consoles/parks.
Not a big difference if you're going to put those you catch in prisons where they are fed and housed...
Of course you'd also need to fix the education side to it, compulsory education for kids, free education (maybe even up to undergraduate level), free meals for school-kids. That way you don't get stuck with 20% or more of your population being under-educated and not very competitive with the rest of the world in terms of cost/ability.
IMO the "cold fusion" was worth looking into because even if it wasn't really fusion, it might have led to a different type of "battery" technology. At worst it might be some interesting phenomena.
So I was a bit disappointed when the whole thing became a polarized mess, rather than a good start into proper scientific research. Almost any scientist who investigated cold-fusion was considered a quack immediately.
Finland has ranked at or near the top in all three competencies on every survey since 2000, neck and neck with superachievers such as South Korea and Singapore. In the most recent survey in 2009 Finland slipped slightly, with students in Shanghai, China, taking the best scores, but the Finns are still near the very top. Throughout the same period, the PISA performance of the United States has been middling, at best.
Compared with the stereotype of the East Asian model -- long hours of exhaustive cramming and rote memorization -- Finland's success is especially intriguing because Finnish schools assign less homework and engage children in more creative play. All this has led to a continuous stream of foreign delegations making the pilgrimage to Finland to visit schools and talk with the nation's education experts, and constant coverage in the worldwide media marveling at the Finnish miracle.
Since the 1980s, the main driver of Finnish education policy has been the idea that every child should have exactly the same opportunity to learn, regardless of family background, income, or geographic location. Education has been seen first and foremost not as a way to produce star performers, but as an instrument to even out social inequality.
In the Finnish view, as Sahlberg describes it, this means that schools should be healthy, safe environments for children. This starts with the basics. Finland offers all pupils free school meals, easy access to health care, psychological counseling, and individualized student guidance.
In fact, since academic excellence wasn't a particular priority on the Finnish to-do list, when Finland's students scored so high on the first PISA survey in 2001, many Finns thought the results must be a mistake. But subsequent PISA tests confirmed that Finland -- unlike, say, very similar countries such as Norway -- was producing academic excellence through its particular policy focus on equity.
Actually when stuff gets a bit harder, unix sysadmins use perl - it's been present on AIX, Solaris, OSX, Linux, *BSD for quite a while. And even works on fairly old versions of windows.
As for the OP's complaint that "in practice it's lines of text". That's not always a bug, it can be a feature[1]. By forcing protocols to be more human readable, you have more humanly readable protocols.
"What if your data has a newline in it?" There have been standard ways of escaping data for quite a while. Sure it means you have to "unwrap" the data in a field, but that's what you have to do anyway when you deal with data fields in data fields in data fields etc.
Just look at the popularity of xml stuff compared to the popularity of ASN.1.
[1] one man's impedance mismatch is another man's layer of abstraction.;)
The ".Net framework" of server management is called "PowerShell".
No, Powershell would be one of the languages you can use to use that framework (that I'm talking about). Just like you can use VB.Net or C# or even python for.Net.
There are quite a lot of things that are common for services that run on servers. They may be web servers, DB servers, mail servers, file servers, print servers, simple "do one thing" services, producer-consumer services, but still have many things in common.
Whatever they are you want a way to start them, stop them, update/upgrade them, uninstall them, install/reinstall them, figure out what ports they use, configure the firewall for them, do mass configuration for them (but change for some machine/device specific info: IP address, hostname). Schedule the tasks.
It's not like developers want to reinvent the wheel each time so that their services/server programs can support all that programmatically (e.g. read config, write config, read logs, write logs). So if Microsoft made it all easier via say a Visual Studio template and some framework additions, I'm sure developers of new stuff would quickly use it.
And then Microsoft can have more GUI-less servers.
You don't have 44 bits of entropy. Rather, the vocabulary of the average American is the entropy.
In the XKCD example, for instance, the true number of permutations you have to check to brute force a password is: Size of Average Person's Vocabulary (about 25,000 words) - from which "correct" "horse" "battery" "stable" is selected - raised to the 4th power, or 3.906 * 10^17 combinations. That's not a huge amount for a password cracking algorithm.
2^44 is 1.7592186 * 10^13, which is SMALLER than 3.906 * 10^17. So if you assume a 25000 word vocab you have MORE than 44 bits of entropy with the passphrases approach. It may not be impossible to crack, but it's harder than the stupid "hard to remember by normal people" passwords. Which is the xkcd example's point, which I guess assumes a conservative 3000 common word vocabulary.
Removing the GUI is forcing people to learn more efficient ways to manage their environment.
Removing the GUI would be a stupid move by Microsoft. I doubt they would actually do that despite what Don Jones says.
As the summary says, Microsoft is telling _developers_ of server software not to assume the presence of a GUI. So if you're writing software for servers, you may have to provide configuration and management methods via the CLI as well.
If Microsoft somehow comes up with a decent standardized way of making writing such interfaces easier, server software for windows might actually end up easier to manage than for Linux. Not sure if that is possible, but perhaps the geniuses in Microsoft Research can think of a way. The ".Net framework" of server management, or something.
While Microsoft doesn't have to much more efficient in that the GUI isn't a big resource drain for most server hardware, there are many areas where Windows as a Server is still behind.
3) The Windows event log looks nice in (some) theory but is a piece of crap in practice. IMO tail -f syslog |grep -i pattern |grep -v foo works better in practice. Yes if you're Facebook/Google scale you'd need something much better than syslog, but whatever it is, it's not the Windows Event Log/Viewer.
4) In normal Windows convention and operation you cannot rename/overwrite folders/files that are in use (aka open). This makes updates/upgrades harder to do well and in a consistent manner. This is one of the reasons why on Windows you often have to reboot just to update stuff that in Unix/Linux servers would not need a reboot to be updated. If you have $$$, you can work around this by having load balancing (but it still sucks for a developer to have to resort to this for _reliable_[2] updates: http://technet.microsoft.com/en-us/sysinternals/bb897556 ) . It's not so simple on most Unix/Linux machines to some of this "perfectly" either - since you normally can't do two directory renames atomically: e.g. move the directory "current" to "bkp" and "new" to "current" atomically, but just doing it and hoping for the best is often good enough;).
Caveat: I'm not an expert on Windows (or Unix) stuff (only started on VB.Net last year) so maybe I'm wrong. But if I am do let me know because I would really like easy solutions to the above (no, I do not consider it easy to write a Windows C++ service that registers for Preshutdown and then shuts down the.Net stuff in the correct order, yes it can be done, but it'll take time that I'd rather spend on other stuff).
[1] And quite often just because the OS has successfully started a service doesn't mean the service is ready for work, so services that depend on it still need to check for readiness - this is not a Windows only problem (can happen on Unix/Linux machines as well), but Microsoft could create a way for a windows service to say it's "ready" and allow services to depend on a service being "ready" rather than just "started".
[2] Yes you can have something shutdown your service and try to do the moves and copies (of
With manual voting, sometimes the minor parties don't have enough people to witness counting in all places, so the big parties can do what they want with those votes...
And how do the electronic voting machines prevent the big parties from doing what they want with those votes?
With paper votes, yes people can destroy/change the votes, but it's a lot harder to do on a massive scale. They need to work for each vote and each ballot box they stuff/swap. Whereas a million electronic votes can be tampered with in less than a second.
Fact is if you are in a country where paper-pencil voting is being rigged on a massive scale, electronic voting isn't going to be better at all. Think Saddam Hussein and the Iraqi elections: http://news.bbc.co.uk/2/hi/2331951.stm Who thinks electronic voting systems in that case wouldn't show the same sort of results?
You mention lack of witnesses. Fact is the more voters you have, the more counters you can have and the more observers you can have. If your system/rules prevent that, that's not a problem with paper-pencil voting. If a party can't even find enough "friendly" observers for the ballot stations in that area how the heck do they even expect to win that constituency even if the voting is fair? Should they even win that area? Think about it.
Even though in theory there can be tamper-proof verifiable electronic voting (I've seen at least one described plausibly on youtube), the fact is paper and pencil is very easy for the average person to understand.
So when they are standing there and looking at the transparent ballot boxes that have not been moved from the room, and see the votes being counted one by one, it is easier for them to understand what is happening and convince them that it is being done _reasonably_ fairly.
AFAIK most of those "rigged" elections do not have the ballot boxes staying put and opened up and counted on site for people to observe. That's why the people get upset and riot - when the counting is done behind closed doors, they know it's no longer fair.
And that leads us to the one important requirement that most electronic voting systems are inferior at meeting: the counting doesn't just have to be fair/correct, it has to be _seen_ as fair/correct.
If the elections are seen as fair, it is far easier to convince the losers that they have lost fair and square (at least reasonably enough). That way you have fewer riots on the streets.
When the losers see that most of the votes are against them, one by one as they are being counted, displayed and announced (that's what they do here[1]), they will know deep down that they lost.
[1] Where I live I think the bulk of the tampering is done with postal votes, and more remote areas - where you're not sure what is actually going on (whether there's even voting). But the conventional electronic voting systems won't help with this either.
Probably depends on how polymorphic they are. That said I've always wondered how these AV/Antimalware researchers and software would do in detecting malware written in perl- TIMTOWTDI and all that...;)
FWIW I personally think that malware detection is the wrong approach for protecting against malware.
Because in theory the problem of malware detection is actually harder than solving the "halting problem" (which in theory is impossible).
Think about it the halting problem can be stated as follows (from wiki):
Given a description of a computer program, decide whether the program finishes running or continues to run forever. This is equivalent to the problem of deciding, given a program and an input, whether the program will eventually halt when run with that input, or will run forever.
The malware detection problem is:
Given a computer program without a description, without the full inputs (or possibly even the full program - it could fetch more instructions from the Internet), determine whether the program is malware or not
.
So if the "halting problem" is unsolvable in theory, then so is the malware detection problem in theory:). Of course in practice, you might be able to solve some cases.
However IMO the better approach would be to use more and better sandboxing. Sandboxing would be the equivalent of avoiding the halting problem by actually limiting the amount of time the program gets to run.
Even if the program gets to politely requests for a sandbox it could still be OK- since the program is giving a hint upfront of the limits of what it could possibly do. Of course if almost every program says they need "unlimited access/time" then so much for that;). But Microsoft and Apple may have the clout to smackdown developers who do that.
If you're paranoid and really want to be sure, you boot off a trusted _system_ (including hardware you know is OK) and do the scans offline[1].
Nowadays with virtual machine tech, you could make a clone/copy of a virtual machine while leaving it running. You can then scan the clone. In theory you could even scan the memory of the cloned machine[1]:). If the system is infected but you can't find any malware in the clone, it's unlikely that realtime AV software would be able to find and detect that malware either (if installed on the machine).
Of course, if the virtual machine host is infected/affected through the guest (there have been bugs in VM/hypervisor software), then there is a possibility that a very skilled and devious attacker could tamper with the cloning process so that the resulting copy would show up no malware when scanned by a trusted machine. But that'll take a pretty resourceful attacker, one that could pwn you in many other easier ways. I wouldn't be embarrassed if I ever got pwned by such an attack.
[1] In theory if the malware stays in memory the malware might not show up in a disk only scan. So if you "power-off" the machine, the malware won't show up. But then the malware would "die", unless it can pull itself back in somehow, in a way which cannot be detected by scanners.
Good thing for them US broadband sucks then. If it was really fast the spooks would not be choking on firehoses, but on waterfalls.
Imagine if it was common to transfer Gbps of stuff most of the time. And your aunts were forwarding emailed _videos_ of their cats/grandchildren/whatever and nobody noticed or complained how large the videos were - since transfer rates were high.
Subconsciously you're just refusing to share your password with Slashdot...
If they're listening to programmers they should give better error messages than "Object reference not set to an instance of an object", at least when stuff is compiled in DEBUG mode.
Many other languages at least tell you the names of at least one offending item in a similar situation, and maybe even what was being attempted (assignation, comparison, concatenation, etc).
I would skip GOTO in favor of putting some of that logic into a function. Then I can simply return;
Sometimes that makes the code harder to read - you have to go look up what each function does, when it's actually a different but simple thing each time.
Visual Studio does make the looking up quite easy (and you can nav back to the original place from the function), but it still takes longer than just looking at everything in one page and then scrolling a bit to see the rest.
And lastly, you often have to come up with decent names for those functions ;). Sometimes coming up with good names takes longer than just writing the code...
In China there's a company that's done a 30 storey hotel in 15 days: https://www.youtube.com/watch?v=Hdpf-MQM9vY
The foundation probably took some time, but it's still impressive to me.
Just wonder how much it cost to do that versus the "conventional" approach. And whether it's actually going to be used. They did a smaller one in 6 days before, I think as a tech demo.
Combine this concept with 3D printing advances and things might get interesting for the construction industry...
Now perhaps your animation studio has such an external backbone access, but multiply it by two thousands if you're doing a movie and not just a couple of stills and we're talking about +100Gb/s lines from your company to the Amazon service.
The workaround is to do everything in Amazon, including the streaming/distribution of the "final product" to your viewers.
Of course there's this too: http://aws.amazon.com/importexport/
So you could still ship TBs of stuff to/fro your studio whether for further processing or for backups.
I've definitely had problems at work with long paths on Windows 7. And seems like others have problems too:
http://social.technet.microsoft.com/Forums/en/w7itprogeneral/thread/53779044-d453-458b-b8c4-96d41711ea69
Microsoft does not say encouraging stuff: http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx#win32_file_namespaces
NTFS already supports paths longer than 255 bytes; you just need to use the right APIs to access them.
Does Windows Explorer support that yet? Because if it doesn't work with Windows Explorer that's good as not working for many popular use cases.
Then it's just as silly as saying that Windows isn't using that much disk space with the SxS stuff, if stuff still grumbles about lack of disk space when you try to use that "actually unused space"...
Sorry I was using the wrong term, should be add-ons. The other add-ons like extensions don't run as a separate process and they're often the ones that cause Firefox to leak more.
:).
Remove/disable the extensions and Firefox leaks less, but then you might as well use Chrome
In my experience Firefox (minus plugins etc) has leaked/used less memory than Google Chrome.
BUT, when a plugin/page starts leaking lots of memory the difference is with Google Chrome you can close the offending tab/window and the memory is freed up. You don't lose your sessions, don't lose your place on other tabs/windows. You can even reopen the page (esp if the page just slowly uses more and more memory).
In contrast with Firefox you often have to close the entire browser to free up the memory. And IMO that's Firefox's biggest problem when it comes to memory.
It doesn't matter how much better Firefox is on its own at memory management, in practice many people using Firefox are using it because of the plugins (otherwise they'd be using some other browser), and the plugin developers may not be so good at memory management.
Do not think I believe that crime will magically go away just because of education[1] and welfare.
And there were other youth too:
http://www.dailymail.co.uk/news/article-2024035/UK-riots-2011-500-Londoners-offer-help-clean-rioters-mess.html
http://www.dailymail.co.uk/news/article-2024446/UK-riots-2011-Broom-armies-reclaim-London-Birmingham-Manchester-streets.html
So a judge of how well a system works is how much good you get vs how much bad, compared to other systems.
[1] I personally think the UK education system failed at domesticating humans. Humans are pack animals like dogs. But less predictable due to less organized breeding programmes ;). Seriously though, most humans feel a need to belong to some group/tribe. In the old days, bad or good, there was stuff like religion, guilds, class systems. Nowadays religion etc is out-of-fashion, so there's stuff like football, street-gangs, Cult of Apple and the occasional pack of rioters. And within each group, the members will just do whatever the rest are doing or if a strong leader is present, they'll do whatever the leader tells them to do.
So I suggest that if you give the youth a less destructive "tribe"/"gang" to belong to, with interesting activities that give them a sense of purpose and a "place", it'll help keep more of them out of trouble for at least a number of years, till they find something else (or not).
While that's true, countries like Denmark might have a smoother "upgrade path" if more and more jobs end up being more efficiently done by machines.
People that say that there will always be jobs for humans are delusional, the whole point of things like "industrial automation" is to reduce the total number of humans needed for the work. Artificially creating jobs would be the same as welfare.
With a welfare state you could end up having 90% (or more?) of the population on welfare, while the machines are the slaves.
With a full free-market capitalist state, you may eventually end up having a small percentage of rich people, the larger percentage being some "tech priests", "chosen worshippers" and the rest being a mix of human and machine slaves.
Even though people are not only economic creatures, that reduced incentive does have an effect on the amount of work people are willing to do.
And why should people still have to work if one day machines can do it better? Just so the rich and powerful can feel superior?
http://slashdot.org/comments.pl?sid=2620558&cid=38698508
That said, perhaps they should also do a test of the teachers, perhaps the direct reason for the difference is Finland has better teachers ;).
BUT even so Finland might have better teachers because the teachers were once students themselves, and if most of the students were well-educated, then most of the teachers would be too...
Whereas if you have crappy students each generation and most teachers coming from the "crappier end" of very unevenly educated students, you're not going to get very good results.
In a democracy if you leave too many people "behind", unless you're at the very top, you're still eventually going to pay for it one way or another, as long as those behind can still vote ;).
Maybe instead of making cables harder to steal we should make citizens that don't want to steal them...
At a certain point having a "welfare state" might become cheaper overall. Then most of them won't bother to steal if you provide them with food, shelter and tv/"youtube"/game consoles/parks.
Not a big difference if you're going to put those you catch in prisons where they are fed and housed...
Of course you'd also need to fix the education side to it, compulsory education for kids, free education (maybe even up to undergraduate level), free meals for school-kids. That way you don't get stuck with 20% or more of your population being under-educated and not very competitive with the rest of the world in terms of cost/ability.
it still occasionally spits out a report of its config to one of my email accounts
And that email account is in Russia? ;)
IMO the "cold fusion" was worth looking into because even if it wasn't really fusion, it might have led to a different type of "battery" technology. At worst it might be some interesting phenomena.
So I was a bit disappointed when the whole thing became a polarized mess, rather than a good start into proper scientific research. Almost any scientist who investigated cold-fusion was considered a quack immediately.
Perhaps you should start thinking why you have masses of "stupid lazy people" in the first place.
http://www.theatlantic.com/national/archive/2011/12/what-americans-keep-ignoring-about-finlands-school-success/250564/
Finland has ranked at or near the top in all three competencies on every survey since 2000, neck and neck with superachievers such as South Korea and Singapore. In the most recent survey in 2009 Finland slipped slightly, with students in Shanghai, China, taking the best scores, but the Finns are still near the very top. Throughout the same period, the PISA performance of the United States has been middling, at best.
Compared with the stereotype of the East Asian model -- long hours of exhaustive cramming and rote memorization -- Finland's success is especially intriguing because Finnish schools assign less homework and engage children in more creative play. All this has led to a continuous stream of foreign delegations making the pilgrimage to Finland to visit schools and talk with the nation's education experts, and constant coverage in the worldwide media marveling at the Finnish miracle.
Since the 1980s, the main driver of Finnish education policy has been the idea that every child should have exactly the same opportunity to learn, regardless of family background, income, or geographic location. Education has been seen first and foremost not as a way to produce star performers, but as an instrument to even out social inequality.
In the Finnish view, as Sahlberg describes it, this means that schools should be healthy, safe environments for children. This starts with the basics. Finland offers all pupils free school meals, easy access to health care, psychological counseling, and individualized student guidance.
In fact, since academic excellence wasn't a particular priority on the Finnish to-do list, when Finland's students scored so high on the first PISA survey in 2001, many Finns thought the results must be a mistake. But subsequent PISA tests confirmed that Finland -- unlike, say, very similar countries such as Norway -- was producing academic excellence through its particular policy focus on equity.
Actually when stuff gets a bit harder, unix sysadmins use perl - it's been present on AIX, Solaris, OSX, Linux, *BSD for quite a while. And even works on fairly old versions of windows.
;)
As for the OP's complaint that "in practice it's lines of text". That's not always a bug, it can be a feature[1]. By forcing protocols to be more human readable, you have more humanly readable protocols.
"What if your data has a newline in it?" There have been standard ways of escaping data for quite a while. Sure it means you have to "unwrap" the data in a field, but that's what you have to do anyway when you deal with data fields in data fields in data fields etc.
Just look at the popularity of xml stuff compared to the popularity of ASN.1.
[1] one man's impedance mismatch is another man's layer of abstraction.
The ".Net framework" of server management is called "PowerShell".
No, Powershell would be one of the languages you can use to use that framework (that I'm talking about). Just like you can use VB.Net or C# or even python for .Net.
There are quite a lot of things that are common for services that run on servers. They may be web servers, DB servers, mail servers, file servers, print servers, simple "do one thing" services, producer-consumer services, but still have many things in common.
Whatever they are you want a way to start them, stop them, update/upgrade them, uninstall them, install/reinstall them, figure out what ports they use, configure the firewall for them, do mass configuration for them (but change for some machine/device specific info: IP address, hostname). Schedule the tasks.
It's not like developers want to reinvent the wheel each time so that their services/server programs can support all that programmatically (e.g. read config, write config, read logs, write logs). So if Microsoft made it all easier via say a Visual Studio template and some framework additions, I'm sure developers of new stuff would quickly use it.
And then Microsoft can have more GUI-less servers.
You don't have 44 bits of entropy. Rather, the vocabulary of the average American is the entropy.
In the XKCD example, for instance, the true number of permutations you have to check to brute force a password is: Size of Average Person's Vocabulary (about 25,000 words) - from which "correct" "horse" "battery" "stable" is selected - raised to the 4th power, or 3.906 * 10^17 combinations. That's not a huge amount for a password cracking algorithm.
2^44 is 1.7592186 * 10^13, which is SMALLER than 3.906 * 10^17. So if you assume a 25000 word vocab you have MORE than 44 bits of entropy with the passphrases approach. It may not be impossible to crack, but it's harder than the stupid "hard to remember by normal people" passwords. Which is the xkcd example's point, which I guess assumes a conservative 3000 common word vocabulary.
Removing the GUI is forcing people to learn more efficient ways to manage their environment.
Removing the GUI would be a stupid move by Microsoft. I doubt they would actually do that despite what Don Jones says.
As the summary says, Microsoft is telling _developers_ of server software not to assume the presence of a GUI. So if you're writing software for servers, you may have to provide configuration and management methods via the CLI as well.
If Microsoft somehow comes up with a decent standardized way of making writing such interfaces easier, server software for windows might actually end up easier to manage than for Linux. Not sure if that is possible, but perhaps the geniuses in Microsoft Research can think of a way. The ".Net framework" of server management, or something.
While Microsoft doesn't have to much more efficient in that the GUI isn't a big resource drain for most server hardware, there are many areas where Windows as a Server is still behind.
For example:
1) Windows Services aren't shutdown in an order that respects the service dependencies as provided/registered by the services. The service dependencies are only used during start up[1]! http://support.microsoft.com/kb/203878
http://msdn.microsoft.com/en-us/library/windows/desktop/ms685149(v=vs.85).aspx
2) To make matters worse a .Net service can't register to be notified that windows is shutting down: http://stackoverflow.com/questions/7437590/is-it-possible-to-register-for-preshutdown-service-events-using-net
3) The Windows event log looks nice in (some) theory but is a piece of crap in practice. IMO tail -f syslog |grep -i pattern |grep -v foo works better in practice. Yes if you're Facebook/Google scale you'd need something much better than syslog, but whatever it is, it's not the Windows Event Log/Viewer.
4) In normal Windows convention and operation you cannot rename/overwrite folders/files that are in use (aka open). This makes updates/upgrades harder to do well and in a consistent manner. This is one of the reasons why on Windows you often have to reboot just to update stuff that in Unix/Linux servers would not need a reboot to be updated. If you have $$$, you can work around this by having load balancing (but it still sucks for a developer to have to resort to this for _reliable_[2] updates: http://technet.microsoft.com/en-us/sysinternals/bb897556 ) . It's not so simple on most Unix/Linux machines to some of this "perfectly" either - since you normally can't do two directory renames atomically: e.g. move the directory "current" to "bkp" and "new" to "current" atomically, but just doing it and hoping for the best is often good enough ;).
Caveat: I'm not an expert on Windows (or Unix) stuff (only started on VB.Net last year) so maybe I'm wrong. But if I am do let me know because I would really like easy solutions to the above (no, I do not consider it easy to write a Windows C++ service that registers for Preshutdown and then shuts down the .Net stuff in the correct order, yes it can be done, but it'll take time that I'd rather spend on other stuff).
[1] And quite often just because the OS has successfully started a service doesn't mean the service is ready for work, so services that depend on it still need to check for readiness - this is not a Windows only problem (can happen on Unix/Linux machines as well), but Microsoft could create a way for a windows service to say it's "ready" and allow services to depend on a service being "ready" rather than just "started".
[2] Yes you can have something shutdown your service and try to do the moves and copies (of
With manual voting, sometimes the minor parties don't have enough people to witness counting in all places, so the big parties can do what they want with those votes...
And how do the electronic voting machines prevent the big parties from doing what they want with those votes?
With paper votes, yes people can destroy/change the votes, but it's a lot harder to do on a massive scale. They need to work for each vote and each ballot box they stuff/swap. Whereas a million electronic votes can be tampered with in less than a second.
Fact is if you are in a country where paper-pencil voting is being rigged on a massive scale, electronic voting isn't going to be better at all. Think Saddam Hussein and the Iraqi elections: http://news.bbc.co.uk/2/hi/2331951.stm
Who thinks electronic voting systems in that case wouldn't show the same sort of results?
You mention lack of witnesses. Fact is the more voters you have, the more counters you can have and the more observers you can have. If your system/rules prevent that, that's not a problem with paper-pencil voting. If a party can't even find enough "friendly" observers for the ballot stations in that area how the heck do they even expect to win that constituency even if the voting is fair? Should they even win that area? Think about it.
Even though in theory there can be tamper-proof verifiable electronic voting (I've seen at least one described plausibly on youtube), the fact is paper and pencil is very easy for the average person to understand.
So when they are standing there and looking at the transparent ballot boxes that have not been moved from the room, and see the votes being counted one by one, it is easier for them to understand what is happening and convince them that it is being done _reasonably_ fairly.
AFAIK most of those "rigged" elections do not have the ballot boxes staying put and opened up and counted on site for people to observe. That's why the people get upset and riot - when the counting is done behind closed doors, they know it's no longer fair.
And that leads us to the one important requirement that most electronic voting systems are inferior at meeting: the counting doesn't just have to be fair/correct, it has to be _seen_ as fair/correct.
If the elections are seen as fair, it is far easier to convince the losers that they have lost fair and square (at least reasonably enough). That way you have fewer riots on the streets.
When the losers see that most of the votes are against them, one by one as they are being counted, displayed and announced (that's what they do here[1]), they will know deep down that they lost.
[1] Where I live I think the bulk of the tampering is done with postal votes, and more remote areas - where you're not sure what is actually going on (whether there's even voting). But the conventional electronic voting systems won't help with this either.
Probably depends on how polymorphic they are. That said I've always wondered how these AV/Antimalware researchers and software would do in detecting malware written in perl- TIMTOWTDI and all that... ;)
FWIW I personally think that malware detection is the wrong approach for protecting against malware.
Because in theory the problem of malware detection is actually harder than solving the "halting problem" (which in theory is impossible).
Think about it the halting problem can be stated as follows (from wiki):
Given a description of a computer program, decide whether the program finishes running or continues to run forever. This is equivalent to the problem of deciding, given a program and an input, whether the program will eventually halt when run with that input, or will run forever.
The malware detection problem is:
Given a computer program without a description, without the full inputs (or possibly even the full program - it could fetch more instructions from the Internet), determine whether the program is malware or not
.
So if the "halting problem" is unsolvable in theory, then so is the malware detection problem in theory :). Of course in practice, you might be able to solve some cases.
However IMO the better approach would be to use more and better sandboxing. Sandboxing would be the equivalent of avoiding the halting problem by actually limiting the amount of time the program gets to run.
Even if the program gets to politely requests for a sandbox it could still be OK- since the program is giving a hint upfront of the limits of what it could possibly do. Of course if almost every program says they need "unlimited access/time" then so much for that ;). But Microsoft and Apple may have the clout to smackdown developers who do that.
If you're paranoid and really want to be sure, you boot off a trusted _system_ (including hardware you know is OK) and do the scans offline[1].
:). If the system is infected but you can't find any malware in the clone, it's unlikely that realtime AV software would be able to find and detect that malware either (if installed on the machine).
Nowadays with virtual machine tech, you could make a clone/copy of a virtual machine while leaving it running. You can then scan the clone. In theory you could even scan the memory of the cloned machine[1]
Of course, if the virtual machine host is infected/affected through the guest (there have been bugs in VM/hypervisor software), then there is a possibility that a very skilled and devious attacker could tamper with the cloning process so that the resulting copy would show up no malware when scanned by a trusted machine. But that'll take a pretty resourceful attacker, one that could pwn you in many other easier ways. I wouldn't be embarrassed if I ever got pwned by such an attack.
[1] In theory if the malware stays in memory the malware might not show up in a disk only scan. So if you "power-off" the machine, the malware won't show up. But then the malware would "die", unless it can pull itself back in somehow, in a way which cannot be detected by scanners.
Maybe if you helped her shave her legs it would be more interesting. At least the first few times ;).
Good thing for them US broadband sucks then. If it was really fast the spooks would not be choking on firehoses, but on waterfalls.
Imagine if it was common to transfer Gbps of stuff most of the time. And your aunts were forwarding emailed _videos_ of their cats/grandchildren/whatever and nobody noticed or complained how large the videos were - since transfer rates were high.