Most Mac users are civilians, and don't run an unprivileged logon; they're usually the only owner on their machine. This is often the case with Linux newbies, too.
That is incorrect.
By default, root is disabled in Mac OS X. You have to have technical know-how to even figure out how to enable it. The default account users login with is an unprivileged account except that it is allowed to "sudo". Before any root-like action takes place, the user must enter their password and approve the action.
Sometimes similar problems get solved in similar ways. We'd have EDI then B2B. Yes, they're difference in implementation and philosophical ways (heh) but do largely the same thing.
You just made the argument against yourself. EDI and and XML/soap do the same thing but have vastly different value propositions. How is a marketing deparment supposed to explain the value of XML/soap over EDI to non-technical audiences?
The basic problem is that marketing is charged with explaining a technology to non-technologists. Often these technologies are quite difficult to explain. For example, how do you explain an identity management system to a CFO?
Now, the knee-jerk slashdot reaction is to say that the CFO has no business making technology decisions. It is his business, however, to determine what the company is spending money on. Is this identity management system some IT toy? Or is it something that will make the company more profitable?
You need to be able to explain technology to non-technologists in order for good technologies to sell, especially when those technologies are expensive.
Buzzwords evolve when someone develops a way of expressing something that actually means something. Then others latch on to those words and dilute the strength of their meaning. Over time, people forget what the original meaning even was.
Paradigm is a real world with a real meaning. In terms of describing technology, however, it has lost all semblance of meaning because it is now used to mean anything. Once upon a time, however...
An encyclopaedia is a presentation of opinions of editors who sometimes claim to be authorities.
No, it is a presentation of things the editors believe to be facts. No rationale or argumentation is provided. You are left to believe the facts based solely on your belief in the authority of the encyclopedia.
The only encyclopaedia that tries to present a Neutral Point Of View is Wikipedia.
That's a load of crap. All of them try to. All of them, including Wikipedia, suffer necessarily from some form of bias. Nevertheless, they all strive for a NPOV.
In Wikipedia's case, this means presenting all dominant opinions; or, as you would word it, presenting the argument.
No, the only "arguments" in Wikipedia are on the discussion pages. The actual contents of the encyclopedia present no arguments. Furthermore, the number of pages that actually have discussions is small.
You are misapplying the "appeal to authority" fallacy.
This fallacy occurs when, in the course of debate, you assert something as being true and hold out statements by authorities as support for that point. For example, "The Earth is flat because the Church says it is."
An encyclopedia is not a forum for debate. It is a presentation of facts using the neutral point of view (POV). In the case of a neutral POV presentation of facts, authority matters. All you have in such a forum is the trust in the due-diligence of the authority.
Presenting an argument is not part of the Wikipedia approach. You therefore need to evaluate those facts purely on the basis of authority.
Internet gaming was born out of Open Source development before there was a such thing as the FSF or Open Source (TM).
Muds (wikipedia) are the precursers to modern Internet gaming, and most of them were built under collaborative, open source licenses.
I think the Open Source is the ideal model under which to build a massive, scalable multi-player system that requires collaboration for a variety of reasons. You just need a solid architecture at the base to enable it.
Later, if there is a recount a concerned voter can verify whether or not his vote is registered and counted by the system by running his receipt through the reader at a convenience store or type in the code at a website.
You cannot do this or any form of voting that provides the voter with something to take home. That thing to take home could be used to coerce voting (by overbearing spouses, employers, etc.). Whatever proof is printed out has to say at the voting center.
Honestly, this bit of code was fairly obvious to me. Though the programmer did make one mistake. The collection method should have been named toArrayList() or something like that.
Methods in general should reflect some action. No language on earth, however, forces people to name their methods properly.
I did not say Python was clearly better than Java. Python in general produces more bug-free code. There is more to a language than producing bug-free code.
In my projects, I tend to use Python or Java depending on the problem at hand.
Perl is not an enterprise programming language. It is a system administrators tool gone mad.
The number one reason: Perl is a maintenance nightmare. This flaw is a result of its beauty, namely a given solution to a problem can be expressed in hundreds of different ways using syntactic elements from a variety of languages. Thus, if you bring in someone who is a Perl novice, they may have no idea what it is going on in Perl code written by someone else.
With Java on the other hand, any novice can come in and understand what is going on inside the code.
I know I know PHP and Java are not actually in the same category.
No, JSP and PHP are in the same category. PHP is great... if you like security holes and unmaintainable code.
However, the problem with Java is its damn slow,
That's an absolute load of shit. I wrote a content management system in Java and JSP (Simplicis) and it performs spectacularly.
its not nearly as cross platform compatible as it would have you believe,
Another line of nonsense. Two areas have minor cross-platform issues: complex file management and complex UI programming. Of all the applications I have written in Java (and I have been building Java apps since 1996), I have never encountered a cross-platform issue that took more than a few moments to address. And I have deployed my apps on systems as diverse as Mac OS X, Mac OS 9, Windows, AS/400, Linux, Solaris, AIX, and HP/UX.
its libs are a f***ing mess to say the least.
Some libraries are a mess; others are brilliant. That's about what I would expect from a language this mature. You end up with API's like JAAS that are a steaming pile of shit, API's like the date/calendaring API that are brilliant but too complex for common needs, and API's like JDBC that are dead on what an API should be.
Applets (Java in your browser) make up a tiny minority of Java applications. I would be willing to bet less than 1%. Java is mostly used on the server where it is undoubtedly the best language for building applications (as long as you avoid EJBs).
They hate it because to produce bug-free code in it requires far more time and money.
Than what?
I have been programming for quite some time in many different languages. Next to Python, Java produces the most bug free code. In general, if it compiles in Java, you are much closer to bug free code than you are in other compiled languages. Once it has generics, it will be even closer (about 80%-85% of my runtime bugs are ClassCastExceptions from collections).
Good software is not about empowering people to be self-sufficient. Tech courses are.
What exactly do you think the point of software is? You think people buy Microsoft Word to learn how to use a word processor? You think they buy Unix systems so they can recompile the kernel?
No. The point of software is to enable people to do tasks more efficiently. Good software requires no training, no manuals, and no tech support.
If your software is for servers, you can sell pre-installed servers, and skip the cost of making an installer-for-dummies, that you will need to support, and might have its own compatibility requirements. That money can be spent on making better software, or better manager apps, if it's intended for the server market.
In other words, place the burden on the end user. That's absurd.
Small apps can be supported by selling CDs, T-Shirts, like the Mozilla Foundation, web adds, phone support.
Only hard core geeks want software t-shirts. The rest of the world wants software that works without them having to think about it.
If your software is useful enough, your community can help you with the next steps to take.
Only for software aimed at developers. Most software is not, in fact, aimed at developers.
Re:The correct pricing structure for most software
on
Pricing a Software Product
·
· Score: 3, Insightful
This is the fantasy Open Source business model and it doesn't work. Except when the software is hard to use. But then the business model is "give away crappy software and charge people to actually get it working."
If you want to make money on GOOD software... software that actually empowers people to be self-sufficient, you need to charge for the software.
One other note. It takes vastly different mind sets to develop in a product environment than in a consulting environment. Your best product developers are going to be people you would never throw in front of a client.
Let's take an analogy. I have a valuable rare coin worth $1,000. It is taking up space in my house, and I simply found it lying around.
You are a coin collector. Not only do you know it is worth $1,000 on the open market, but you have a particular affinity for it. You would easily pay $2,000 to get your hands on it.
So, if I sell it for $1, are you ripping me off? If I sell it to you for $2,000 (it cost me nothing), am I ripping you off?
You might be tempted to refer to the "market" as the fair price. The market price is nothing more than a value at which you are pretty sure to find a buyer. Higher than that price, you will have to spend time seeking a buyer who places greater than normal value on the thing. Lower than that price and you are basically cheating yourself.
The beauty of capitalism is that it recognizes the basic fact that every person values things uniquely. When we engage in a transaction, we are both more wealthy... even with demand-side pricing. You will never pay more for something than it is worth to you. Anything you pay less means you are wealthier.
Let's take that coin. To you, it is worth $2,000. I sell it to you for $1,500 (above the market value). Before the transaction, you had $1,500 that was worth exactly $1,500 to you. After the transaction, you are down the $1,500. But now you have a coin that is worth $2,000 to you!
As for me, I had a coin that was basically worth nothing to me without knowledge of the market (or worth $1,000 with knowledge of the market). After the transaction, I have $1,500 in cash! BOTH OF US make a profit.
Another flaw in your question is that costs are easy to quantify. In fact, in software development, they are hard to quantify. How much, exactly, does a download of Photoshop from the Adobe web site cost Adobe?
Any company that needs the ability to procure hardware on less than 2 months notice is foolish to use an XServe for their operations.
It is a wonderful machine (lacking only redundant power supplies and the damn hardware RAID card listed in the options). However, Apple cannot meet demand. And while that sounds great for Apple, it sucks ass for companies that depend on their servers.
I don't think Apple could have been bigger nor should it be bigger. As an innovator, Apple is necessarily relegated to a minority market share. And I think that is OK. I put more detailed thoughts on all this in my blog entry on the topic.
Stored procedures solve a problem that predates languages like Java and C#. Once upon a time, you built client server apps using a client built in C, C++, or (god help you) PowerBuilder or VB. Database code either had to go in the user interface or the database. There was no other choice. So, to centralize business logic, stored procedures came about and people began placing the logic there.
In a three-tier or web architecture, stored procedures have no place. Centralize your business logic in business objects on the server. This makes your application independent of any underlying table structure or persistence mechanism. You can get the speed of stored procs by using prepared SQL in your database mapping code. These days, you can use mapping tools like JDO to avoid any database mapping code.
Where stored procs still have a place is inadministrative functionality, such as background batch processing. That's it.
X number of employees getting paid Y (probably minimum wage plus commission) per hour. Each of these employees are getting paid regardless whether they are talking to a pita customer or not . Unless every other employee is busy, there really isn't any difference if the PITA customer is taking up someone's time.
If you are hiring right, they are not sitting around doing nothing. They are helping out valuable customers.
Yeah, it is. Get over it.
That is not the same thing as being a privileged user.
That is incorrect.
By default, root is disabled in Mac OS X. You have to have technical know-how to even figure out how to enable it. The default account users login with is an unprivileged account except that it is allowed to "sudo". Before any root-like action takes place, the user must enter their password and approve the action.
You just made the argument against yourself. EDI and and XML/soap do the same thing but have vastly different value propositions. How is a marketing deparment supposed to explain the value of XML/soap over EDI to non-technical audiences?
The basic problem is that marketing is charged with explaining a technology to non-technologists. Often these technologies are quite difficult to explain. For example, how do you explain an identity management system to a CFO?
Now, the knee-jerk slashdot reaction is to say that the CFO has no business making technology decisions. It is his business, however, to determine what the company is spending money on. Is this identity management system some IT toy? Or is it something that will make the company more profitable?
You need to be able to explain technology to non-technologists in order for good technologies to sell, especially when those technologies are expensive.
Buzzwords evolve when someone develops a way of expressing something that actually means something. Then others latch on to those words and dilute the strength of their meaning. Over time, people forget what the original meaning even was.
Paradigm is a real world with a real meaning. In terms of describing technology, however, it has lost all semblance of meaning because it is now used to mean anything. Once upon a time, however...
No, I don't think presentng ID is that big of a deal (though I understand those that do).
What is a big deal is secret laws and no government responsibility to explain the rationale for their secret laws.
Sorry, but it is.
An encyclopaedia is a presentation of opinions of editors who sometimes claim to be authorities.
No, it is a presentation of things the editors believe to be facts. No rationale or argumentation is provided. You are left to believe the facts based solely on your belief in the authority of the encyclopedia.
The only encyclopaedia that tries to present a Neutral Point Of View is Wikipedia.
That's a load of crap. All of them try to. All of them, including Wikipedia, suffer necessarily from some form of bias. Nevertheless, they all strive for a NPOV.
In Wikipedia's case, this means presenting all dominant opinions; or, as you would word it, presenting the argument.
No, the only "arguments" in Wikipedia are on the discussion pages. The actual contents of the encyclopedia present no arguments. Furthermore, the number of pages that actually have discussions is small.
You are misapplying the "appeal to authority" fallacy.
This fallacy occurs when, in the course of debate, you assert something as being true and hold out statements by authorities as support for that point. For example, "The Earth is flat because the Church says it is."
An encyclopedia is not a forum for debate. It is a presentation of facts using the neutral point of view (POV). In the case of a neutral POV presentation of facts, authority matters. All you have in such a forum is the trust in the due-diligence of the authority.
Presenting an argument is not part of the Wikipedia approach. You therefore need to evaluate those facts purely on the basis of authority.
As far as where Open Source does not work, I cover that in a blog posting on my web site. I don't think these apply to gaming so much.
Muds (wikipedia) are the precursers to modern Internet gaming, and most of them were built under collaborative, open source licenses.
I think the Open Source is the ideal model under which to build a massive, scalable multi-player system that requires collaboration for a variety of reasons. You just need a solid architecture at the base to enable it.
You cannot do this or any form of voting that provides the voter with something to take home. That thing to take home could be used to coerce voting (by overbearing spouses, employers, etc.). Whatever proof is printed out has to say at the voting center.
Honestly, this bit of code was fairly obvious to me. Though the programmer did make one mistake. The collection method should have been named toArrayList() or something like that.
Methods in general should reflect some action. No language on earth, however, forces people to name their methods properly.
I did not say Python was clearly better than Java. Python in general produces more bug-free code. There is more to a language than producing bug-free code.
In my projects, I tend to use Python or Java depending on the problem at hand.
Perl is not an enterprise programming language. It is a system administrators tool gone mad.
The number one reason: Perl is a maintenance nightmare. This flaw is a result of its beauty, namely a given solution to a problem can be expressed in hundreds of different ways using syntactic elements from a variety of languages. Thus, if you bring in someone who is a Perl novice, they may have no idea what it is going on in Perl code written by someone else.
With Java on the other hand, any novice can come in and understand what is going on inside the code.
No, JSP and PHP are in the same category. PHP is great... if you like security holes and unmaintainable code.
However, the problem with Java is its damn slow,
That's an absolute load of shit. I wrote a content management system in Java and JSP (Simplicis) and it performs spectacularly.
its not nearly as cross platform compatible as it would have you believe,
Another line of nonsense. Two areas have minor cross-platform issues: complex file management and complex UI programming. Of all the applications I have written in Java (and I have been building Java apps since 1996), I have never encountered a cross-platform issue that took more than a few moments to address. And I have deployed my apps on systems as diverse as Mac OS X, Mac OS 9, Windows, AS/400, Linux, Solaris, AIX, and HP/UX.
its libs are a f***ing mess to say the least.
Some libraries are a mess; others are brilliant. That's about what I would expect from a language this mature. You end up with API's like JAAS that are a steaming pile of shit, API's like the date/calendaring API that are brilliant but too complex for common needs, and API's like JDBC that are dead on what an API should be.
Applets (Java in your browser) make up a tiny minority of Java applications. I would be willing to bet less than 1%. Java is mostly used on the server where it is undoubtedly the best language for building applications (as long as you avoid EJBs).
Than what?
I have been programming for quite some time in many different languages. Next to Python, Java produces the most bug free code. In general, if it compiles in Java, you are much closer to bug free code than you are in other compiled languages. Once it has generics, it will be even closer (about 80%-85% of my runtime bugs are ClassCastExceptions from collections).
What exactly do you think the point of software is? You think people buy Microsoft Word to learn how to use a word processor? You think they buy Unix systems so they can recompile the kernel?
No. The point of software is to enable people to do tasks more efficiently. Good software requires no training, no manuals, and no tech support.
If your software is for servers, you can sell pre-installed servers, and skip the cost of making an installer-for-dummies, that you will need to support, and might have its own compatibility requirements. That money can be spent on making better software, or better manager apps, if it's intended for the server market.
In other words, place the burden on the end user. That's absurd.
Small apps can be supported by selling CDs, T-Shirts, like the Mozilla Foundation, web adds, phone support.
Only hard core geeks want software t-shirts. The rest of the world wants software that works without them having to think about it.
If your software is useful enough, your community can help you with the next steps to take.
Only for software aimed at developers. Most software is not, in fact, aimed at developers.
This is the fantasy Open Source business model and it doesn't work. Except when the software is hard to use. But then the business model is "give away crappy software and charge people to actually get it working."
If you want to make money on GOOD software... software that actually empowers people to be self-sufficient, you need to charge for the software.
One other note. It takes vastly different mind sets to develop in a product environment than in a consulting environment. Your best product developers are going to be people you would never throw in front of a client.
Your thinking is flawed.
Let's take an analogy. I have a valuable rare coin worth $1,000. It is taking up space in my house, and I simply found it lying around.
You are a coin collector. Not only do you know it is worth $1,000 on the open market, but you have a particular affinity for it. You would easily pay $2,000 to get your hands on it.
So, if I sell it for $1, are you ripping me off? If I sell it to you for $2,000 (it cost me nothing), am I ripping you off?
You might be tempted to refer to the "market" as the fair price. The market price is nothing more than a value at which you are pretty sure to find a buyer. Higher than that price, you will have to spend time seeking a buyer who places greater than normal value on the thing. Lower than that price and you are basically cheating yourself.
The beauty of capitalism is that it recognizes the basic fact that every person values things uniquely. When we engage in a transaction, we are both more wealthy... even with demand-side pricing. You will never pay more for something than it is worth to you. Anything you pay less means you are wealthier.
Let's take that coin. To you, it is worth $2,000. I sell it to you for $1,500 (above the market value). Before the transaction, you had $1,500 that was worth exactly $1,500 to you. After the transaction, you are down the $1,500. But now you have a coin that is worth $2,000 to you!
As for me, I had a coin that was basically worth nothing to me without knowledge of the market (or worth $1,000 with knowledge of the market). After the transaction, I have $1,500 in cash! BOTH OF US make a profit.
Another flaw in your question is that costs are easy to quantify. In fact, in software development, they are hard to quantify. How much, exactly, does a download of Photoshop from the Adobe web site cost Adobe?
I have had no problems with my xserves except the shipping delays. Thankfully, my business does not require quick delivery.
Any company that needs the ability to procure hardware on less than 2 months notice is foolish to use an XServe for their operations.
It is a wonderful machine (lacking only redundant power supplies and the damn hardware RAID card listed in the options). However, Apple cannot meet demand. And while that sounds great for Apple, it sucks ass for companies that depend on their servers.
I don't think Apple could have been bigger nor should it be bigger. As an innovator, Apple is necessarily relegated to a minority market share. And I think that is OK. I put more detailed thoughts on all this in my blog entry on the topic.
Stored procedures solve a problem that predates languages like Java and C#. Once upon a time, you built client server apps using a client built in C, C++, or (god help you) PowerBuilder or VB. Database code either had to go in the user interface or the database. There was no other choice. So, to centralize business logic, stored procedures came about and people began placing the logic there.
In a three-tier or web architecture, stored procedures have no place. Centralize your business logic in business objects on the server. This makes your application independent of any underlying table structure or persistence mechanism. You can get the speed of stored procs by using prepared SQL in your database mapping code. These days, you can use mapping tools like JDO to avoid any database mapping code.
Where stored procs still have a place is inadministrative functionality, such as background batch processing. That's it.
If you are hiring right, they are not sitting around doing nothing. They are helping out valuable customers.
A PITA customer does cost real money.