I've just found that those in the "higher professions" (CS, medicine, psychology, law, etc.) seem to have
* an elevated view of themselves and their opinion (not necessarily bad, if it weren't for the rest of the list)
* the belief that their profession was more important than any other
* the belief that their role should be authoritative instead of advisory (actually, psychologists don't do this, but the rest do)
* the belief that those they serve have no ability to think for themselves
* the belief that most traditions in life are bad because they weren't the ones who came up with them
"the sad thing is that Homeland went to MS and has been with it since its inception. By doing so, they proved that "Security is job 1" is not true."
Kind of. It actually proved that it is difficult to function as a government. You see, as a government, you CANNOT just have biased opinions, even if those biases are based in experience. It has to run on fact, or at least what qualifies as fact.
The "fact" is that Windows has much better government certification than Linux. We know that government certifications mean jack squat, but a government person, even if they know that, can't really act on it for procurement purposes. There are other factors, such as price and service.
Without these controls, it is pretty easy to get some people in key positions and simply control government with a mafia outfit. These controls prevent that, but they mean that government cannot make use of the best asset when making decisions - people.
Now, I do think that Microsoft should have been phased out when declared a monopoly maintained by illegal tactics. But other than that, government does not have good decision-making capability, because it has no competition.
Which is why conservatives want limitted government.
The problem is that OEMs are not free to change the browser. If you are a Microsoft OEM, you CANNOT replace IE at all. This is the root of the problem. Computers are bought as a package deal from OEMs, and Microsoft has prevented OEMs from including competitive software in the default installs.
I think they've decided to do it for 7.5 for sure. They've had the infrastructure for it ever since they added the write-ahead logs, but just have never implemented all of the details.
You're right, but they promised to release _all_ of it when they had a certain userbase. Unfortunately, though, they haven't told anyone what their userbase actually is.
and taking names. In addition to Fujitsu's additions, they are also doing point-in-time recovery. They have multiple replication solutions. It's an absolutely wonderful database to develop for.
It's got several really cool features, such as the ability to create your own index types, the ability to create your own column types, the ability to create rules for updating views, and a lot of other things that make it an absolute joy to work with.
The only thing I don't like about it is that it needs the ability to read bytea's as if they were BLOBs. Then life would be perfect!
From Fujitsu's pile, tablespaces is the most interesting feature I see - and that's actually pretty cool. That's one of the things that really allows you to realize the logical/physical separation that relational databases promise.
I would say you don't know much about churches then. Most churches, and the people/clergy in them, are very aware of the evil in their own lives. That's one of the reasons many people go to church is to help themselves, in a community of others, get rid of evil in their own lives with the help of God.
Just to clear this up for the non-techies who might not see the humor - while features are easy to copy, and therefore aren't really proof of code-copying, similar bugs that wind up in two different products are often a mark of code-copying because noone is intentionally copying the bugs. The likelihood that the error was made in the same way by two independent coders is unlikely (although it has happened before).
"This is (obviously) not equivalent to using something like java."
I never said it was. However, a lot of the Java stuff is actually more of a hack around problems in the operating system which have nothing to do with the language. Privileges, like those implemented in Java, are more of the role of operating systems than languages.
"In java security is closed (except for bugs in the jvm implementation). In java you can just load a binary from the internet and execute it, without fearing for security violations."
But there is nothing that says this needs to be on the language level on not on the operating system level.
You know, what's interesting is that Codd (the one who wrote the original paper) started out hating NULLs, but I believe now he believes in their practical value.
I think it's saying is that SQL is a failure compared to what we could have gotten, which is somewhat true. However, I think they're just complaining that tomorrow is not today. However, on the other hand, they are reminding us that we need to be asking our vendors for the tools of tomorrow or they are just going to keep sending us today's tools repackaged over and over again.
You can do some really neat tricks if every row is identified by a globally-unique integer (i.e. - not just for the table, but the whole database). For example, I can create a notes table that looks like this:
and have the_row be a foreign key to the whole rest of the database (unfortunately, I'm unaware of any DB that has direct support for this). Then, I can use this table to attach notes to ANY record in the whole database. You can use such generics very easily if you have a common format for a primary key.
In addition, only very rarely do I find a primary key that I know for absolute certain will be unique.
From what I've read from these guys in the past, it's not quite what you're making it out to be. They believe that NULL's should be removed, but then replaced with the concept of "domains" (domain being a possible range of valid values). For example, if I have a field "salary", normally in SQL you would give it a number or null. However, does NULL mean that they aren't employed? That we don't know what their salary is? What? So, instead, what you need is to set the column up to be, instead of just a regular integer, a domain consisting of (a) all the integers, (b) the value NO_SALARY, and (c) the value UNKNOWN_SALARY. This way, you don't have the vague concept of "null", but specific concepts which are flexible, since you get to define the domain and include any "special" values that you need to have a proper data model.
They simply believe that "nulls" are a hack around the real need of supporting full value domains.
They can often be converted to even less in Perl:) I learn new time-saving Perl features almost every day. Recently learned the wonders of the flip-flop operator - very cool.
No, the parent is right, we won't have good security until the _users_ require it.
The fact that you'd have to spend the time anyway doesn't matter when trying to get a product to market. You can lose your whole business fixing security holes while your competitors are shipping new features.
The keys I've found are:
1) start with a good architecture
2) use a good language
3) don't make it overly complicated
If you do preventative maintenance, you can get most of the mileage without endangering the customers.
Actually, you can continue to use C/C++ and just use a garbage collector with them. I don't know why more people don't do this. You don't even need to change your code, as Boehm's garbage collector translates malloc() to it's own allocation routine, and free() does nothing.
In fact, even better, if you have Boehm GC installed anywhere on your system you can do this for already compiled programs using LD_PRELOAD.
"So, if expenses don't reflect cash-flow (or what cash-flow should be, if people paid on time), what do they do? (this is rhetorical/sarcastic, I know that expenses are, but have never understood their usefulness. What really matters to me is money in the bank, what's being spent, where it's being spent, and what income is coming in. Expenses just muddy that into oblivion."
Then I hope you never have to manage a company. Managing a company is all about managing non-cash assets and expenses, because they will all affect your cash positions someday. The purpose of accounting is not to find out how much money is in the bank. You can do that just by calling the bank or keeping a check register. The purpose of accounting is to know whether or not your current practices are (a) healthy, (b) profitable, and (c) sustainable. It also helps you understand when you should expect your money, how much money you should be able to expect in the future, how much work you have left to do, what expenses you might have to fill in the future.
For example, if I win a housing contract that's $1 million dollars that I get paid up-front, I have gained NOTHING. What I have done is simply shifted my positions. I have $1 million more in assets, but I also have $1 million worth of liabilities (I still have to build the house - it's not a cash liability, it's a service liability). If I make the sale in December and then do the books on a cash basis, then it looks like I made $1 million profit, when in fact I don't even know if I'm profitable yet. I won't know that until the house is finished.
Likewise, if you are paying your employees in stock options, and not estimating the value of those options, you won't know if you're really profitable or not. If you wind up running out of options, you might find that the _real_ compensation package that they expect is 10x what you are paying them now, and that what you thought was a profitable operation was in fact just a drain on your "options" asset. However, since you were only doing books on a cash basis, you didn't see the true costs of doing business, and didn't realize until years later that you were truly unprofitable.
Likewise, if you don't factor in the cost of money into your operations, you might wind up making less than if you just stuck your money into the bank. In fact, the insurance industry is a giant play on the cost of money. Insurance companies actually often lose money on the premiums-vs-payouts, but make money by making loans off of the float.
So yes, there is more to accounting than just cash-flow, and it is vital to determining profitability.
Kind of. It can split, but that also halves the value of the stock, and would likewise halve the perceived value of the stock to employees, meaning that you would need to give them twice as many options to make them equally happy.
Just like you can divide a slice of bread infinitely, but just because you have infinitely-many pieces does not mean you have any more bread.
Sometimes companies increase the number of shares available to purchase, but this does not increase the total number of shares. Usually a company keeps a very large portion of its shares to itself. Only shareholders can vote to sell these (the company can't do it whimsically), and this is often termed "increasing the number of shares available", but it is still limited in nature.
"I own a truck, I could sell it for some value, and be out it's usefulness. But that doesn't make it an expense (aside from operating costs)."
But you do track it as an asset, and if you were to give it away to someone, it would be an expense.
"The option *could* have been sold, but would they have issued that share of stock if not for the options? maybe, maybe not. If not, then why would the option be an expense?"
Because, it is no longer available for producing that amount of money. You cannot grant more options than you have shares of stock - it is a limited resource. Therefore, if you give options away you are depleting a limited resource - thus, an expense.
"Opportunity cost is an interesting philosophical discussion, but has no bearing on the real-world cash-flow."
Cash flow is different from expenses.
"If I decide not to produce a product, and thereby don't profit greatly, I didn't LOSE anyting, nothing was taken away, I just never GAINED anything."
But you would have lost something had you given it away.
You have to ask yourself - is the resource limited? If so, then you have to expense it.
Look at this situation:
Let's say that you have 50 workers. You have 200 shares of stock in the company treasury. Your employees work for options only. You give them one option a year.
Question - is this a limited resource?
Answer - yes.
You would be fooling yourself to report that you had no labor expenses in the years that you paid your employees in options. If you are planning for the future, you need to look at your past numbers. If the options you gave have no intrinsic value, does that mean that when the options are gone the employees will work for free?
Expenses are meant to measure what it takes for your company to do X. That way, the company planners can adequately plan how to keep doing X, or, if X is too expensive, how to do Y instead. If you are putting a part of your compensation package as having no expense associated with it, then you are miscalculating how much it really costs you to do business. Therefore, when the options dry up (either you run out or your stock has a very long down turn), you need to know the dollar amount that it costs to keep your labor pool running. If you weren't expensing options, you have no idea what that cost is.
I think you are confusing _expenses_ with _cash outflows_ - they are not necessarily the same thing.
You're missing the point. The company itself could have sold the option (not the stock) on the open market instead of giving it to you. Options are a saleable commodity. The fact that they gave it to you instead of selling it means that they are out that amount of money (the option price, not the stock price).
I've just found that those in the "higher professions" (CS, medicine, psychology, law, etc.) seem to have
* an elevated view of themselves and their opinion (not necessarily bad, if it weren't for the rest of the list)
* the belief that their profession was more important than any other
* the belief that their role should be authoritative instead of advisory (actually, psychologists don't do this, but the rest do)
* the belief that those they serve have no ability to think for themselves
* the belief that most traditions in life are bad because they weren't the ones who came up with them
"so it is hard to say what the difference between a real mode of conscious and a hallucinated one would be."
One that we are biologically predisposed to, perhaps?
"You know it through the sum of your experiences."
That is not that same as it being equivalent to the sum of your experiences.
I'm with you for the most part until you called doctors and psychologists "trusted" professionals. Clearly you do not know many of them...
"the sad thing is that Homeland went to MS and has been with it since its inception. By doing so, they proved that "Security is job 1" is not true."
Kind of. It actually proved that it is difficult to function as a government. You see, as a government, you CANNOT just have biased opinions, even if those biases are based in experience. It has to run on fact, or at least what qualifies as fact.
The "fact" is that Windows has much better government certification than Linux. We know that government certifications mean jack squat, but a government person, even if they know that, can't really act on it for procurement purposes. There are other factors, such as price and service.
Without these controls, it is pretty easy to get some people in key positions and simply control government with a mafia outfit. These controls prevent that, but they mean that government cannot make use of the best asset when making decisions - people.
Now, I do think that Microsoft should have been phased out when declared a monopoly maintained by illegal tactics. But other than that, government does not have good decision-making capability, because it has no competition.
Which is why conservatives want limitted government.
The problem is that OEMs are not free to change the browser. If you are a Microsoft OEM, you CANNOT replace IE at all. This is the root of the problem. Computers are bought as a package deal from OEMs, and Microsoft has prevented OEMs from including competitive software in the default installs.
I think they've decided to do it for 7.5 for sure. They've had the infrastructure for it ever since they added the write-ahead logs, but just have never implemented all of the details.
You're right, but they promised to release _all_ of it when they had a certain userbase. Unfortunately, though, they haven't told anyone what their userbase actually is.
For desktop users on Linux, there are a lot of things that, while they don't freeze the OS, they might freeze X.
and taking names. In addition to Fujitsu's additions, they are also doing point-in-time recovery. They have multiple replication solutions. It's an absolutely wonderful database to develop for.
It's got several really cool features, such as the ability to create your own index types, the ability to create your own column types, the ability to create rules for updating views, and a lot of other things that make it an absolute joy to work with.
The only thing I don't like about it is that it needs the ability to read bytea's as if they were BLOBs. Then life would be perfect!
From Fujitsu's pile, tablespaces is the most interesting feature I see - and that's actually pretty cool. That's one of the things that really allows you to realize the logical/physical separation that relational databases promise.
I would say you don't know much about churches then. Most churches, and the people/clergy in them, are very aware of the evil in their own lives. That's one of the reasons many people go to church is to help themselves, in a community of others, get rid of evil in their own lives with the help of God.
Just to clear this up for the non-techies who might not see the humor - while features are easy to copy, and therefore aren't really proof of code-copying, similar bugs that wind up in two different products are often a mark of code-copying because noone is intentionally copying the bugs. The likelihood that the error was made in the same way by two independent coders is unlikely (although it has happened before).
"This is (obviously) not equivalent to using something like java."
I never said it was. However, a lot of the Java stuff is actually more of a hack around problems in the operating system which have nothing to do with the language. Privileges, like those implemented in Java, are more of the role of operating systems than languages.
"In java security is closed (except for bugs in the jvm implementation). In java you can just load a binary from the internet and execute it, without fearing for security violations."
But there is nothing that says this needs to be on the language level on not on the operating system level.
You know, what's interesting is that Codd (the one who wrote the original paper) started out hating NULLs, but I believe now he believes in their practical value.
I think it's saying is that SQL is a failure compared to what we could have gotten, which is somewhat true. However, I think they're just complaining that tomorrow is not today. However, on the other hand, they are reminding us that we need to be asking our vendors for the tools of tomorrow or they are just going to keep sending us today's tools repackaged over and over again.
You can do some really neat tricks if every row is identified by a globally-unique integer (i.e. - not just for the table, but the whole database). For example, I can create a notes table that looks like this:
create table notes(rownum bigint primary key default nextval('rownums'), the_row bigint, notes text);
and have the_row be a foreign key to the whole rest of the database (unfortunately, I'm unaware of any DB that has direct support for this). Then, I can use this table to attach notes to ANY record in the whole database. You can use such generics very easily if you have a common format for a primary key.
In addition, only very rarely do I find a primary key that I know for absolute certain will be unique.
From what I've read from these guys in the past, it's not quite what you're making it out to be. They believe that NULL's should be removed, but then replaced with the concept of "domains" (domain being a possible range of valid values). For example, if I have a field "salary", normally in SQL you would give it a number or null. However, does NULL mean that they aren't employed? That we don't know what their salary is? What? So, instead, what you need is to set the column up to be, instead of just a regular integer, a domain consisting of (a) all the integers, (b) the value NO_SALARY, and (c) the value UNKNOWN_SALARY. This way, you don't have the vague concept of "null", but specific concepts which are flexible, since you get to define the domain and include any "special" values that you need to have a proper data model.
They simply believe that "nulls" are a hack around the real need of supporting full value domains.
They can often be converted to even less in Perl :) I learn new time-saving Perl features almost every day. Recently learned the wonders of the flip-flop operator - very cool.
No, the parent is right, we won't have good security until the _users_ require it.
The fact that you'd have to spend the time anyway doesn't matter when trying to get a product to market. You can lose your whole business fixing security holes while your competitors are shipping new features.
The keys I've found are:
1) start with a good architecture
2) use a good language
3) don't make it overly complicated
If you do preventative maintenance, you can get most of the mileage without endangering the customers.
Actually, you can continue to use C/C++ and just use a garbage collector with them. I don't know why more people don't do this. You don't even need to change your code, as Boehm's garbage collector translates malloc() to it's own allocation routine, and free() does nothing.
In fact, even better, if you have Boehm GC installed anywhere on your system you can do this for already compiled programs using LD_PRELOAD.
Just do:
export LD_PRELOAD=/path/to/libgc.so
/path/to/program
and I'm automagically using a garbage-collected runtime for the program, even if it was compiled to use the standard malloc()/free() calls.
"So, if expenses don't reflect cash-flow (or what cash-flow should be, if people paid on time), what do they do? (this is rhetorical/sarcastic, I know that expenses are, but have never understood their usefulness. What really matters to me is money in the bank, what's being spent, where it's being spent, and what income is coming in. Expenses just muddy that into oblivion."
Then I hope you never have to manage a company. Managing a company is all about managing non-cash assets and expenses, because they will all affect your cash positions someday. The purpose of accounting is not to find out how much money is in the bank. You can do that just by calling the bank or keeping a check register. The purpose of accounting is to know whether or not your current practices are (a) healthy, (b) profitable, and (c) sustainable. It also helps you understand when you should expect your money, how much money you should be able to expect in the future, how much work you have left to do, what expenses you might have to fill in the future.
For example, if I win a housing contract that's $1 million dollars that I get paid up-front, I have gained NOTHING. What I have done is simply shifted my positions. I have $1 million more in assets, but I also have $1 million worth of liabilities (I still have to build the house - it's not a cash liability, it's a service liability). If I make the sale in December and then do the books on a cash basis, then it looks like I made $1 million profit, when in fact I don't even know if I'm profitable yet. I won't know that until the house is finished.
Likewise, if you are paying your employees in stock options, and not estimating the value of those options, you won't know if you're really profitable or not. If you wind up running out of options, you might find that the _real_ compensation package that they expect is 10x what you are paying them now, and that what you thought was a profitable operation was in fact just a drain on your "options" asset. However, since you were only doing books on a cash basis, you didn't see the true costs of doing business, and didn't realize until years later that you were truly unprofitable.
Likewise, if you don't factor in the cost of money into your operations, you might wind up making less than if you just stuck your money into the bank. In fact, the insurance industry is a giant play on the cost of money. Insurance companies actually often lose money on the premiums-vs-payouts, but make money by making loans off of the float.
So yes, there is more to accounting than just cash-flow, and it is vital to determining profitability.
Kind of. It can split, but that also halves the value of the stock, and would likewise halve the perceived value of the stock to employees, meaning that you would need to give them twice as many options to make them equally happy.
Just like you can divide a slice of bread infinitely, but just because you have infinitely-many pieces does not mean you have any more bread.
Sometimes companies increase the number of shares available to purchase, but this does not increase the total number of shares. Usually a company keeps a very large portion of its shares to itself. Only shareholders can vote to sell these (the company can't do it whimsically), and this is often termed "increasing the number of shares available", but it is still limited in nature.
"I own a truck, I could sell it for some value, and be out it's usefulness. But that doesn't make it an expense (aside from operating costs)."
But you do track it as an asset, and if you were to give it away to someone, it would be an expense.
"The option *could* have been sold, but would they have issued that share of stock if not for the options? maybe, maybe not. If not, then why would the option be an expense?"
Because, it is no longer available for producing that amount of money. You cannot grant more options than you have shares of stock - it is a limited resource. Therefore, if you give options away you are depleting a limited resource - thus, an expense.
"Opportunity cost is an interesting philosophical discussion, but has no bearing on the real-world cash-flow."
Cash flow is different from expenses.
"If I decide not to produce a product, and thereby don't profit greatly, I didn't LOSE anyting, nothing was taken away, I just never GAINED anything."
But you would have lost something had you given it away.
You have to ask yourself - is the resource limited? If so, then you have to expense it.
Look at this situation:
Let's say that you have 50 workers. You have 200 shares of stock in the company treasury. Your employees work for options only. You give them one option a year.
Question - is this a limited resource?
Answer - yes.
You would be fooling yourself to report that you had no labor expenses in the years that you paid your employees in options. If you are planning for the future, you need to look at your past numbers. If the options you gave have no intrinsic value, does that mean that when the options are gone the employees will work for free?
Expenses are meant to measure what it takes for your company to do X. That way, the company planners can adequately plan how to keep doing X, or, if X is too expensive, how to do Y instead. If you are putting a part of your compensation package as having no expense associated with it, then you are miscalculating how much it really costs you to do business. Therefore, when the options dry up (either you run out or your stock has a very long down turn), you need to know the dollar amount that it costs to keep your labor pool running. If you weren't expensing options, you have no idea what that cost is.
I think you are confusing _expenses_ with _cash outflows_ - they are not necessarily the same thing.
You're missing the point. The company itself could have sold the option (not the stock) on the open market instead of giving it to you. Options are a saleable commodity. The fact that they gave it to you instead of selling it means that they are out that amount of money (the option price, not the stock price).