My grandmother used to say "you may be right, you can be dead right."
She said it in reference to a specific ancestor who got shot for taking back a saw that was his from a neighbour who borrowed and would not return it. Being right isn't everything in other words, sometimes being alive is good too.
Your computer checks for updates online in the background while you're applying a gimp filter and you don't notice a slow-down because you have multiple cores.
Maxing out cores isn't necessary to reduce latency. Multiple cores are as much about latency as they are throughput.
There's nothing wrong with true humility. Recognizing that each is smart in their own way leaves room for recognizing that you yourself are also smart in your own way.
Also note that some casual studies have shown a direct correlation between high Internet use and low incidents of rape on a per-state basis. Why? Who knows. There's a few possibilities I can think of, but obviously assumptions aren't all true.
Just making sure I understand your viewpoint here. Would you then claim its acceptable as most people seem to to enjoy killing thousands of people in a war simulator? And how is getting a thrill by playing out a virtual version of that type of horror any different from any other type of horror?
You're actually seeing this the opposite way that I do. If most of the software my users want to use is served by the cloud, then I can install Ubuntu on their desktops without fear of compatibility issues with the software they want to use. Windows becomes less relevant as fewer people use the Windows API to write their software, and this strikes fear into Microsoft.
It used to be people asked me if their computer could be used to run Microsoft Office, and now they ask if it will load Facebook and play their favourite flash and Java games.
Does the Windows "C" library offer a GUI? The GUI is provided the same way as on Linux and other platforms, but more integrated into the API most programmers use (which isn't the C library).
MFC,.NET, etc. are all abstractions with their own libraries. You can just as easily write code in C++/Qt for Windows and it won't look like a typical Windows app at all.
Oh man, I just had this horrible taste in my mouth. It must be the networking applications I was writing with the MFC that came back to haunt me. Man that was horrible.
Microsoft was very wise to put a lot of money into its development platform. It spent a lot of money building up Visual Studio and other developer supports like the MSDN. As a result, a lot of third parties wrote software for the Windows platform because it had a low barrier to entry and was easy to work with initially.
Of course, many developers eventually hit the wall where they run into limitations of the API they've chosen as I did working with Windows, and some choose to spend many hours working around it instead of jumping ship. In the end, there's a lot of software for Windows by a lot of amateurs (the huge shareware libraries) and eventually quite a bit of professional software too.
Multi-threaded networking isn't new. Most requests are networked. Multi-threaded data sorting and searching isn't new either. Multi-threaded disk handling isn't either.
Whether these tasks have historically been made multi-threaded or not has more to do with the lack of threading support on the CPUs themselves IMHO.
One of the reasons I like the Cell processor design so much is because you can run software in true parallel style on the SPUs and simply put the results together periodically with the main CPU core. Its not perfect for sure, and the limited local memory on each SPU can be limiting but it certainly is a lot different from how we normally handle multi-core computing.
Looking at problems like the calculations for Folding@Home is an interesting study in massive parallelism.
... and they often run in parallel with other software.
It blows my mind how many people don't realize their computer is almost always doing more than one thing at a time. A good OS that knows how to schedule the correct processes to the correct processors can give you a good benefit from parallelism without needing to run multithreaded software.
Certainly if you only ever use one program on your OS it will be minimal, but it will still be there, even if its just your anti-virus software running in parallel to Photoshop.
So grab a laptop with a fresh copy of Windows, assign it your PC's MAC address, install the software and get it white-listed and voila, you can use your own PC on the network now.
I would still claim it matters. In a properly designed system, the janitor shouldn't be able to get access credentials even if he or she wanted them. In a truly secure environment, every access of any type of information should be properly audited so that any permitted but strange access is noted as well.
You do know that the browser which runs your HTML app itself falls under the category of "Every other option..." right?
The browser itself which you take as implicit is just another application. Browsers have trojan/virus/compatibility problems. Browsers have pop-up blocking and other firewall software issues. Browsers are susceptible to bugs like the cross-site scripting ones we've seen and others that are worse. Browsers can act differently on different platforms.
The benefits don't exist, they're just abstracted in your mind because you ignore what's under the layer of abstraction.
Corporate Java apps would be served at LAN speeds of the corporate Intranet, and not limited by your Internet speeds.
For example, you might browse to an internal website that links to 10.11.12.13 and launches software hosted on 10.11.12.17 using the database at 10.11.12.23, all of which are 100Mbit or gigabit+ connections to your PC.
As far as the user's concerned, the app launches near instantly, and updates itself automatically. Its very very nice. As a non-Java programmer, its a feature I'd love to have worked well into Python application distribution.
What is it with you people? They're applications whether they run in a browser or not.
An AJAX website is an application. GMAIL is an application. It just so happens that the GUI is rendered by a second application (your browser). This is no different than switching GUI toolkits when making a traditional app.
All you're doing is using a browser + html + javascript as the language and gui toolkit. This is not new, its not exciting and its not even interesting.
If you think that a browser + html + javascript is a better fit to your application than.NET, great, do it that way. If you think Python + Gtk is better, then do it that way instead. Java +AWT might be the best choice, who knows.
This crazy 'browser replacing the OS' stuff is dumb, the browser has simply become a programming environment much like Java was before it, and traditional language+toolkit options were before that. It just so happens that the web browser became pervasive in a way that Java didn't and so its the most readily available toolkit for many programs. That doesn't make it implicitly better than anything.
From a security and debugging standpoint, I personally think browser based applications are a kind of security hell on earth. I have to trust a huge monolithic code base I often can't see (IE8, iPhone browser, etc.) to properly interpret my intentions in a way that I can more completely control in a traditional environment. Many see this as a good trade-off, some of us see it as horrifying.
Facebook is a good example. Its a perfect fit to the browser as an application interface paradigm, and yet people are constantly surprised by new and interesting ways their private data is getting away from them because of how the interface hides reality. It will happen with the next big thing too.
My grandmother used to say "you may be right, you can be dead right."
She said it in reference to a specific ancestor who got shot for taking back a saw that was his from a neighbour who borrowed and would not return it. Being right isn't everything in other words, sometimes being alive is good too.
Take calculus again. :-)
Your computer checks for updates online in the background while you're applying a gimp filter and you don't notice a slow-down because you have multiple cores.
Maxing out cores isn't necessary to reduce latency. Multiple cores are as much about latency as they are throughput.
There's nothing wrong with true humility. Recognizing that each is smart in their own way leaves room for recognizing that you yourself are also smart in your own way.
If you want to shudder, look up how few of the rape kits collected by police are actually processed in your state.
No, I don't know what state you're in. Its very low in most of them.
Also note that some casual studies have shown a direct correlation between high Internet use and low incidents of rape on a per-state basis. Why? Who knows. There's a few possibilities I can think of, but obviously assumptions aren't all true.
Just making sure I understand your viewpoint here. Would you then claim its acceptable as most people seem to to enjoy killing thousands of people in a war simulator? And how is getting a thrill by playing out a virtual version of that type of horror any different from any other type of horror?
You're actually seeing this the opposite way that I do. If most of the software my users want to use is served by the cloud, then I can install Ubuntu on their desktops without fear of compatibility issues with the software they want to use. Windows becomes less relevant as fewer people use the Windows API to write their software, and this strikes fear into Microsoft.
It used to be people asked me if their computer could be used to run Microsoft Office, and now they ask if it will load Facebook and play their favourite flash and Java games.
By that token, write it in Java and you get an IDE and no need for the Windows API either.
Your comment isn't really a selling point of .NET specifically.
Nor should it.
Does the Windows "C" library offer a GUI? The GUI is provided the same way as on Linux and other platforms, but more integrated into the API most programmers use (which isn't the C library).
MFC, .NET, etc. are all abstractions with their own libraries. You can just as easily write code in C++/Qt for Windows and it won't look like a typical Windows app at all.
Oh man, I just had this horrible taste in my mouth. It must be the networking applications I was writing with the MFC that came back to haunt me. Man that was horrible.
Microsoft was very wise to put a lot of money into its development platform. It spent a lot of money building up Visual Studio and other developer supports like the MSDN. As a result, a lot of third parties wrote software for the Windows platform because it had a low barrier to entry and was easy to work with initially.
Of course, many developers eventually hit the wall where they run into limitations of the API they've chosen as I did working with Windows, and some choose to spend many hours working around it instead of jumping ship. In the end, there's a lot of software for Windows by a lot of amateurs (the huge shareware libraries) and eventually quite a bit of professional software too.
Actually, you might want to consider that yes, a lot of those industries have high prices because of collusion and a lack of competition.
We've allowed licensing arrangements that prevent competition and allow these high prices to take over.
Perhaps some day people will finally notice that the free market doesn't result in utopia either.
Multi-threaded networking isn't new. Most requests are networked. Multi-threaded data sorting and searching isn't new either. Multi-threaded disk handling isn't either.
Whether these tasks have historically been made multi-threaded or not has more to do with the lack of threading support on the CPUs themselves IMHO.
Browser - network threads, layout thread, image compression decoding threads, Javascript threads ...
E-mail - network threads, parsing and sorting thread, storage thread
And so on.
One of the reasons I like the Cell processor design so much is because you can run software in true parallel style on the SPUs and simply put the results together periodically with the main CPU core. Its not perfect for sure, and the limited local memory on each SPU can be limiting but it certainly is a lot different from how we normally handle multi-core computing.
Looking at problems like the calculations for Folding@Home is an interesting study in massive parallelism.
... and they often run in parallel with other software.
It blows my mind how many people don't realize their computer is almost always doing more than one thing at a time. A good OS that knows how to schedule the correct processes to the correct processors can give you a good benefit from parallelism without needing to run multithreaded software.
Certainly if you only ever use one program on your OS it will be minimal, but it will still be there, even if its just your anti-virus software running in parallel to Photoshop.
Reminds me of my old TI99/4A which had 8K of RAM. the 4K RAM upgrade was huge and allowed me to run much larger games.
Not at all, homebrew is programmers who want to play with their new hardware toy and want to write code on it.
Pirates often benefit from the homebrew community since they have similar goals -- running unauthorized code on the platform.
So grab a laptop with a fresh copy of Windows, assign it your PC's MAC address, install the software and get it white-listed and voila, you can use your own PC on the network now.
MAC addresses are indeed easily faked.
802.1x is a real option and not difficult to configure.
I would still claim it matters. In a properly designed system, the janitor shouldn't be able to get access credentials even if he or she wanted them. In a truly secure environment, every access of any type of information should be properly audited so that any permitted but strange access is noted as well.
You do know that the browser which runs your HTML app itself falls under the category of "Every other option ..." right?
The browser itself which you take as implicit is just another application. Browsers have trojan/virus/compatibility problems. Browsers have pop-up blocking and other firewall software issues. Browsers are susceptible to bugs like the cross-site scripting ones we've seen and others that are worse. Browsers can act differently on different platforms.
The benefits don't exist, they're just abstracted in your mind because you ignore what's under the layer of abstraction.
Corporate Java apps would be served at LAN speeds of the corporate Intranet, and not limited by your Internet speeds.
For example, you might browse to an internal website that links to 10.11.12.13 and launches software hosted on 10.11.12.17 using the database at 10.11.12.23, all of which are 100Mbit or gigabit+ connections to your PC.
As far as the user's concerned, the app launches near instantly, and updates itself automatically. Its very very nice. As a non-Java programmer, its a feature I'd love to have worked well into Python application distribution.
What is it with you people? They're applications whether they run in a browser or not.
An AJAX website is an application. GMAIL is an application. It just so happens that the GUI is rendered by a second application (your browser). This is no different than switching GUI toolkits when making a traditional app.
All you're doing is using a browser + html + javascript as the language and gui toolkit. This is not new, its not exciting and its not even interesting.
If you think that a browser + html + javascript is a better fit to your application than .NET, great, do it that way. If you think Python + Gtk is better, then do it that way instead. Java +AWT might be the best choice, who knows.
This crazy 'browser replacing the OS' stuff is dumb, the browser has simply become a programming environment much like Java was before it, and traditional language+toolkit options were before that. It just so happens that the web browser became pervasive in a way that Java didn't and so its the most readily available toolkit for many programs. That doesn't make it implicitly better than anything.
From a security and debugging standpoint, I personally think browser based applications are a kind of security hell on earth. I have to trust a huge monolithic code base I often can't see (IE8, iPhone browser, etc.) to properly interpret my intentions in a way that I can more completely control in a traditional environment. Many see this as a good trade-off, some of us see it as horrifying.
Facebook is a good example. Its a perfect fit to the browser as an application interface paradigm, and yet people are constantly surprised by new and interesting ways their private data is getting away from them because of how the interface hides reality. It will happen with the next big thing too.