If you want to distribute the license for the database along with your own project, your project must either be licensed under a similar compliant license, or you must pay for a commercial license.
This article comes from CIO website so I think that it if fair to say that they are most interested in applications for the enterprise. Enterprise applications don't bundle the database. They may require a certain database vendor product/version or a small set of database vendors but they don't bundle the database with the application. This is true whether or not you use SQL Server, DB2, Oracle, MySQL, or PostgreSQL.
IANAL, but IMHO there is no legal restriction to selling a commercial, closed source application that requires MySQL as long as you don't include the MySQL application with it. This isn't a problem for enterprise applications because businesses that need such applications already have sufficient IT experience to run the vendor specific database that they are going to accept. If a company doesn't have sufficient IT experience to do this then they are going to have to go the SaaS route. Their are not going to be able to manage the application even if it did come bundled with a vendor specific database product.
A cynic obviously can't see that there are business models other than "proprietary-solutions vendor."
Actually, my take after RTFA was that this guy was saying something along the lines of "how can you trust a proprietary solutions vendor with an open source solution?" Isn't it tempting for them to sabotage the open source solution in an attempt to poison public opinion against it? A bad experience with open source would redirect people back to the proprietary solution which the vendor would perceive as better for their bottom line.
I don't think he's warning his readers away from open source. I think what he is saying is "if you must do open source, use a vendor who is truly committed to it." Shouldn't you do that with any technology?
I don't know why he makes baiting statements about open source being a religion, etc. That seems to be a distraction.
I believe that some people are addicted to debt. When faced with two options, they will always pick the one that drives them deeper into debt. What can you do about it? Start a twelve step program, I suppose.
Right, it's not so much that Web 2.0 itself is distracting web companies from the basics of good design as it is the rush to go Web 2.0 that is the source of the distraction. At least, that's what I got out of RTFA.
Thanks for the links. IMHO, only the last one is coherent. To abuse on old joke around here, in Soviet Russia, frameworks call you.
What Spolsky (and everyone here) is complaining about isn't really about frameworks versus libraries but more about heavy weight versus light weight. Frameworks can get heavy because they tend to combine lots of functionality in a way that introduces a lot of dependencies, thus increasing coupling (which, in software engineering, is a bad thing). That's where the feeling of having to deal with a lot of stuff that you don't care about comes in. A lightweight framework tends to chunk all this complex functionality into a set of relevant services then uses Dependency Injection as the plumbing to connect the services together. A really great book on this topic is Better, Faster, Lighter Java.
I did not ask why the trembling. These were not top level people in the organization. If I had to guess, I would say that MSFT did not get where they are by underestimating the competition.
nobody in a position to spend money takes it (mono) seriously
I was in a developer conference last year. I was a speaker so I got to hang out in the speaker's lounge. Many of the other speakers were MSFT evangelists. They were joking it up quite a bit with typical geek bravado and camaraderie until the subject of mono was brought up. After that, it was pale faces, trembling, and hushed whispers.
I used to live in Oakland, CA where a police helicopter would fly over my neighborhood almost nightly. Most of the time, they would concentrate their spotlight search on a local school.
From a civil rights perspective, how is this any different from police car units patrolling your neighborhood?
Here's another great prank. Take a battery driven smoke detector and hide it in the victim's house. The battery will drain and, over time, become low in charge. Smoke detectors with a low battery charge emit this short duration chirp about twice a minute. The chirp is too brief for your ears to locate it. A couple or months of that chirp will drive anyone mad. It will take hours of focused time to locate it.
Attendance at CBT focused colleges is trending up.
But seriously, what is the trade off in face time versus online community? With online, you get more protection from biological/chemical/random suicide killer attacks without surrendering civil rights since there is no single high value target. With face time, you get more presence because the amount of information that current collaboration tools provide does not even begin to match the depth and bandwidth of face time (i.e. face time 5 senses and a tighter feedback loop versus online 2 senses).
Actually, IBM does target me. I develop server side applications. I haven't used their WebSphere application server in years. What I remember about it is great reliability, great performance, and a bit of a nightmare to administer. Things are most probably different now. I admit that I have not kept up to date on WebSphere. What I remember about it was that it had a funky directory structure. At the time, I was in a J2EE portal infrastructure company whose products had to run on all the popular application containers. If code was going to have a container dependent issue, it was always going to be with WebSphere.
My feelings about DB2 are similar; great performance, great reliability, not developer friendly. Of all the modern, enterprise worthy DBMSs out there, only DB2 doesn't support automatic generation of artificial keys. MS SQL Server has the identity keyword. MySql has the auto_increment keyword. Oracle has the sequence object. Postgresql has the serial type. What does DB2 have? Nothing. Nada. According to DB2 gurus, artificial keys are bad and natural keys are good. So, the user always has to type in the primary key to retrieve a record. Ha, ha, imagine having to type in the ISBN if you wanted to look up a book on Amazon.
At IBM, we strive to lead in the invention, development and manufacture of the industry's most advanced information technologies, including computer systems, software, storage systems and microelectronics.
Perhaps they are neither a software nor hardware company. Perhaps they are a solutions company.
In the world of the IBM 360 mainframe, only the JES (Job Entry Subsystem) was allowed to do any file maintenance. So, in order to copy or move a file, you had to invoke a program. The program wouldn't and couldn't copy the file. You invoked the program using JCL (Job Control Language) and in that job step that invoked the program, you would specify the disposition of the file(s). That is how you could copy or move a file, in the disposition part of the job step.
But what if that is all you needed to do? Each job step in JCL had to launch some program. What program should you invoke if all you wanted to do was copy the file? The program itself should do as little as possible since you weren't interested in what the program did. That is why IBM provided application IEFBR14. That program had one assembler instruction in it. Namely, BR 14 or branch on register 14. Register 14 held the address in memory of the part of the O.S. that a program needed to return control too when it was done.
Did it work? Sure, but why should I have to execute a program that does nothing more than return control to the O.S. when all I wanted to do was copy a file? It isn't logical. It doesn't make any sense. To put it in modern terms, what would you think about a spreadsheet application that didn't have a save menu? In order to save, you just had to click on any menu? Sounds insane to me.
IBM is a great hardware company. It has never been known for great software. Ask anybody who has had to use JCL. The inventors of IEFBR14 could never be known as a great software company.
I will admit that Eclipse is an excellent application but does anyone here remember Visual Age for Java? That app was seriously FUBAR and it would clobber ODBC on the machine when you uninstalled it which you invariably would since that is how bad Visual Age for Java was.
I'd like to know the story behind those two products. How could the same company produce two products with such disparate quality? Is the open source development model so superior that even a company like IBM can learn to make great software? Is it possible for a mega corp, like IBM, to be able to turn itself around and learn from its failures to start producing such great success? I haven't a clue.
gnugo...skilled go players are not even challenged by go software
Have you played GNU Go recently? It used to be a joke. Now, it is great to train against. It is possible to beat it by learning its quirks but what would be the point of that? For me, AI in strategic board games is only useful for training and preparation against human players. If you play it like you would in a normal game, then you are up against a supreme tactician and a pretty reasonable strategist. If you haven't played it recently, then I recommend you try it again.
Visual Studio have some methods of automatically creating Javascript calls... it's likely that Visual Studio is infringing on this patent
IANAL so take this with a grain of salt. IMHO, VS.NET does not infringe on the first independent claim of the Morfik patent. It is my understanding of U.S. patent law that all independent claims of a patent must be infringed upon in order for it to be a patent violation.
The MSFT technology that the poster is referring to used to be marketed as Atlas but no longer. It is not in violation of this patent because it does not compile server side code into client side java script. Instead, it provides a lot of web controls that use AJAX instead of the traditional ASP.NET form post to interact with the server.
If your software can break the hardware then your hardware is broken.
It has nothing to do with software's affect on hardware. This kind of decision is purely one of support training. Their support people are not trained on Linux and HP isn't interested in spending the money necessary to train their support people on Linux.
This shouldn't be a Linux issue at all and HP is handling it all wrong. I remember having a problem with a laptop back in the days of Windows 3.1. I had installed Windows 95 on it and, a few months later, it stopped working. I called support and explained the situation. They said send it in, however, the first thing they were going to do is reset the hard drive to the ghost image that they had for that model which included Windows 3.1
HP should do something similar. It doesn't matter what you install on the hardware and make sure you backup everything that you are interested in keeping before sending it in. What you get back is the machine reset to the state that you bought it in. I think that is fair.
Nobody goes to their boss with a proposal or idea that begins with "I read on slashdot..."
Not necessarily so. I don't bother mentioning the source but I have incorporated lots of technologies that I've heard about on/. into our products and/or processes. Perhaps 99% of the content here is sophomoric but the remaining 1% is pure gold and worth every minute of sifting through the same old tired jokes repeated endlessly.
I don't think that everyone would agree with that. I don't believe that the semantic web is about data aggregation as much as it is about context sensitive search.
If you were correct, then the semantic web would not get adoption until the data aggregation function could honor the syndicator's financial need to display advertising. That would be very tricky. The syndicator would no longer be able to make any promises to the advertiser regarding placement. That would have a chilling affect on the most predominant business model on the web.
anyone who's actually tried Vista and Office 2k7 it is clear that there are massive improvements in security, stability, and most importantly ease of use
I, personally, believe that menus improve ease of use on a windowing application. Many menus appear to be either removed or cleverly hidden in Vista, IE7, and Office 2k7.
So what object-orienting features exactly are you looking for that JavaScript doesn't provide?
Proper overriding of members such that the base class implementation is still available (e.g. super.mymethod()).
The one thing I could see you complaining about is data hiding and private variables - okay, those are a little trickier and involve setting an object's functions that use these private variables in the constructor at runtime.
Any well defined task can be programmed in any general purpose programing language. So whether or not something is possible is not a good measure of a programming language. By that criteria, all general purpose programming languages are identical. Rather, how easy it is to do something is a better measure of a programming language. Yes, it is possible to fake all kinds of object oriented features in java script. Both features mentioned here can be faked but not easily.
Any dynamically interpreted language already uses a hash of some sort for runtime resolution of values in symbol table. Is this somehow less valid because it isn't precomputed?
I don't believe that my criticisms of java script here are in some kind of static versus dynamic vein. I'm a big fan of python and ruby but I also appreciate Java, C++, and even C# (no flames, please). There are certainly differences between static and dynamic OOP and it does take some getting used to; however, that is not what I am complaining about in java script.
The fact that functions are objects is cool but I have many complaints about JavaScript. The implementation of object orientation as a hash table with a dot notation is a far cry from object orientation.
I have never used a java script environment outside of a web browser so I pretty much associate the two as the same. The fact that the this keyword has very different semantics depending on how the member function was called is a major stumbling block for me. Yes, prototype binding saves the day but it reflects poorly on the programming language to have to depend on a particular library to fix something as basic as the this keyword.
Also, you can do all kinds of things with an HTML DOM node in java script that is bad and should be illegal but you never get an error or exception. The script just quietly stops running. That kind of behavior is not my idea of a good programming language.
Actually, it's more accurate to say a relational database is like an excel spreadsheet and "business intelligence" (which really means OLAP, on-line analytical processing) software is like pivot tables.
The term OLAP is not the most technically accurate. Basically, OnLine Analytical Processing is a method that accountants can use to explore ways to better maximize profits or minimize costs within a corporation. Arbor Software realized that the multi-dimensional database technology being researched in various universities at the time would be an effective tool for OLAP.
In a relational database, there are many tables but they are all two dimensional. In a multi-dimensional database, there is only one table but it can have an arbitrary number of dimensions. This is normally referred to as a cube. Typically, cubes will have about twenty dimensions. The dimensions of a cube are organized into hierarchies of arbitrary data types but the facts of the cube are always decimal numbers. In order to reference one of these facts, you have to specify a value for each dimension. Specifying one less dimension gives you a row. Specifying two less dimensions gives you a plane, etc.
The facts are what you are trying to minimize or maximize (usually in terms of money). You pick dimensions that you believe play a determining role in your goals. You establish hierarchies that you believe to be meaningful in your search. Now that you have the structure of the cube in place, you load it with operational data which typically comes from a relational database.
The typical GUI for querying an OLAP database is MS-Excel. This is because accountants are used to Excel and think in terms of spreadsheets. Every dimension of the cube will be expressed somewhere on the spreadsheet. Both rows and columns of the report will be specified by two dimensional tables. Double clicking a value in this area either drills down into more detail in the relevant hierarchy or drills up thus aggregating the data (which is also displayed in a two dimensional table on the spreadsheet). This is called slicing and dicing. The accountant can also move a dimension from the row area to the column area and vice versa. This is called pivoting. Slice and dice and pivot are the two operations that accountants use to navigate through the data, to analyze it and to come up with operational recommendations.
This article comes from CIO website so I think that it if fair to say that they are most interested in applications for the enterprise. Enterprise applications don't bundle the database. They may require a certain database vendor product/version or a small set of database vendors but they don't bundle the database with the application. This is true whether or not you use SQL Server, DB2, Oracle, MySQL, or PostgreSQL.
IANAL, but IMHO there is no legal restriction to selling a commercial, closed source application that requires MySQL as long as you don't include the MySQL application with it. This isn't a problem for enterprise applications because businesses that need such applications already have sufficient IT experience to run the vendor specific database that they are going to accept. If a company doesn't have sufficient IT experience to do this then they are going to have to go the SaaS route. Their are not going to be able to manage the application even if it did come bundled with a vendor specific database product.
Actually, my take after RTFA was that this guy was saying something along the lines of "how can you trust a proprietary solutions vendor with an open source solution?" Isn't it tempting for them to sabotage the open source solution in an attempt to poison public opinion against it? A bad experience with open source would redirect people back to the proprietary solution which the vendor would perceive as better for their bottom line.
I don't think he's warning his readers away from open source. I think what he is saying is "if you must do open source, use a vendor who is truly committed to it." Shouldn't you do that with any technology?
I don't know why he makes baiting statements about open source being a religion, etc. That seems to be a distraction.
I believe that some people are addicted to debt. When faced with two options, they will always pick the one that drives them deeper into debt. What can you do about it? Start a twelve step program, I suppose.
Right, it's not so much that Web 2.0 itself is distracting web companies from the basics of good design as it is the rush to go Web 2.0 that is the source of the distraction. At least, that's what I got out of RTFA.
This is already happening but not by google.
Try PDC which, IMHO, is more useful than TechEd for application developers using MSFT technology. It's going to be held early October this year in LA.
Thanks for the links. IMHO, only the last one is coherent. To abuse on old joke around here, in Soviet Russia, frameworks call you.
What Spolsky (and everyone here) is complaining about isn't really about frameworks versus libraries but more about heavy weight versus light weight. Frameworks can get heavy because they tend to combine lots of functionality in a way that introduces a lot of dependencies, thus increasing coupling (which, in software engineering, is a bad thing). That's where the feeling of having to deal with a lot of stuff that you don't care about comes in. A lightweight framework tends to chunk all this complex functionality into a set of relevant services then uses Dependency Injection as the plumbing to connect the services together. A really great book on this topic is Better, Faster, Lighter Java.
I did not ask why the trembling. These were not top level people in the organization. If I had to guess, I would say that MSFT did not get where they are by underestimating the competition.
I was in a developer conference last year. I was a speaker so I got to hang out in the speaker's lounge. Many of the other speakers were MSFT evangelists. They were joking it up quite a bit with typical geek bravado and camaraderie until the subject of mono was brought up. After that, it was pale faces, trembling, and hushed whispers.
I used to live in Oakland, CA where a police helicopter would fly over my neighborhood almost nightly. Most of the time, they would concentrate their spotlight search on a local school.
From a civil rights perspective, how is this any different from police car units patrolling your neighborhood?
Here's another great prank. Take a battery driven smoke detector and hide it in the victim's house. The battery will drain and, over time, become low in charge. Smoke detectors with a low battery charge emit this short duration chirp about twice a minute. The chirp is too brief for your ears to locate it. A couple or months of that chirp will drive anyone mad. It will take hours of focused time to locate it.
Attendance at CBT focused colleges is trending up.
But seriously, what is the trade off in face time versus online community? With online, you get more protection from biological/chemical/random suicide killer attacks without surrendering civil rights since there is no single high value target. With face time, you get more presence because the amount of information that current collaboration tools provide does not even begin to match the depth and bandwidth of face time (i.e. face time 5 senses and a tighter feedback loop versus online 2 senses).
Actually, IBM does target me. I develop server side applications. I haven't used their WebSphere application server in years. What I remember about it is great reliability, great performance, and a bit of a nightmare to administer. Things are most probably different now. I admit that I have not kept up to date on WebSphere. What I remember about it was that it had a funky directory structure. At the time, I was in a J2EE portal infrastructure company whose products had to run on all the popular application containers. If code was going to have a container dependent issue, it was always going to be with WebSphere.
My feelings about DB2 are similar; great performance, great reliability, not developer friendly. Of all the modern, enterprise worthy DBMSs out there, only DB2 doesn't support automatic generation of artificial keys. MS SQL Server has the identity keyword. MySql has the auto_increment keyword. Oracle has the sequence object. Postgresql has the serial type. What does DB2 have? Nothing. Nada. According to DB2 gurus, artificial keys are bad and natural keys are good. So, the user always has to type in the primary key to retrieve a record. Ha, ha, imagine having to type in the ISBN if you wanted to look up a book on Amazon.
I just got this from IBM's about page.
At IBM, we strive to lead in the invention, development and manufacture of the industry's most advanced information technologies, including computer systems, software, storage systems and microelectronics.Perhaps they are neither a software nor hardware company. Perhaps they are a solutions company.
In the world of the IBM 360 mainframe, only the JES (Job Entry Subsystem) was allowed to do any file maintenance. So, in order to copy or move a file, you had to invoke a program. The program wouldn't and couldn't copy the file. You invoked the program using JCL (Job Control Language) and in that job step that invoked the program, you would specify the disposition of the file(s). That is how you could copy or move a file, in the disposition part of the job step.
But what if that is all you needed to do? Each job step in JCL had to launch some program. What program should you invoke if all you wanted to do was copy the file? The program itself should do as little as possible since you weren't interested in what the program did. That is why IBM provided application IEFBR14. That program had one assembler instruction in it. Namely, BR 14 or branch on register 14. Register 14 held the address in memory of the part of the O.S. that a program needed to return control too when it was done.
Did it work? Sure, but why should I have to execute a program that does nothing more than return control to the O.S. when all I wanted to do was copy a file? It isn't logical. It doesn't make any sense. To put it in modern terms, what would you think about a spreadsheet application that didn't have a save menu? In order to save, you just had to click on any menu? Sounds insane to me.
IBM is a great hardware company. It has never been known for great software. Ask anybody who has had to use JCL. The inventors of IEFBR14 could never be known as a great software company.
I will admit that Eclipse is an excellent application but does anyone here remember Visual Age for Java? That app was seriously FUBAR and it would clobber ODBC on the machine when you uninstalled it which you invariably would since that is how bad Visual Age for Java was.
I'd like to know the story behind those two products. How could the same company produce two products with such disparate quality? Is the open source development model so superior that even a company like IBM can learn to make great software? Is it possible for a mega corp, like IBM, to be able to turn itself around and learn from its failures to start producing such great success? I haven't a clue.
Have you played GNU Go recently? It used to be a joke. Now, it is great to train against. It is possible to beat it by learning its quirks but what would be the point of that? For me, AI in strategic board games is only useful for training and preparation against human players. If you play it like you would in a normal game, then you are up against a supreme tactician and a pretty reasonable strategist. If you haven't played it recently, then I recommend you try it again.
IANAL so take this with a grain of salt. IMHO, VS.NET does not infringe on the first independent claim of the Morfik patent. It is my understanding of U.S. patent law that all independent claims of a patent must be infringed upon in order for it to be a patent violation.
The MSFT technology that the poster is referring to used to be marketed as Atlas but no longer. It is not in violation of this patent because it does not compile server side code into client side java script. Instead, it provides a lot of web controls that use AJAX instead of the traditional ASP.NET form post to interact with the server.
It has nothing to do with software's affect on hardware. This kind of decision is purely one of support training. Their support people are not trained on Linux and HP isn't interested in spending the money necessary to train their support people on Linux.
This shouldn't be a Linux issue at all and HP is handling it all wrong. I remember having a problem with a laptop back in the days of Windows 3.1. I had installed Windows 95 on it and, a few months later, it stopped working. I called support and explained the situation. They said send it in, however, the first thing they were going to do is reset the hard drive to the ghost image that they had for that model which included Windows 3.1
HP should do something similar. It doesn't matter what you install on the hardware and make sure you backup everything that you are interested in keeping before sending it in. What you get back is the machine reset to the state that you bought it in. I think that is fair.
Not necessarily so. I don't bother mentioning the source but I have incorporated lots of technologies that I've heard about on /. into our products and/or processes. Perhaps 99% of the content here is sophomoric but the remaining 1% is pure gold and worth every minute of sifting through the same old tired jokes repeated endlessly.
I don't think that everyone would agree with that. I don't believe that the semantic web is about data aggregation as much as it is about context sensitive search.
If you were correct, then the semantic web would not get adoption until the data aggregation function could honor the syndicator's financial need to display advertising. That would be very tricky. The syndicator would no longer be able to make any promises to the advertiser regarding placement. That would have a chilling affect on the most predominant business model on the web.
I, personally, believe that menus improve ease of use on a windowing application. Many menus appear to be either removed or cleverly hidden in Vista, IE7, and Office 2k7.
Proper overriding of members such that the base class implementation is still available (e.g. super.mymethod()).
The one thing I could see you complaining about is data hiding and private variables - okay, those are a little trickier and involve setting an object's functions that use these private variables in the constructor at runtime.Any well defined task can be programmed in any general purpose programing language. So whether or not something is possible is not a good measure of a programming language. By that criteria, all general purpose programming languages are identical. Rather, how easy it is to do something is a better measure of a programming language. Yes, it is possible to fake all kinds of object oriented features in java script. Both features mentioned here can be faked but not easily.
Any dynamically interpreted language already uses a hash of some sort for runtime resolution of values in symbol table. Is this somehow less valid because it isn't precomputed?I don't believe that my criticisms of java script here are in some kind of static versus dynamic vein. I'm a big fan of python and ruby but I also appreciate Java, C++, and even C# (no flames, please). There are certainly differences between static and dynamic OOP and it does take some getting used to; however, that is not what I am complaining about in java script.
The fact that functions are objects is cool but I have many complaints about JavaScript. The implementation of object orientation as a hash table with a dot notation is a far cry from object orientation.
I have never used a java script environment outside of a web browser so I pretty much associate the two as the same. The fact that the this keyword has very different semantics depending on how the member function was called is a major stumbling block for me. Yes, prototype binding saves the day but it reflects poorly on the programming language to have to depend on a particular library to fix something as basic as the this keyword.
Also, you can do all kinds of things with an HTML DOM node in java script that is bad and should be illegal but you never get an error or exception. The script just quietly stops running. That kind of behavior is not my idea of a good programming language.
Arbor Software
Actually, it's more accurate to say a relational database is like an excel spreadsheet and "business intelligence" (which really means OLAP, on-line analytical processing) software is like pivot tables.The term OLAP is not the most technically accurate. Basically, OnLine Analytical Processing is a method that accountants can use to explore ways to better maximize profits or minimize costs within a corporation. Arbor Software realized that the multi-dimensional database technology being researched in various universities at the time would be an effective tool for OLAP.
In a relational database, there are many tables but they are all two dimensional. In a multi-dimensional database, there is only one table but it can have an arbitrary number of dimensions. This is normally referred to as a cube. Typically, cubes will have about twenty dimensions. The dimensions of a cube are organized into hierarchies of arbitrary data types but the facts of the cube are always decimal numbers. In order to reference one of these facts, you have to specify a value for each dimension. Specifying one less dimension gives you a row. Specifying two less dimensions gives you a plane, etc.
The facts are what you are trying to minimize or maximize (usually in terms of money). You pick dimensions that you believe play a determining role in your goals. You establish hierarchies that you believe to be meaningful in your search. Now that you have the structure of the cube in place, you load it with operational data which typically comes from a relational database.
The typical GUI for querying an OLAP database is MS-Excel. This is because accountants are used to Excel and think in terms of spreadsheets. Every dimension of the cube will be expressed somewhere on the spreadsheet. Both rows and columns of the report will be specified by two dimensional tables. Double clicking a value in this area either drills down into more detail in the relevant hierarchy or drills up thus aggregating the data (which is also displayed in a two dimensional table on the spreadsheet). This is called slicing and dicing. The accountant can also move a dimension from the row area to the column area and vice versa. This is called pivoting. Slice and dice and pivot are the two operations that accountants use to navigate through the data, to analyze it and to come up with operational recommendations.