Microsoft released.NET some time ago, and the Mono project was started by Miguel at Novell to produce an open-source, cross platform implementation of it. Silverlight 1.1 (but, apparently, not 1.0) is built on the.NET platform, and thus Moonlight (Novell's implementation) is built on Mono. From reading Miguel's blog entry on the subject, it appears that the rendering surface code is common between Silverlight 1.0 and 1.1, but 1.0 does not use.NET (and thus necessarily Mono) at all. They are apparently working to remove the Mono dependencies from Moonlight 1.0.
Ubuntu, Xubuntu and Kubuntu are all really the same distro with different meta-packages installed (ubuntu-desktop, xubuntu-desktop and kubuntu-desktop respectively). From a quick perusal of Mythbuntu's website it would appear that they operate on much the same principle, aside from being in a separate repository.
It sure would be nice to be able to do
apt-get install mythbuntu-frontend
on a vanilla Ubuntu Server install (Ubuntu Server is really just Ubuntu without any of the aforementioned desktop packages installed) and get a nice, friendly media center UI right out of the box, while still benefiting from the latest updates from the main Ubuntu repositories. It looks like that is what Mythbuntu is working towards, and if they can make it work it might persuade me to have another look at MythTV.
One of the big problems for Linux is the lack of a stable binary driver interface. Even if you are going to make your drivers FOSS you can not just stick a cd in the box or post the driver on your website. The faithful will say that there is no need for the hardware manufacture to make a driver since they can just give out the specs. Well yes but then you have to wait for your driver to be included in the the kernel and then for them to be included in the distros.....
The other option, of course, is to make hardware that talks some standard protocol that is already supported in not only the Linux kernel but the Windows and MacOS kernels. This wasn't really an option in the old days, but now that most kinds of hardware have commoditised there is really no reason for differences at the hardware interface level. There are some notable exceptions (graphics cards, for example) but devices such as network cards, hard disks, keyboards, printers, modems and sound cards really have no reason to differ any longer. Most classes of periperhal that can be plugged into USB already have a standard protocol defined, too.
Except in some very specific cases, there is really little reason to have to ship a CD in the box any longer.
Most replies here are arguing from the point of view of the person "stealing" Internet access. I'm more concerned, though, about the affect this will eventually have on those who are intentionally sharing Internet access.
An implication made in the article is that if you leave your access point open you are responsible for anything sent over your Internet connection, even if it's sent by other people. This concerns me for a number of reasons. The most important of these is that this does not seem to be the case for any other sort of network connection: ISPs, libraries and commercial wireless access points are not held accountable for activity of their users, so why should someone providing Internet access in their home be held to a different standard?
Additionally, with this decision I'm unsure what one is supposed to do in order to "give permission" to use a public access point. Should I display a sign on my house saying "I give permission to use my wi-fi"? What happens if someone's laptop inadvertantly "roams" into the unsecured network of one of my neighbours?
The assumption by the police seems to be that everyone must be selfish with all of their property and never share with others. I shant add another ridiculous analogy to the pot, but I would like to live in a world where everyone shares alike: I offer you the use of my Internet connection in the hope that, if I'm ever near your home, you will let me use yours as well. It's a shame that the vast majority are too selfish to see the benefits that this would bring.
I tend to put an appropriate verb on the "OK" button, but standardize on using "Cancel". In your later example, then, I'd have "Don't Convert" and "Cancel". "Cancel" always means "STOP! I'VE CHANGED MY MIND! JUST TAKE ME BACK TO WHERE I WAS BEFORE I SELECTED THAT OPTION!"
Curiously, when I clicked your link IE loaded Firefox, and then Firefox told me that it had to load Firefox to view this URL. I clicked "Yes" and a new tab opened and it again told me that it had to load Firefox to view this URL.
I can't comment on the "average home router", but I have tested on mine and it'll happily route protocols other than those that are natively supported, but it ends up adding an entry to the state table for that entire protocol, so any incoming packets with the same protocol number end up getting sent to the system that sent out the first packet. You can see this entry in its state table with the port number fields set to zero. This does of course block any other hosts on my LAN from using that protocol until the forwarding rule expires or is explicitly removed.
While I don't doubt that it's very useful for students in a practical sense, the idea of recieving a recording of the lecturer talking to me and "drawing on" my submission seems a little creepy.
However, I guess that's just unfamiliarity. If it were more commonplace, I'm sure it'd work quite well and go some way to approximate "one-on-one" time with the teacher, though obviously in a non-interactive manner. The logical extreme for this is to have the lecturer start some kind of interactive "teleconferencing" session with the student so that they can talk to one another without needing to be together in person, though this is less practical because the work then has to be marked at a time that's mutually convenient for the student and teacher. The recording method you describe sounds like a good compromise.
Using Exchange isn't necessarily a problem, because it can support open standards. If you turn on the IMAP, POP3 and SMTP services then people will be able to use non-Microsoft clients just fine, at least as far as email goes. Calendar is a stickier issue, of course; CalDAV and friends don't seem to be able to gain momentum. This is probably because no-one has yet put together a very simple CalDAV server that can be deployed easily and can ideally interface with other systems for its data.
The other browsers have been copying IE's behavior and bugs for several years now. The problem is that they can only do this by investing considerable time in reverse-engineering, because unlike the actual standards the behavior of IE is not documented outside of Microsoft and is liable to change from version to version.
However, WHATWG (now working alongside the W3C HTML WG) is currently working on writing a new version of the HTML specification that, as well as adding some new features, also includes a vastly more detailed description of what browsers must implement. The description of browser behavior is largely based on what Internet Explorer does, though that's by no means the rule. Their goal, as far as I can tell, is to write down the rules for rendering the content that's out on the web today, which includes lots of buggy crap that works okay in IE by mere coincidence.
I certainly don't percieve a large amount of interest in the "freedom" of personal information on slashdot. Here are some ideas I see expressed regularly:
People should have no expectation of privacy when they are in a public place
Government records should be open and freely distributable
Binary distributions of software should always be accompanied by associated source code
Distinct government departments and other organisations should not have the ability to correlate records between one another.
People have an expectation of privacy when they are in their own home.
People have an expectation that information entrusted to government departments and other organisations will be used only for the intended purpose
I do not necessarily agree with the above, but these seem to be common ideas in slashdot discussions. There are some people who would disagree with some or all of the above, but that's okay because we're all individuals and we have a forum here to debate these issues!
Indeed. Back in the day I learnt a great deal of lessons from doing open source development before I even went to college. College taught me the nuts and bolts of algorithms and approaches, but doing open source development taught me how to write good, maintainable code and code that has the potential to last for several years rather than being thrown away as soon as the requirements change.
Sure, I submitted some awful patches in my formative years, but the people I submitted them to were usually friendly, helpful and courteous. I would recommend this approach to all up-and-coming programmers: find a couple of open source projects whose software you use and enjoy -- I think small- or medium-sized projects work best when you're new because you can build a better relationship with the other developers -- watch the community, study the code, and then write some patches. If you stick at it, it has the potential to put you ahead of most other college graduates in terms of real-world software development experience.
OpenMoko is the name of the operating system and platform. The initial phone model that will use it is the Neo1973. That isn't a brilliant name either, but at least it's better than OpenMoko!
Word has it that the company making that phone -- FIC -- is already a big manufacturer in China, despite the fact that not many people have heard of them in the US or in Europe.
It always amuses when Windows congratulates itself for screwing up. For example, when Windows XP bluescreens and reboots a dialog box is often displayed explaining that "Windows has recovered from a critical system error". I wouldn't consider rebooting to be any sort of recovery... it's more like throwing everything away and starting over!
Every single month their spam filter update for Outlook sets Outlook to be my default browser in spite of Thunderbird. I don't think Microsoft is the least bit sorry.
I maintain a mixed Linux and Windows network. The Linux boxes run Debian. There are quite often updates to install from the Debian security repository, and there are quite often patches from Windows Update. However, when I update the Debian boxes, I've only ever once needed to reboot the system and that was due to a kernel upgrade. I sometimes need to restart individual services, but this is much faster than a full system reboot.
Microsoft makes matters worse by lumping several fixes together into one patch. When I'm installing Debian updates, I can see what's being patched and thus what I need to restart to load the new version of the code. With Windows, all I see is "After you install this update, you may need to restart your computer." May need to restart?
The practical effect of this is that the updates to the Windows systems are more disruptive than the updates to the Debian systems. With the Debian systems, I can tell what the impact will be before I commit myself to installing the updates, and usually only a small part of the overall service of the system is disrupted. With Windows, invariably a full system restart is needed so I must always run them outside of office hours, which eats into my spare time and costs my company money. Most Debian updates are done without the users even noticing, because I can tell before I run them that none of the services they depend on will be impacted.
It is the fact that Windows updates are far more disruptive and annoying than GNU/Linux updates that causes Windows' updates to get a lot more press.
I have a friend who is trying to start a business doing something very similar. He isn't, in fact, specializing only to Linux systems, but it is something he's been looking into. Thus far he's been having some trouble finding a market, but this may have more to do with our location than the market in general since musicians seem to be spread pretty thin in this area. It's also, he says, hard to compete with the unlicenced/cracked copies of Cubase; much as with Adobe Photoshop, people want to use "the industry standard", and are unwilling to use anything else under any circumstance.
He has, however, got a few initial jobs helping musicians configure their unlicenced copies of Cubase. Not really something you can create a business around (the legality is dubious), but it's been getting him a little money on the side of his day job.
Of these, I can rely on the first being present because it's roughly equivalent to using the raw X API: it's as close as you can realistically get to talking directly to the windowing system in Windows. MFC and WTL can at least be built in a way that doesn't create extra dependencies for the user; in MFC's case, we can statically link it. But I can statically link Qt/Gtk to my app too, if I like. The System.Windows.Forms.NET API requires the end-user to have the.NET Framework installed, and I have to be careful about my use of new features in the 2.0 release if I'm aiming for people who only have Framework 1.1 installed. WPF is only available since.NET 3.0, so therefore only available for people keeping their Windows XP machines up to date (it does, at least, install through Windows Update) or people running Windows Vista.
Running an app that targets a.NET Framework version you don't have installed is roughly as annoying as installing a Gtk+ app when you've got a wholly KDE-based desktop. At least in the latter case I usually have a package manager to worry about it for me!
Your comment covers my two main bugbears about IDEs. The first is the assumption that I want the entire project available to me at all times. I'm generally only interested in a tiny subset of the system at any particular moment. It's true that I could set up separate IDE projects for each sub-component, but it's far easier to simply only load into my text editor only the files I'm interested in. I cringe when I watch my IDE-using coworkers clicking frantically around the deep tree of files in the project trying to find the one they want to edit, when I just use the filesystem browser integrated into the shell -- which is designed for quickly navigating to files -- to locate the file and drag it into my text editor.
The second is the integration between the editing, build and deployment. Most of the time I'm writing web apps or other server-side code. Therefore the machine I'm running the IDE on (my workstation) is not where the project needs to be built to (my development server). I gave up trying to figure out how to get Visual Studio.NET to build and deploy my ASP.NET Webservices assembly to the server when I press the "build" button, so I just wrote a simple Perl script to parse the.csproj file and run csc directly. In other situations I've needed to actually build the project on another machine, perhaps because it has libraries available that I don't have on my workstation. At this point, the "build" function in my IDE becomes pointless and I might as well just use a good text editor.
Microsoft's tools are getting better, though. The above situation with ASP.NET Webservices was a while back, before MSBuild existed. More recent versions of Visual Studio.NET actually generate MSBuild scripts for their project files, so my Perl script can now be replaced almost entirely by running msbuild.exe. I still have a wrapper around it that lobs the binary on to the server, though.
The difference between a GUI-based configuration and a file-based configuration is that the former is easy to learn but the latter is easier to use once learned. If all you're doing is tinkering, then I'll grant you that having a GUI setup can get you up and running faster, but I work with both IIS ans Apache servers every day and the IIS ones are far harder for me to maintain because I can't quickly remove chunks of the configuration, or search inside the configuration to find a particular setting, or use search and replace to change a particular setting throughout the entire configuration.
A GUI also makes it far harder to automate administration tasks. On one of our servers the Apache configuration is generated dynamically from a database, because all of the sites hosted there are configured very similarly. I can deploy a new site just by adding a new entry to the database and restarting Apache. I'm guessing that there is a way to do such a thing with IIS, since IIS's admin interface uses some sort of RPC to communicate with the service, but I can't reuse my skills learned doing manual configuration when setting up my automated configuration; with Apache, I already knew what the virtualhost directives needed to look like so writing the script to generate them took only half an hour or so.
Microsoft's DHCP server does actually have a command line interface. I rejoiced the day I discovered that, since I no longer needed to manually copy and paste the settings out of my company's registry of IP address allocations.
Sadly, there doesn't seem to be a similar interface for the DNS server, but it does support the standard DNS update protocol after a fashion, so you can automate the creation of matching hostnames too, or just let the DHCP server do it for you when it gives out a lease.
Those marketing messages do at least provide some amount of amusement when you find yourself installing someone's old version of Windows on their old, knackered computer. Some good examples from Windows 95 include "Windows 95 is the most stable Windows yet!" and "Windows 95 allows you to have more fun!".
PHP consists of both a programming language and a framework. I very shallow, "to the metal" framework to be sure, but still a framework. It provides features such as form submission parsing, cookie management and a concept of "sessions". CakePHP and friends add another layer of framework atop this existing functionality.
Microsoft released .NET some time ago, and the Mono project was started by Miguel at Novell to produce an open-source, cross platform implementation of it. Silverlight 1.1 (but, apparently, not 1.0) is built on the .NET platform, and thus Moonlight (Novell's implementation) is built on Mono. From reading Miguel's blog entry on the subject, it appears that the rendering surface code is common between Silverlight 1.0 and 1.1, but 1.0 does not use .NET (and thus necessarily Mono) at all. They are apparently working to remove the Mono dependencies from Moonlight 1.0.
Ubuntu, Xubuntu and Kubuntu are all really the same distro with different meta-packages installed (ubuntu-desktop, xubuntu-desktop and kubuntu-desktop respectively). From a quick perusal of Mythbuntu's website it would appear that they operate on much the same principle, aside from being in a separate repository.
It sure would be nice to be able to do
on a vanilla Ubuntu Server install (Ubuntu Server is really just Ubuntu without any of the aforementioned desktop packages installed) and get a nice, friendly media center UI right out of the box, while still benefiting from the latest updates from the main Ubuntu repositories. It looks like that is what Mythbuntu is working towards, and if they can make it work it might persuade me to have another look at MythTV.The other option, of course, is to make hardware that talks some standard protocol that is already supported in not only the Linux kernel but the Windows and MacOS kernels. This wasn't really an option in the old days, but now that most kinds of hardware have commoditised there is really no reason for differences at the hardware interface level. There are some notable exceptions (graphics cards, for example) but devices such as network cards, hard disks, keyboards, printers, modems and sound cards really have no reason to differ any longer. Most classes of periperhal that can be plugged into USB already have a standard protocol defined, too.
Except in some very specific cases, there is really little reason to have to ship a CD in the box any longer.
Most replies here are arguing from the point of view of the person "stealing" Internet access. I'm more concerned, though, about the affect this will eventually have on those who are intentionally sharing Internet access.
An implication made in the article is that if you leave your access point open you are responsible for anything sent over your Internet connection, even if it's sent by other people. This concerns me for a number of reasons. The most important of these is that this does not seem to be the case for any other sort of network connection: ISPs, libraries and commercial wireless access points are not held accountable for activity of their users, so why should someone providing Internet access in their home be held to a different standard?
Additionally, with this decision I'm unsure what one is supposed to do in order to "give permission" to use a public access point. Should I display a sign on my house saying "I give permission to use my wi-fi"? What happens if someone's laptop inadvertantly "roams" into the unsecured network of one of my neighbours?
The assumption by the police seems to be that everyone must be selfish with all of their property and never share with others. I shant add another ridiculous analogy to the pot, but I would like to live in a world where everyone shares alike: I offer you the use of my Internet connection in the hope that, if I'm ever near your home, you will let me use yours as well. It's a shame that the vast majority are too selfish to see the benefits that this would bring.
I tend to put an appropriate verb on the "OK" button, but standardize on using "Cancel". In your later example, then, I'd have "Don't Convert" and "Cancel". "Cancel" always means "STOP! I'VE CHANGED MY MIND! JUST TAKE ME BACK TO WHERE I WAS BEFORE I SELECTED THAT OPTION!"
However, there's a fun example of this taken too far at The Daily WTF.
Curiously, when I clicked your link IE loaded Firefox, and then Firefox told me that it had to load Firefox to view this URL. I clicked "Yes" and a new tab opened and it again told me that it had to load Firefox to view this URL.
Certainly didn't launch cmd.exe. What gives?
I can't comment on the "average home router", but I have tested on mine and it'll happily route protocols other than those that are natively supported, but it ends up adding an entry to the state table for that entire protocol, so any incoming packets with the same protocol number end up getting sent to the system that sent out the first packet. You can see this entry in its state table with the port number fields set to zero. This does of course block any other hosts on my LAN from using that protocol until the forwarding rule expires or is explicitly removed.
While I don't doubt that it's very useful for students in a practical sense, the idea of recieving a recording of the lecturer talking to me and "drawing on" my submission seems a little creepy.
However, I guess that's just unfamiliarity. If it were more commonplace, I'm sure it'd work quite well and go some way to approximate "one-on-one" time with the teacher, though obviously in a non-interactive manner. The logical extreme for this is to have the lecturer start some kind of interactive "teleconferencing" session with the student so that they can talk to one another without needing to be together in person, though this is less practical because the work then has to be marked at a time that's mutually convenient for the student and teacher. The recording method you describe sounds like a good compromise.
Using Exchange isn't necessarily a problem, because it can support open standards. If you turn on the IMAP, POP3 and SMTP services then people will be able to use non-Microsoft clients just fine, at least as far as email goes. Calendar is a stickier issue, of course; CalDAV and friends don't seem to be able to gain momentum. This is probably because no-one has yet put together a very simple CalDAV server that can be deployed easily and can ideally interface with other systems for its data.
The other browsers have been copying IE's behavior and bugs for several years now. The problem is that they can only do this by investing considerable time in reverse-engineering, because unlike the actual standards the behavior of IE is not documented outside of Microsoft and is liable to change from version to version.
However, WHATWG (now working alongside the W3C HTML WG) is currently working on writing a new version of the HTML specification that, as well as adding some new features, also includes a vastly more detailed description of what browsers must implement. The description of browser behavior is largely based on what Internet Explorer does, though that's by no means the rule. Their goal, as far as I can tell, is to write down the rules for rendering the content that's out on the web today, which includes lots of buggy crap that works okay in IE by mere coincidence.
I certainly don't percieve a large amount of interest in the "freedom" of personal information on slashdot. Here are some ideas I see expressed regularly:
I do not necessarily agree with the above, but these seem to be common ideas in slashdot discussions. There are some people who would disagree with some or all of the above, but that's okay because we're all individuals and we have a forum here to debate these issues!
Indeed. Back in the day I learnt a great deal of lessons from doing open source development before I even went to college. College taught me the nuts and bolts of algorithms and approaches, but doing open source development taught me how to write good, maintainable code and code that has the potential to last for several years rather than being thrown away as soon as the requirements change.
Sure, I submitted some awful patches in my formative years, but the people I submitted them to were usually friendly, helpful and courteous. I would recommend this approach to all up-and-coming programmers: find a couple of open source projects whose software you use and enjoy -- I think small- or medium-sized projects work best when you're new because you can build a better relationship with the other developers -- watch the community, study the code, and then write some patches. If you stick at it, it has the potential to put you ahead of most other college graduates in terms of real-world software development experience.
At least by default, Windows Update will download updates in the background and then offer to install them once the download has completed.
OpenMoko is the name of the operating system and platform. The initial phone model that will use it is the Neo1973. That isn't a brilliant name either, but at least it's better than OpenMoko!
Word has it that the company making that phone -- FIC -- is already a big manufacturer in China, despite the fact that not many people have heard of them in the US or in Europe.
It always amuses when Windows congratulates itself for screwing up. For example, when Windows XP bluescreens and reboots a dialog box is often displayed explaining that "Windows has recovered from a critical system error". I wouldn't consider rebooting to be any sort of recovery... it's more like throwing everything away and starting over!
Every single month their spam filter update for Outlook sets Outlook to be my default browser in spite of Thunderbird. I don't think Microsoft is the least bit sorry.
I maintain a mixed Linux and Windows network. The Linux boxes run Debian. There are quite often updates to install from the Debian security repository, and there are quite often patches from Windows Update. However, when I update the Debian boxes, I've only ever once needed to reboot the system and that was due to a kernel upgrade. I sometimes need to restart individual services, but this is much faster than a full system reboot.
Microsoft makes matters worse by lumping several fixes together into one patch. When I'm installing Debian updates, I can see what's being patched and thus what I need to restart to load the new version of the code. With Windows, all I see is "After you install this update, you may need to restart your computer." May need to restart?
The practical effect of this is that the updates to the Windows systems are more disruptive than the updates to the Debian systems. With the Debian systems, I can tell what the impact will be before I commit myself to installing the updates, and usually only a small part of the overall service of the system is disrupted. With Windows, invariably a full system restart is needed so I must always run them outside of office hours, which eats into my spare time and costs my company money. Most Debian updates are done without the users even noticing, because I can tell before I run them that none of the services they depend on will be impacted.
It is the fact that Windows updates are far more disruptive and annoying than GNU/Linux updates that causes Windows' updates to get a lot more press.
I have a friend who is trying to start a business doing something very similar. He isn't, in fact, specializing only to Linux systems, but it is something he's been looking into. Thus far he's been having some trouble finding a market, but this may have more to do with our location than the market in general since musicians seem to be spread pretty thin in this area. It's also, he says, hard to compete with the unlicenced/cracked copies of Cubase; much as with Adobe Photoshop, people want to use "the industry standard", and are unwilling to use anything else under any circumstance.
He has, however, got a few initial jobs helping musicians configure their unlicenced copies of Cubase. Not really something you can create a business around (the legality is dubious), but it's been getting him a little money on the side of his day job.
Of these, I can rely on the first being present because it's roughly equivalent to using the raw X API: it's as close as you can realistically get to talking directly to the windowing system in Windows. MFC and WTL can at least be built in a way that doesn't create extra dependencies for the user; in MFC's case, we can statically link it. But I can statically link Qt/Gtk to my app too, if I like. The System.Windows.Forms .NET API requires the end-user to have the .NET Framework installed, and I have to be careful about my use of new features in the 2.0 release if I'm aiming for people who only have Framework 1.1 installed. WPF is only available since .NET 3.0, so therefore only available for people keeping their Windows XP machines up to date (it does, at least, install through Windows Update) or people running Windows Vista.
Running an app that targets a .NET Framework version you don't have installed is roughly as annoying as installing a Gtk+ app when you've got a wholly KDE-based desktop. At least in the latter case I usually have a package manager to worry about it for me!
Your comment covers my two main bugbears about IDEs. The first is the assumption that I want the entire project available to me at all times. I'm generally only interested in a tiny subset of the system at any particular moment. It's true that I could set up separate IDE projects for each sub-component, but it's far easier to simply only load into my text editor only the files I'm interested in. I cringe when I watch my IDE-using coworkers clicking frantically around the deep tree of files in the project trying to find the one they want to edit, when I just use the filesystem browser integrated into the shell -- which is designed for quickly navigating to files -- to locate the file and drag it into my text editor.
The second is the integration between the editing, build and deployment. Most of the time I'm writing web apps or other server-side code. Therefore the machine I'm running the IDE on (my workstation) is not where the project needs to be built to (my development server). I gave up trying to figure out how to get Visual Studio.NET to build and deploy my ASP.NET Webservices assembly to the server when I press the "build" button, so I just wrote a simple Perl script to parse the .csproj file and run csc directly. In other situations I've needed to actually build the project on another machine, perhaps because it has libraries available that I don't have on my workstation. At this point, the "build" function in my IDE becomes pointless and I might as well just use a good text editor.
Microsoft's tools are getting better, though. The above situation with ASP.NET Webservices was a while back, before MSBuild existed. More recent versions of Visual Studio.NET actually generate MSBuild scripts for their project files, so my Perl script can now be replaced almost entirely by running msbuild.exe. I still have a wrapper around it that lobs the binary on to the server, though.
The difference between a GUI-based configuration and a file-based configuration is that the former is easy to learn but the latter is easier to use once learned. If all you're doing is tinkering, then I'll grant you that having a GUI setup can get you up and running faster, but I work with both IIS ans Apache servers every day and the IIS ones are far harder for me to maintain because I can't quickly remove chunks of the configuration, or search inside the configuration to find a particular setting, or use search and replace to change a particular setting throughout the entire configuration.
A GUI also makes it far harder to automate administration tasks. On one of our servers the Apache configuration is generated dynamically from a database, because all of the sites hosted there are configured very similarly. I can deploy a new site just by adding a new entry to the database and restarting Apache. I'm guessing that there is a way to do such a thing with IIS, since IIS's admin interface uses some sort of RPC to communicate with the service, but I can't reuse my skills learned doing manual configuration when setting up my automated configuration; with Apache, I already knew what the virtualhost directives needed to look like so writing the script to generate them took only half an hour or so.
Microsoft's DHCP server does actually have a command line interface. I rejoiced the day I discovered that, since I no longer needed to manually copy and paste the settings out of my company's registry of IP address allocations.
Sadly, there doesn't seem to be a similar interface for the DNS server, but it does support the standard DNS update protocol after a fashion, so you can automate the creation of matching hostnames too, or just let the DHCP server do it for you when it gives out a lease.
Those marketing messages do at least provide some amount of amusement when you find yourself installing someone's old version of Windows on their old, knackered computer. Some good examples from Windows 95 include "Windows 95 is the most stable Windows yet!" and "Windows 95 allows you to have more fun!".
PHP consists of both a programming language and a framework. I very shallow, "to the metal" framework to be sure, but still a framework. It provides features such as form submission parsing, cookie management and a concept of "sessions". CakePHP and friends add another layer of framework atop this existing functionality.