I've actually done some work in this area, and I've come to one conclusion: It's far too heavyweight to work on a large scale. All you really want is a shell that can render the screen well. Java does not provide these facilities, but instead focuses on the details of the filesystem, network, threading, and other powerful concepts.
IMHO, the model that works best is:
HTML/CSS/JavaScript (Client) Java (Server)
The client is as dumb as it gets. It can only display information and take input. The server, OTOH, is capable of advanced processing and I/O functionality. So the application you see on your screen is just a webapp entension across the network, onto your screen.
Applets would still be used, but only for very rare heavyweight functions such as video streaming.:-)
A lot of the security of having a virtual machine lies in the fact that is is in fact virtual, and that all an attacker can do is crash the proram he's attacking.
That's not actually correct. If a managed environment is correctly implemented, it should be altogether impossible to crash the environment. The worst that an attacker could do is cause an Exception (which travels back up the stack until it's handled in some form or another) or a DDOS.
But if your runtime becomes the OS in fact, then the machine stops being virtual.
The Virtual Machine is an OS. The key is that today's VMs rely on the host OS for basic functionality. Add the necessary features to the VM, and you no longer have a need for a host OS.
Also, do not forget about the Java Security System. Any attempts at a breach of security can be easily walled off, trapped, and traced back to the source. This functionality isn't used much today (mostly due to the attempts to make Java programs act like Desktop Apps), but its potential is staggering.
Actually, it was a big mainframe computer that created a virus to take over all the machines in the world. Once its command codes were unlocked, it was able to take control of the US Military's computers as well.:-)
You know, I always wanted to try XMLTerm, but I could never get it working. When it was active, I didn't have a Linux machine available. (I did have Solaris and FreeBSD, but neither one was "Good Enough".) By the time I got to a Linux machine that would work, XMLTerm was too out of date to use on a modern Mozilla client.
So you think just because you flunked basic logic and can't parse "elements are nodes in the document tree" as anything other than "all nodes in a document tree are elements", that you have a case?
Go away, Mr. Troll. You have other issues to concern yourself with.
Are you sure he wasn't just plain ignorant (representatives tend to be)?
Quite possibly. But he was one of those training-a-roomful-of-people-on-the-advantages-of- Win2K guys. Microsoft played him off as an engineer type who knew the system. When he got to the training on Kerberos, I got up and asked him point-blank about it only working one way. He told me that Windows 2000 would absolutely work with a Unix Kerberos Domain controller. I pressed him on it and he insisted. I let it go, but it proved to me that the reps will either run with misinformation or outright lie if they feel it will help their case.
A very amusing example of this was the incident where a rep argued with David Korn on Microsoft's version of the Korn Shell. I'll bet Mr. Sullivan felt a bit sheepish after that.;-)
I remember an IIS flaw that was exploited because the server decoded a URL, checked to see if it was valid (i.e. not pointing to some arbitrary thing outside the document root), then before opening the file, decoded it AGAIN! This second decode was done without a second check, meaning that a URL that decoded twice into something harmful passed through.
This is where Java's security model would have gotten in the way. When the file open request was received, it would have said "You don't have access to these directories, go away!" and it would have failed to open/run the file. Of course, that takes a token security system to implement, but Java is particularly well suited to this, as are many other managed code environments.:-)
It's just the same Embrace and Extend tactics that Microsoft has always used. When Windows 2000 came out, Microsoft promised perfect Unix interoperability. Of course, they subtly changed the Kerberos protocol and several other protocols to favor Microsoft's OS in the domain controller position, allowing them to later push Unix as legacy stuff Microsoft is helping you get rid of.
The fun part is that I asked a Microsoft rep about the Kerberos problem and he lied to my face.
You've heard of "If you can't beat 'em, join 'em?" For Microsoft it's, "If you can't beat 'em, pretend to join 'em, then stab them in the back when they're not looking."
That's not a problem with managed code, that's a problem with the APIs offered by the managed code. There's nothing stopping a managed code environment from allowing you low-level control.
For example, JNode is a complete OS written in Java. It's still Work In Progress, but I'd imagine that you would have no trouble writing a simple text driver for your printer.
Don't confuse what you're currently allowed to do with what is possible.:-)
You're basically regurgitating what the pundits and "experts" have been saying forever.
Yes and no. Anything I say as a tech professional will ALWAYS be standing on the shoulders of giants. There's simply no way around that. However, these "experts" you're referring to have always been insensitive to the timing, and have offered no solid solutions to solving problems. While I'm making an abstract prediction now, I fully plan to make a solid prediction in the near future.:-)
We've yet to see any of these things....
Not true. It is becoming quite popular to purchase a computer with a Video Capture Card, use a LCD TV as the monitor/television, hook your computer up to your Dolby 5.1 speakers/stereo, download music and videos from the 'net, and use applications via WebApps. I'd say it's staring us right in the face.
Perhaps the Network Stations were ahead of their time (i.e. like OS/2)?
That was certainly part of the problem. But as an admin who ran Citrix, I can tell you that the other half of the problem was Microsoft. After Citrix gained some initial momentum from their NT 3.51 product, Microsoft took notice and refused to license 4.0. Instead, Microsoft worked out a technology transfer deal where they would produce NT Terminal Server. Citrix was "allowed" to install their superior ICA protocol on top.
The result was that you had the initial price of Terminal Server, plus the price of each "Seat" (which was in number of users, not concurrent connections like Citrix), then the price of a full copy of Windows NT for each thin client that would access the system. If you wanted Citrix ICA, you then had to pay Citrix even more.
The result was that Thin Clients ended up costing *more* than a set of PCs, effectively killing the market.
Fast Forward to today, and we find that Windows now has the RDP client integrated and that Sun has been having reasonable success with their SunRay product. People are starting to become conditioned to the idea of thin clients. Wait a few more years for the WebApp revolution to shift all power away from windows and the time will be perfect to wretch the market away.;-)
And I think having a model where the OS has to approve code before it runs opens the door to monopoly leveraging, unfair treatment, unauthorized runtime limitations, and a whole host of other undesired behavior.
That's not what managed code is. Managed code is systems like Java,.Net, and LISP that eliminate direct hardware access, thus preventing system bugs like buffer overflows. Java is a particularly good example, because it has a very flexible built-in Security system that could be leveraged to ensure that a given program ONLY has access to the resources it was given at install time.:-)
Citrix and X are far too low level. You need to think higher level. Think NeWS. NeWS would have creamed X-Windows in the market if Sun hadn't tried to keep it proprietary. Today, it's all happening again with Web Browsers. The difference is that X and HTML are complementary.
Unix is very flexible, and it certainly outlive Windows. However, its development will only take it through the near future. In the long term, the very idea of unmanaged code will disappear. As will the traditional concept of the Desktop.
My predictions are:
1. Desktops will be replaced with Browser simulations of a Desktop that can work anytime, anywhere.
2. The traditional PC will then be replaced by a home server through which all activity will happen.
3. Components for Music, Television, Desktop, and Video Game consoles will (in many cases wirelessly) interact with this server.
4. The server itself will run an OS based on a managed code environment, making remote attacks difficult if not impossible. (Many Unix concepts would probably be reused in this system, but it won't *be* Unix.)
That's my thoughts anyway. Sometime in the near future, I'll get them blogged down in detail.:-)
Re:This is the dumbest post I have ever posted
on
Preview of KDE 3.5
·
· Score: 1
You are a very strange person, you know that?
The default tooltips for the icons in the taskbar in KDE 3.4 surely have NOTHING to do with the ones in XP
The tooltips are very pretty, but they do not make the interface. Things like the XP-ish frame, the XP-ish "Display Settings", the XP-ish "System" icons, etc. make the interface. That's not to say there aren't differences, but that doesn't stop it from feeling like XP.
The trashcan now in the taskbar
Really? Are you sure you're not using a customized version?
There are a myriad other things that XP never had natively, like thumbnails or preview of files (text, video, audio,...), mouse clics,
1. The Thumbnail previews are in XP already. Just click "View|Thumbnails". It's automatically activated for folders that Windows detects are being "full of images".
2. Single Mouse Clicks can be activated in Windows Explorer by clicking "Tools|Folder Options|Single Click to Open an Item." This was added in the Internet Explorer 4.0 beta program (of which I was a member) where it was made the default. This feature along with a wireframe globe background for Windows Explorer were disabled in the final release due to usability issues they caused. ActiveDesktop and Channel Bar also lived on for a short period of time before being disabled or scaled back.
In other words, sir, you yourself are very, very wrong. If you're going to argue the relative merits of OSes, it's always a good idea to actually *know* these OSes. Or as the military axiom goes, "Know Thine Enemy".:-)
The only reason why cellphones haven't been literally cooking our brains is because they aren't powerful enough to produce any immediate noticeable effects
Well, that and the fact that there's a thick skull plate in the way. Radiation decreases by the inverse square of the distance, but it can also be shielded against by thick and/or dense materials. The more molecules you throw in the way, the more likely the radiation will be stopped.
IE is completely unhelpful in diagnosing issues with document.addEventListener (a standard that IE doesn't support)
The problem is that programmers want to future-proof their apps by following the standards, but IE has its own set of "standards" that aren't very standard.:-)
Porting IE-only apps to Mozilla/FireFox is easy thanks to the extensive set of DOM and JavaScript debugging tools. It's going the other way that's the hard part. IE is completely unhelpful in diagnosing issues with document.addEventListener (a standard that IE doesn't support), or passing an event instead of using the stupid document.event, or showing you the DOM to find out where (or why) that specific DIV isn't showing up right.
Meh. Somebody needs to either fix IE, or take it out back and shoot it.
Re:This is the dumbest post I have ever posted
on
Preview of KDE 3.5
·
· Score: 1
Indeed. I just downloaded a copy of VLOS yesterday, and queued it up in line for review. I have to say, there's a certain irony in the more Macish desktop (KDE) becoming Windowsish, while the Windowsish desktop becomes more Macish.;-)
Re:This is the dumbest post I have ever posted
on
Preview of KDE 3.5
·
· Score: 2, Insightful
Personally, I've noticed an interesting trend in KDE. When KDE started, it was something of a Mac/Windows Fusion design that tended to make both users comfortable. After stumbling around on design for awhile, KDE has decided to be more XP-like. The newer the version of KDE, the more it feels like XP. 3.4 is especially guilty, as the window frames are damn near an exact copy.
Not that I'm complaining. 3.4 is an awesome release, and makes KDE feel a lot more solid.
Except for the one pet peeve of mine-->the taskbar is way too huge.
If it hasn't been removed somewhere along the development line, you *can* adjust the size of the kicker bar. Just go into the control panel and look for the Panel settings. You should be able to find a size that's more suitable to your tastes.
The tradeoff is realism. BTW, one subset of vector graphics is in fact 3D modeling, and this relation becomes especially apparent with NURBS. 3D models aren't very realistic plainly rendered, even with simple materials. They require textures, which are bitmaps (rasters), to create the illusion of continuity.
Just to be pedantic for a moment...
Textures in 2D and 3D applications are not necessarily bitmaps. While Bitmaps are the most common form of texture, highly realistic scenery often uses procedural texturing, with the Perlin Noise Function being the most popular method of generating such textures.
What makes procedural texturing so appealing is the fact that they tend to be a vector scaling algorithm that allows the detail to increase or decrease with the object's perceived size. This is in direct opposition to bitmap texturing where the scalable object has a very particular size range before scaling artifacts begin to become noticable.:-)
Seriously, all I know is that you can get an OEM copy of Windows with a hardware purchase. For me, that was building a complete machine. As the link I gave pointed out, however, it doesn't take much to meet the "hardware purchase" requirement.:-)
How can I use this program with other vendors, like NewEgg, or someone smaller like CoolDrives?
No idea. I suppose you can ask NewEgg if they carry the OEM editions. Personally, I checked out NewEgg when I was building my new system and found their selection to be lacking. I ended up going with MWave and found all the components I wanted at low prices. (Especially the A8N-E NForce 4 board I wanted.)
Can I use this discount direct from Microsoft with proof of hardware purchase?
No idea. Ask Microsoft.
What hardware "counts"?
No idea. As long as the retailer sells you a copy, I don't think it matters.;-)
If I buy a motherboard from one place, a case from another, memory from another, and drives from another, could I buy discounted Windows at any of them?
I think so. Check with MWave support to see if they'll sell you a copy with only one component purchased. My guess is yes, they will.
There's some info here where it's suggested that even purchasing a power cord is sufficient to obtain an OEM copy.
I've actually done some work in this area, and I've come to one conclusion: It's far too heavyweight to work on a large scale. All you really want is a shell that can render the screen well. Java does not provide these facilities, but instead focuses on the details of the filesystem, network, threading, and other powerful concepts.
:-)
IMHO, the model that works best is:
HTML/CSS/JavaScript (Client) Java (Server)
The client is as dumb as it gets. It can only display information and take input. The server, OTOH, is capable of advanced processing and I/O functionality. So the application you see on your screen is just a webapp entension across the network, onto your screen.
Applets would still be used, but only for very rare heavyweight functions such as video streaming.
A lot of the security of having a virtual machine lies in the fact that is is in fact virtual, and that all an attacker can do is crash the proram he's attacking.
That's not actually correct. If a managed environment is correctly implemented, it should be altogether impossible to crash the environment. The worst that an attacker could do is cause an Exception (which travels back up the stack until it's handled in some form or another) or a DDOS.
But if your runtime becomes the OS in fact, then the machine stops being virtual.
The Virtual Machine is an OS. The key is that today's VMs rely on the host OS for basic functionality. Add the necessary features to the VM, and you no longer have a need for a host OS.
Also, do not forget about the Java Security System. Any attempts at a breach of security can be easily walled off, trapped, and traced back to the source. This functionality isn't used much today (mostly due to the attempts to make Java programs act like Desktop Apps), but its potential is staggering.
Actually, it was a big mainframe computer that created a virus to take over all the machines in the world. Once its command codes were unlocked, it was able to take control of the US Military's computers as well. :-)
You know, I always wanted to try XMLTerm, but I could never get it working. When it was active, I didn't have a Linux machine available. (I did have Solaris and FreeBSD, but neither one was "Good Enough".) By the time I got to a Linux machine that would work, XMLTerm was too out of date to use on a modern Mozilla client.
:-/
Man was I peeved.
So you think just because you flunked basic logic and can't parse "elements are nodes in the document tree" as anything other than "all nodes in a document tree are elements", that you have a case?
Go away, Mr. Troll. You have other issues to concern yourself with.
Are you sure he wasn't just plain ignorant (representatives tend to be)?
- Win2K guys. Microsoft played him off as an engineer type who knew the system. When he got to the training on Kerberos, I got up and asked him point-blank about it only working one way. He told me that Windows 2000 would absolutely work with a Unix Kerberos Domain controller. I pressed him on it and he insisted. I let it go, but it proved to me that the reps will either run with misinformation or outright lie if they feel it will help their case.
;-)
Quite possibly. But he was one of those training-a-roomful-of-people-on-the-advantages-of
A very amusing example of this was the incident where a rep argued with David Korn on Microsoft's version of the Korn Shell. I'll bet Mr. Sullivan felt a bit sheepish after that.
I remember an IIS flaw that was exploited because the server decoded a URL, checked to see if it was valid (i.e. not pointing to some arbitrary thing outside the document root), then before opening the file, decoded it AGAIN! This second decode was done without a second check, meaning that a URL that decoded twice into something harmful passed through.
:-)
This is where Java's security model would have gotten in the way. When the file open request was received, it would have said "You don't have access to these directories, go away!" and it would have failed to open/run the file. Of course, that takes a token security system to implement, but Java is particularly well suited to this, as are many other managed code environments.
It's just the same Embrace and Extend tactics that Microsoft has always used. When Windows 2000 came out, Microsoft promised perfect Unix interoperability. Of course, they subtly changed the Kerberos protocol and several other protocols to favor Microsoft's OS in the domain controller position, allowing them to later push Unix as legacy stuff Microsoft is helping you get rid of.
The fun part is that I asked a Microsoft rep about the Kerberos problem and he lied to my face.
You've heard of "If you can't beat 'em, join 'em?"
For Microsoft it's, "If you can't beat 'em, pretend to join 'em, then stab them in the back when they're not looking."
That's not a problem with managed code, that's a problem with the APIs offered by the managed code. There's nothing stopping a managed code environment from allowing you low-level control.
:-)
For example, JNode is a complete OS written in Java. It's still Work In Progress, but I'd imagine that you would have no trouble writing a simple text driver for your printer.
Don't confuse what you're currently allowed to do with what is possible.
You're basically regurgitating what the pundits and "experts" have been saying forever.
:-)
Yes and no. Anything I say as a tech professional will ALWAYS be standing on the shoulders of giants. There's simply no way around that. However, these "experts" you're referring to have always been insensitive to the timing, and have offered no solid solutions to solving problems. While I'm making an abstract prediction now, I fully plan to make a solid prediction in the near future.
We've yet to see any of these things....
Not true. It is becoming quite popular to purchase a computer with a Video Capture Card, use a LCD TV as the monitor/television, hook your computer up to your Dolby 5.1 speakers/stereo, download music and videos from the 'net, and use applications via WebApps. I'd say it's staring us right in the face.
Perhaps the Network Stations were ahead of their time (i.e. like OS/2)?
;-)
That was certainly part of the problem. But as an admin who ran Citrix, I can tell you that the other half of the problem was Microsoft. After Citrix gained some initial momentum from their NT 3.51 product, Microsoft took notice and refused to license 4.0. Instead, Microsoft worked out a technology transfer deal where they would produce NT Terminal Server. Citrix was "allowed" to install their superior ICA protocol on top.
The result was that you had the initial price of Terminal Server, plus the price of each "Seat" (which was in number of users, not concurrent connections like Citrix), then the price of a full copy of Windows NT for each thin client that would access the system. If you wanted Citrix ICA, you then had to pay Citrix even more.
The result was that Thin Clients ended up costing *more* than a set of PCs, effectively killing the market.
Fast Forward to today, and we find that Windows now has the RDP client integrated and that Sun has been having reasonable success with their SunRay product. People are starting to become conditioned to the idea of thin clients. Wait a few more years for the WebApp revolution to shift all power away from windows and the time will be perfect to wretch the market away.
And I think having a model where the OS has to approve code before it runs opens the door to monopoly leveraging, unfair treatment, unauthorized runtime limitations, and a whole host of other undesired behavior.
.Net, and LISP that eliminate direct hardware access, thus preventing system bugs like buffer overflows. Java is a particularly good example, because it has a very flexible built-in Security system that could be leveraged to ensure that a given program ONLY has access to the resources it was given at install time. :-)
That's not what managed code is. Managed code is systems like Java,
Citrix and X are far too low level. You need to think higher level. Think NeWS. NeWS would have creamed X-Windows in the market if Sun hadn't tried to keep it proprietary. Today, it's all happening again with Web Browsers. The difference is that X and HTML are complementary.
Unix is very flexible, and it certainly outlive Windows. However, its development will only take it through the near future. In the long term, the very idea of unmanaged code will disappear. As will the traditional concept of the Desktop.
:-)
My predictions are:
1. Desktops will be replaced with Browser simulations of a Desktop that can work anytime, anywhere.
2. The traditional PC will then be replaced by a home server through which all activity will happen.
3. Components for Music, Television, Desktop, and Video Game consoles will (in many cases wirelessly) interact with this server.
4. The server itself will run an OS based on a managed code environment, making remote attacks difficult if not impossible. (Many Unix concepts would probably be reused in this system, but it won't *be* Unix.)
That's my thoughts anyway. Sometime in the near future, I'll get them blogged down in detail.
You are a very strange person, you know that?
...), mouse clics,
:-)
The default tooltips for the icons in the taskbar in KDE 3.4 surely have NOTHING to do with the ones in XP
The tooltips are very pretty, but they do not make the interface. Things like the XP-ish frame, the XP-ish "Display Settings", the XP-ish "System" icons, etc. make the interface. That's not to say there aren't differences, but that doesn't stop it from feeling like XP.
The trashcan now in the taskbar
Really? Are you sure you're not using a customized version?
There are a myriad other things that XP never had natively, like thumbnails or preview of files (text, video, audio,
1. The Thumbnail previews are in XP already. Just click "View|Thumbnails". It's automatically activated for folders that Windows detects are being "full of images".
2. Single Mouse Clicks can be activated in Windows Explorer by clicking "Tools|Folder Options|Single Click to Open an Item." This was added in the Internet Explorer 4.0 beta program (of which I was a member) where it was made the default. This feature along with a wireframe globe background for Windows Explorer were disabled in the final release due to usability issues they caused. ActiveDesktop and Channel Bar also lived on for a short period of time before being disabled or scaled back.
In other words, sir, you yourself are very, very wrong. If you're going to argue the relative merits of OSes, it's always a good idea to actually *know* these OSes. Or as the military axiom goes, "Know Thine Enemy".
The only reason why cellphones haven't been literally cooking our brains is because they aren't powerful enough to produce any immediate noticeable effects
Well, that and the fact that there's a thick skull plate in the way. Radiation decreases by the inverse square of the distance, but it can also be shielded against by thick and/or dense materials. The more molecules you throw in the way, the more likely the radiation will be stopped.
Yes, that was my point. From the original post:
:-)
IE is completely unhelpful in diagnosing issues with document.addEventListener (a standard that IE doesn't support)
The problem is that programmers want to future-proof their apps by following the standards, but IE has its own set of "standards" that aren't very standard.
Porting IE-only apps to Mozilla/FireFox is easy thanks to the extensive set of DOM and JavaScript debugging tools. It's going the other way that's the hard part. IE is completely unhelpful in diagnosing issues with document.addEventListener (a standard that IE doesn't support), or passing an event instead of using the stupid document.event, or showing you the DOM to find out where (or why) that specific DIV isn't showing up right.
Meh. Somebody needs to either fix IE, or take it out back and shoot it.
Indeed. I just downloaded a copy of VLOS yesterday, and queued it up in line for review. I have to say, there's a certain irony in the more Macish desktop (KDE) becoming Windowsish, while the Windowsish desktop becomes more Macish. ;-)
Personally, I've noticed an interesting trend in KDE. When KDE started, it was something of a Mac/Windows Fusion design that tended to make both users comfortable. After stumbling around on design for awhile, KDE has decided to be more XP-like. The newer the version of KDE, the more it feels like XP. 3.4 is especially guilty, as the window frames are damn near an exact copy.
Not that I'm complaining. 3.4 is an awesome release, and makes KDE feel a lot more solid.
Except for the one pet peeve of mine-->the taskbar is way too huge.
If it hasn't been removed somewhere along the development line, you *can* adjust the size of the kicker bar. Just go into the control panel and look for the Panel settings. You should be able to find a size that's more suitable to your tastes.
Well, that at least proves that Apple will move away from OpenFirmware. Thank you. :-)
Now, can anyone prove that they're going to use EFI?
The tradeoff is realism. BTW, one subset of vector graphics is in fact 3D modeling, and this relation becomes especially apparent with NURBS. 3D models aren't very realistic plainly rendered, even with simple materials. They require textures, which are bitmaps (rasters), to create the illusion of continuity.
:-)
Just to be pedantic for a moment...
Textures in 2D and 3D applications are not necessarily bitmaps. While Bitmaps are the most common form of texture, highly realistic scenery often uses procedural texturing, with the Perlin Noise Function being the most popular method of generating such textures.
What makes procedural texturing so appealing is the fact that they tend to be a vector scaling algorithm that allows the detail to increase or decrease with the object's perceived size. This is in direct opposition to bitmap texturing where the scalable object has a very particular size range before scaling artifacts begin to become noticable.
So that you know that I'm not ignoring you. ;-)
:-)
Seriously, all I know is that you can get an OEM copy of Windows with a hardware purchase. For me, that was building a complete machine. As the link I gave pointed out, however, it doesn't take much to meet the "hardware purchase" requirement.
How can I use this program with other vendors, like NewEgg, or someone smaller like CoolDrives?
;-)
No idea. I suppose you can ask NewEgg if they carry the OEM editions. Personally, I checked out NewEgg when I was building my new system and found their selection to be lacking. I ended up going with MWave and found all the components I wanted at low prices. (Especially the A8N-E NForce 4 board I wanted.)
Can I use this discount direct from Microsoft with proof of hardware purchase?
No idea. Ask Microsoft.
What hardware "counts"?
No idea. As long as the retailer sells you a copy, I don't think it matters.
If I buy a motherboard from one place, a case from another, memory from another, and drives from another, could I buy discounted Windows at any of them?
I think so. Check with MWave support to see if they'll sell you a copy with only one component purchased. My guess is yes, they will.
There's some info here where it's suggested that even purchasing a power cord is sufficient to obtain an OEM copy.