The new Gnome DBUS session management system may be better than the X protocol, but:
1. will other session managers adopt the new protocol (KDE, Xfce, X11)? 2. what if a user wants to use an older version of a program that only supports the older protocol? 3. will application writers need to support both protocols? (answer: yes) 4. applications supporting both protocols will need to abstract it - how easy is this to do? 5. what if an application refuses to use the new protocol (not standardised, not stable, not enough devs/testers to manage this)? 6. what if the protocol changes on standardisation and there are applications using it? (this may or may not be related to 5, depending on how the new protocol is designed) 7. is it possible to support newer versions of the protocol with clients that support older versions, and the other way around? (otherwise the protocol cannot change to support new functionality and features - there is a reason COM was designed the way it was) 8. what if newer applications adopt the Gnome protocol and remove the X protocol? (answer: the app will not save sessions and may crash on other systems) 9. what if the application is built without the Gnome protocol support? 10. what if I don't want DBUS on my system? (yes, I know this will break a lot of things now, but it is a valid question)
What this comes to is that (1) writing APIs and protocols is hard; (2) changing APIs and protocols is harder. The more clients of those APIs and protocols you have, the harder it is to change. There is a reason why X11 and the Win32 API are the way they are and why they have evolved the way they have.
Was the protocol spec actually reviewed, or was it a "lets push this change regardless"?
Was there a migration strategy planned?
Were upstream clients of Gnome informed of this proposed change (applications, distributions, etc) so they could have their input?
Then it is not refactoring. Refactoring should (barring typos and thinkos) keep the functionality identical *with every change that you commit*.
What that guy is doing (and what the Gnome devs are doing with the session management) is essentially a rewrite. These are tricky and potentially dangerous, but can be beneficial in the long run. However, these should always be done on a branch and should be tested. Regressions are likely to happen with this type of work.
I am surprised that the reviewers for the Gnome project allowed unimplemented code to go in, especially for major functionality.
I think that as well as more people turning to Open Source/Free Software alternatives that Microsoft are scared of people like Ken (from the HeliOS blog referenced above) and the power of word of mouth and community. When more and more people start using and recommending alternatives, Microsoft tries everything to disrupt and corrupt them.
See Netscape/IE, ISO/OOXML, Microsoft gatecrashing conferences and now this for examples.
I like the Ghandi quote: "First they ignore us, then they laugh at us, then they fight us, then we win!"
Didn't you know that ASP.NET is a dead MS tech, just like Windows Forms, GDI+, COM, ATL, MFC, the Win32 API and any other "new" technology released in the previous version of the operating system/tools.
1. Release a brand new ultra-cool GDI+ framework. 2. Place it in maintenance mode after version 1. 3. Developers finally catch up to and start using the technology. 4.... 5. Profit??? (But who profits here?)
How many people are stuck on WinForms and ASP.NET when they should be using WPF/Silverlight? What will MS release when people start using these? Azure?
So help out. Test your favorite application in Wine that you use day-in day-out. Add your feedback to AppDB - mention that functionality XYZ does not work, or is slow. File bug reports.
I do this for Cepstral SwiftTalker that I use all the time under Wine.
If you see a bug in Firefox, do you report it or do you just tolerate it? Reporting it means that it is more likely to get fixed (note that I am not saying will get fixed as tracking down bugs can be complicated and time consuming).
Someone could use your work and use it to create a really cool game that everyone buys. They release it as closed source as you don't have the protection from (L)GPL, so you don't know what they have done to your codebase and you don't benefit.
In your example, it is not the copy prevention circumvention that is the issue but the use of the code without sharing the changes.
NOTE: (disclaimer: IANAL) If the license does not have protections against modification or reuse (like the (L)GPL does) then it *prevents* you suing people who modify the source code and not distribute it, just the binaries.
And if you are talking about suing people who modify and publish the source, what protections in the license do you have for that (e.g. you shall not modify and distribute the program in source form). What's to prevent people modifying it and distributing it in binary form?
So educate people. Teach them Python and/or Ruby either as a replacement for, or as well as C#. Teach them C/C++. Teach them Haskell, Prolog and other languages. Teach them Objective-C and how to write iPhone/Mac applications.
Haskell was a revelation for me into how the C++ STL works and the design decisions behind it.
Scripting languages are easier to start with as the first program is just a print command and you don't need to compile the program. Hell, teach children Logo or other interactive languages.
There are (generalizing) three categories of companies: (a) companies willing to invest in the time and effort to create Mac and Linux applications (easier to do for startups/from the beginning); (b) companies interested in providing a Linux or Mac version, but who don't currently have the resources; (c) companies that are not interested or have no intention of providing versions that don't target Windows.
With these (a) is not a problem as you already have native versions. With (b) there is interest and Wine/CrossOver can help to bridge that gap, to help get an initial version out of the door so that later on they can produce a native version. With (c) Wine is the only way you are going to run those applications (Microsoft Office, etc).
Speaking from a developer's perspective, there is the learning curve to understand the different APIs. The choice of frameworks and libraries is great, but there is that investment in time and money (time off to learn, books and training courses).
If the company can get its developers to learn these outside of work then it reduces the cost for the company. It does mean that the company and the developers need to be dedicated.
The same is true on the Mac, learning Objective-C and the Cocoa/Carbon APIs.
Then there is the effort of porting an established codebase. In that respect it is easier for a new project or startup to create a cross-platform application/game. There is still the learning curve, though.
It's usually because the tools, build process and code are tied to the Windows API (especially for established games and programs). If you need to spend a large amount of money for a small gain then it is very difficult to create a business case for supporting Linux and/or Mac. Thus, Wine is often easier because it is the same codebase and APIs.
There is a growing (albeit slowly) interest in and support for Linux. These tend to be independent games companies, the big games companies (with the possible exception of Steam) are not interested.
I added several games from Oberon Media during the Wine 1.0 beta/RC, about half of which work out of the ones tested, to the Wine AppDB. I haven't had the time to do any real testing recently, though.
1. Go to System > Administration > Network Tools 2. Select the Ping tab 3. Enter the DNS name or IP address in the "Network address" edit field 4. Press the Ping button
Don't forget (if you are running Linux) that the websites persuaded by Microsoft to use Silverlight on their web pages (Olympics 2008 I'm looking at you). At least with Flash, there is a Linux and Mac version.
The article says that the online university requires MSWord. However, it fails to mention what version the university is using and what version the woman is using.
If the university is using Office 2007 and sends a docx file to the woman, who is using an earlier version then she won't be able to read them. There may be converters for version N-1, but if she is using one that is even older then she is out of luck.
Now consider it the other way around (like happened with a UK school IIRC) and she sends a docx file to the university that cannot read it because they are using asn older version.
And do the Verison CDs work with Vista?
I'm not saying that (if the story is indeed valid) that there aren't issues with Ubuntu (in this case with Version not supporting Linux, the university for explicitly requiring MSWord and for Dell not listening to its customer), just that using Windows may (or may not) be without compatibility issues either.
I want to strangle people throwing exceptions over Windows COM boundaries, but hey, you can't have everything!
Seriously, exception handling in C++ is a good idea, however they can be a problem if they leak over process boundaries (COM, etc.) or are thrown outside a destructor. Also, have you tried giving a sensible error message to an exception that just reports "access denied", and not what was denied access.
The key thing here is that C has a well-defined stable ABI that you can use to interact between different versions of a compiler, even different compilers. In C++ it is possible to do this on some level (look at COM, for example), but this does not work at the larger level.
Looking at Qt3 (don't know if they've fixed this in Qt4), but the interfaces don't have virtual destructors. They can't fix this as it will break program ABI, and not having it opens up to bugs (derived destructor not being called when deleting a pointer to a base class).
And don't get me started on the number of string classes there are, that don't work well with each other that you have to convert back and forth between.
They are currently headed for Beta 1 (see the latest status meeting notes at https://wiki.mozilla.org/Thunderbird/StatusMeetings/2008-11-11); the nightlies can be downloaded from the usual place (http://www.mozilla.org/developer/#builds) if you want to take a look.
Given the past history with personal information being lost in the UK, I hope they encrypt the database so that if it does get lost then it won't be readable.
Gordon Brown (the currently the Prime Minister) was not elected, although the Labour Party was (via Tony Blair). He took over from Tony Blair (who was elected by the people) who stepped down from leadership.
> There is also the question of what the AI's goals are.
1) kill John Connor
2) destroy the Galactica
3) find The One
4) refuse to open any pod bay doors
The new Gnome DBUS session management system may be better than the X protocol, but:
1. will other session managers adopt the new protocol (KDE, Xfce, X11)?
2. what if a user wants to use an older version of a program that only supports the older protocol?
3. will application writers need to support both protocols? (answer: yes)
4. applications supporting both protocols will need to abstract it - how easy is this to do?
5. what if an application refuses to use the new protocol (not standardised, not stable, not enough devs/testers to manage this)?
6. what if the protocol changes on standardisation and there are applications using it? (this may or may not be related to 5, depending on how the new protocol is designed)
7. is it possible to support newer versions of the protocol with clients that support older versions, and the other way around? (otherwise the protocol cannot change to support new functionality and features - there is a reason COM was designed the way it was)
8. what if newer applications adopt the Gnome protocol and remove the X protocol? (answer: the app will not save sessions and may crash on other systems)
9. what if the application is built without the Gnome protocol support?
10. what if I don't want DBUS on my system? (yes, I know this will break a lot of things now, but it is a valid question)
What this comes to is that (1) writing APIs and protocols is hard; (2) changing APIs and protocols is harder. The more clients of those APIs and protocols you have, the harder it is to change. There is a reason why X11 and the Win32 API are the way they are and why they have evolved the way they have.
Was the protocol spec actually reviewed, or was it a "lets push this change regardless"?
Was there a migration strategy planned?
Were upstream clients of Gnome informed of this proposed change (applications, distributions, etc) so they could have their input?
Then it is not refactoring. Refactoring should (barring typos and thinkos) keep the functionality identical *with every change that you commit*.
What that guy is doing (and what the Gnome devs are doing with the session management) is essentially a rewrite. These are tricky and potentially dangerous, but can be beneficial in the long run. However, these should always be done on a branch and should be tested. Regressions are likely to happen with this type of work.
I am surprised that the reviewers for the Gnome project allowed unimplemented code to go in, especially for major functionality.
http://linuxlock.blogspot.com/ (David) vs http://www.microsoft.com/presspass/press/2009/feb09/02-22elevateamericapr.mspx (Goliath).
I think that as well as more people turning to Open Source/Free Software alternatives that Microsoft are scared of people like Ken (from the HeliOS blog referenced above) and the power of word of mouth and community. When more and more people start using and recommending alternatives, Microsoft tries everything to disrupt and corrupt them.
See Netscape/IE, ISO/OOXML, Microsoft gatecrashing conferences and now this for examples.
I like the Ghandi quote: "First they ignore us, then they laugh at us, then they fight us, then we win!"
Didn't you know that ASP.NET is a dead MS tech, just like Windows Forms, GDI+, COM, ATL, MFC, the Win32 API and any other "new" technology released in the previous version of the operating system/tools.
1. Release a brand new ultra-cool GDI+ framework. ...
2. Place it in maintenance mode after version 1.
3. Developers finally catch up to and start using the technology.
4.
5. Profit??? (But who profits here?)
How many people are stuck on WinForms and ASP.NET when they should be using WPF/Silverlight? What will MS release when people start using these? Azure?
They got the E part wrong in the name. It should be "Embrace America". Or are we on "Extend America" now?
So help out. Test your favorite application in Wine that you use day-in day-out. Add your feedback to AppDB - mention that functionality XYZ does not work, or is slow. File bug reports.
I do this for Cepstral SwiftTalker that I use all the time under Wine.
If you see a bug in Firefox, do you report it or do you just tolerate it? Reporting it means that it is more likely to get fixed (note that I am not saying will get fixed as tracking down bugs can be complicated and time consuming).
Someone could use your work and use it to create a really cool game that everyone buys. They release it as closed source as you don't have the protection from (L)GPL, so you don't know what they have done to your codebase and you don't benefit.
In your example, it is not the copy prevention circumvention that is the issue but the use of the code without sharing the changes.
NOTE: (disclaimer: IANAL) If the license does not have protections against modification or reuse (like the (L)GPL does) then it *prevents* you suing people who modify the source code and not distribute it, just the binaries.
And if you are talking about suing people who modify and publish the source, what protections in the license do you have for that (e.g. you shall not modify and distribute the program in source form). What's to prevent people modifying it and distributing it in binary form?
So educate people. Teach them Python and/or Ruby either as a replacement for, or as well as C#. Teach them C/C++. Teach them Haskell, Prolog and other languages. Teach them Objective-C and how to write iPhone/Mac applications.
Haskell was a revelation for me into how the C++ STL works and the design decisions behind it.
Scripting languages are easier to start with as the first program is just a print command and you don't need to compile the program. Hell, teach children Logo or other interactive languages.
Sure.
There are (generalizing) three categories of companies:
(a) companies willing to invest in the time and effort to create Mac and Linux applications (easier to do for startups/from the beginning);
(b) companies interested in providing a Linux or Mac version, but who don't currently have the resources;
(c) companies that are not interested or have no intention of providing versions that don't target Windows.
With these (a) is not a problem as you already have native versions. With (b) there is interest and Wine/CrossOver can help to bridge that gap, to help get an initial version out of the door so that later on they can produce a native version. With (c) Wine is the only way you are going to run those applications (Microsoft Office, etc).
Speaking from a developer's perspective, there is the learning curve to understand the different APIs. The choice of frameworks and libraries is great, but there is that investment in time and money (time off to learn, books and training courses).
If the company can get its developers to learn these outside of work then it reduces the cost for the company. It does mean that the company and the developers need to be dedicated.
The same is true on the Mac, learning Objective-C and the Cocoa/Carbon APIs.
Then there is the effort of porting an established codebase. In that respect it is easier for a new project or startup to create a cross-platform application/game. There is still the learning curve, though.
Step 5: ??? ;)
Step 6: Profit!
It's usually because the tools, build process and code are tied to the Windows API (especially for established games and programs). If you need to spend a large amount of money for a small gain then it is very difficult to create a business case for supporting Linux and/or Mac. Thus, Wine is often easier because it is the same codebase and APIs.
There is a growing (albeit slowly) interest in and support for Linux. These tend to be independent games companies, the big games companies (with the possible exception of Steam) are not interested.
I added several games from Oberon Media during the Wine 1.0 beta/RC, about half of which work out of the ones tested, to the Wine AppDB. I haven't had the time to do any real testing recently, though.
1. Go to System > Administration > Network Tools
2. Select the Ping tab
3. Enter the DNS name or IP address in the "Network address" edit field
4. Press the Ping button
At least in Ubuntu.
Don't forget (if you are running Linux) that the websites persuaded by Microsoft to use Silverlight on their web pages (Olympics 2008 I'm looking at you). At least with Flash, there is a Linux and Mac version.
The article says that the online university requires MSWord. However, it fails to mention what version the university is using and what version the woman is using.
If the university is using Office 2007 and sends a docx file to the woman, who is using an earlier version then she won't be able to read them. There may be converters for version N-1, but if she is using one that is even older then she is out of luck.
Now consider it the other way around (like happened with a UK school IIRC) and she sends a docx file to the university that cannot read it because they are using asn older version.
And do the Verison CDs work with Vista?
I'm not saying that (if the story is indeed valid) that there aren't issues with Ubuntu (in this case with Version not supporting Linux, the university for explicitly requiring MSWord and for Dell not listening to its customer), just that using Windows may (or may not) be without compatibility issues either.
I want to strangle people throwing exceptions over Windows COM boundaries, but hey, you can't have everything!
Seriously, exception handling in C++ is a good idea, however they can be a problem if they leak over process boundaries (COM, etc.) or are thrown outside a destructor. Also, have you tried giving a sensible error message to an exception that just reports "access denied", and not what was denied access.
The key thing here is that C has a well-defined stable ABI that you can use to interact between different versions of a compiler, even different compilers. In C++ it is possible to do this on some level (look at COM, for example), but this does not work at the larger level.
Looking at Qt3 (don't know if they've fixed this in Qt4), but the interfaces don't have virtual destructors. They can't fix this as it will break program ABI, and not having it opens up to bugs (derived destructor not being called when deleting a pointer to a base class).
And don't get me started on the number of string classes there are, that don't work well with each other that you have to convert back and forth between.
There is a Thunderbird 3 in the works (see https://wiki.mozilla.org/Main_Page).
They are currently headed for Beta 1 (see the latest status meeting notes at https://wiki.mozilla.org/Thunderbird/StatusMeetings/2008-11-11); the nightlies can be downloaded from the usual place (http://www.mozilla.org/developer/#builds) if you want to take a look.
http://www.phoronix.com/scan.php?page=article&item=xorg_wayland&num=1
It is a new (very experimental) graphics server that would end up replacing the current X server in Linux.
http://www.gutenberg.org/browse/authors/v#a60
But he was not elected PM.
Given the past history with personal information being lost in the UK, I hope they encrypt the database so that if it does get lost then it won't be readable.
Gordon Brown (the currently the Prime Minister) was not elected, although the Labour Party was (via Tony Blair). He took over from Tony Blair (who was elected by the people) who stepped down from leadership.