Of course both are different. They are meant for different things!
Fundamentally, DBMS and programming languages are both meant to do the same thing; i.e. allow you to build "systems". While most people make a clear distinction between DBMS and (and file systems) which handle persistent data and Programming languages which handle in-memory data, this does not need to be so. There is no fundamental law of IT that makes this so. Indeed, the fact that there are Orthogonally Persistent PLs that work clearly demonstrates this.
There are abstraction layers available in any platform for you to work oblivious of the underlying data sources( what ever that might be from databases to text files). Does that really affect me at the programming level. Do not think so.
Actually, the DB (or FS) versus PL affects you at a pretty fundamental level, because your programs are designed to use different abstractions to deal with persistent and non-persistent data... or persistent and non-persistent incarnations of the same data.
The fundamental idea of an OPPL is that you are not forced to deal with two kinds of data... anywhere. Persistence just happens, without you (the programmer) having to worry about it.
Grady Booch is right about the mismatch between relational databases and OOP modelling. But in
reality, this mirrors a more fundamental mismatch
between databases (in general) and programming languages.
To put it simply, data is handled differently by the storage system in an executing program. Typically we find:
Data is represented differently; i.e. the basic type systems are different.
Data is organized differently; e.g. tables
and indexes versus lists, hash tables, etc.
Data accesses and update models are different; e.g. queries and transactions versus ad hoc programmed searches and synchronization.
Database access and non-database code is typically written in different languages, often in the same "program".
Over that last (at least) 20 years, there have been attempts to remove the database / proogram impedence mismatch. The most radical approach is
Orthogonal Persistence. This aims to treat all data the same, irrespective of its lifetime. Data that needs to persist is made to persist without the programmer doing ANYTHING about it.
Classical examples of Orthogonal Persistence are
the PS-Algol and Napier-88 programming languages.
A notable (relatively) recent example was Sun Research Labs' Forest project which added OP support to Java. Unfortunately, the Forest project was shut down. My guess is that it conflicted with Sun's vision for mainstream Java. Sad.
That's insane. It misses the point of biodiesel entirely: all of the CO2 produced was sucked up by the original plant source, so the net CO2 production is zero.
Actually, the net CO2 production for the entire cycle is considerably greater than zero. The farmer puts regular diesel into his tractor and nitrogen fertilizer onto his fields. Then there's the energy input for getting the oil seed to the processor, extracting the oil, refining it, packaging it, shipping it to the wholesaler, shipping the cooking oil to the primary user, collecting the waste oil...
And finally, the greasel car drive burns the stuff.
But that is misleading too. To make a balanced assesment, you need to compare the total carbon cycles for using waste grease as fuel, versus doing something else with it.
I suspect that it really makes little difference whether you use the waste cooking oil as fuel, or bury it as landfill (burning an equivalent amount of petrol in your car / fuel oil in your boiler, etc)
However, if you hire a shipping company to haul cargo for you as fast as possible, and they get busted for speeding, are you liable? Should you be? What about if you didn't know they would speed? What about if you did?sy
If it can be proved that you knowingly requested
them to do something illegal, you should be liable
and possibly are. It depends on the "conspiracy"
laws, and the nature of the illegal act. The problem is that it can be difficult to prove
"knowingly".
Back to the specifics of your suggestion, the
problem with legally requiring the spammer to
maintain an audit trail is that he's going to
ignore the legal requirement 99% of the time.
If he's going to risk being thrown in the slammer for illegal spamming, the missing audit trail is
not going to be on his "radar screen".
(This is not to say that an audit trail requirement is wrong... just mostly ineffective.)
Perhaps this is a sign that your IT support is now fulfilling its core function better; i.e. more efficiently. For example, it could be cutting back on unnecessary in-house development, changing platforms and applications and/or reducing user IT support levels. While this may be bad for the IT section, it may make the company more competitive.
(The fact that the company is still on its feet after 3 years at a low level of IT staffing suggests that the decision to cut back cannot have been totally wrong...)
Reconfigurable architectures in general don't have a notion of an instruction stream. This is radically different from both Von Neumann and Harvard architectures.
A reconfigurable architecture is closer to that of machines of the 1940's and 50's programmed using a plug board. The differences are in the type and number of components that can be "plugged together", and the fact that the "plugging" is now done electronically.
The key idea is that you can perform simple computation faster and with less silicon if you implement each part of the computation with a
different component. (Essentially, you tailor the hardware to suit the computation rather than the other way around.)
This gives better performance with less silicon for many reasons. You can avoid the cost of instruction decoding and control flow management. You can often eliminate bottlenecks; e.g. access to general purpose registers / memory. You can eliminate silicon dedicated to general purpose functionality that is not used for the computation at hand. And so on.
However, as the computation gets more complex, you will eventually need more components than you would do to implement a classical Von Neumann machine that solved the problem. Often, you'll find that most of the components are idle for most of the computation.
True, but I doubt that Microsoft would ever commit that meme to an internal email... let alone admit to its validity in public.
The flip-side is that Piracy is not good for the public, since it just increases the degree that people get locked into MS products. (Assuming of
course that you agree that MS product lock-in is a bad thing...)
I doubt that you can nail them like this. According to their TOS, they don't claim right of ownership of your material. Rather, they assert that you grant them the right to do (more or less) what they like with it.
However, I doubt that these clowns will get away with this. If the current bad publicity and subsequent customer backlash doesn't convince them of their stupidity, someone is likely to take them to court to get their ammended TOS struck down.
When you rackmount your musicians, they
can't fall over drunk on the stage and damage
their instruments. OTOH, they do tend to whine
a bit... or is that just feedback?
They've set up a trasceiver. They use it
remotely. The idea SHOULD have crossed their
minds that others could, too.
I think you are overestimating the
knowledge and common sense of the average
computer user when it comes to computer security.
Like the CS professor I knew who (it transpired)
used a 3 character password for all of his
accounts.
In some cases, yes. in other cases, the law
and/or its interpretation is primarily intended
to benefit the current government's power base.
But that's beside the point. The reality is
that there are many things that are legal,
while being clearly unethical (or immoral) in
the view of most people. And there are lots
of illegal (and unethical) actions that you
can "get away with" because a smart lawyer can
convince a judge / jury to not convict. The
net result is that ethics and the law are poles
apart.
saying "i didn't realize i couldn't use this car" is a lame excuse, but i'd say it works for wireless since there are plenty of public hotspots.
You might get away with that in a court of law,
but we are talking about ethics here.
The guy knew that the WLAN he was borrowing was
not a public hotspot. This is obvious from the
original posting.
But it might not be fine by someone else. The
fact that someone has failed to secure something
(a WLAN, a car door, whatever) does not imply
permission for others to use it. Not legally,
and not by the norms of western society.
If your neighbor is playing good music loudly, and you open your window and enjoy it, are you stealing.
No. Because he doesn't own the vibrations or
the music. Sure, he owns the CD and the
CD player, but you are obviously not stealing
them.
If you use someone's driveway to help turn around, are you stealing?
No, but you might be committing trespass... depending on the context. There
is an implied permission to enter your property
for certain purposes. For example, someone is
allowed to go up to your front
door and ring the doorbell. This applies unless
you make it clear that you have withdrawn it.
I wouldn't be prepared to make a guess as to
the legalities of turning a care in someone
elses driveway... in your jurisdiction.
As to the "ethics" of this, you are clearly
not stealing anything because you are not
depriving the driveway owner of anything. But
if the norms of your society say that it is not
acceptable to turn in someone elses driveway,
you are ethically wrong to do so.
If you really feel bad, go back, figure out whose it is, and tell them it's open. Odds are they don't know and/or don't care.
Odds are they don't know, but they would care if
they did know. In fact, they'd probably be
extremely annoyed, and (if they thought about
it) rather scared.
The fact that it was (in some sense) the neighbour's fault for neglecting to secure his WLAN, does not make it ethical for someone
else to access it.
Suppose you left
your car door unlocked by accident, and a total stranger decided to drive down to the local 7-11
to buy some chocolates for his girlfriend.
By your argument, it is your fault because you forgot to lock the care door. And it follows
that this makes it ethical for the stranger to
borrow your car without asking you.
(BTW: since you apparently think that it is ok
for total strangers to borrow your stuff, would you mind letting us all know where you live?:-)
The CNET article doesn't say that any more!!! Specifically, the sentence "Phipps also noted that JBoss appears to be using software written by Sun"
is no longer there.
I wonder if Phipps actually said that in the interview. If he did, he'd better have some
evidence!!
I've been taught for years about the superiority of Java's type system as a security measure, and I know that a lot of theoretical work and proofs have been done to show that Java's type system is secure, but this exploit manages to get around the type safety with such a simple trick that I'm kicking myself for not having seen it myself. It's almost elegant, the way they get it done.
This illustrates a number of things to me:
It is unwise to rely on just one mechanism
for security.
It is (IMO) unwise to rely on type
safety for security. If a type safety
breach can be found, this inevitably
leads to a new mode of security attack.
Java (and.Net) do not represent the
end-point for research into virtual
machines.
A decent CS degree sylabus does not aim to be the same as a training course for programmers. Rather, it aims to provide the students that will last for their entire career. Here's an example:
When I did my CS degree (many years ago) the course covered a range of theoretical and practical topics, but there wasn't much in the sylabus on COBOL, which was a very important language back then. So in my last year at Uni, I took an external training course to learn COBOL. Sure enough, my first real job was COBOL programming. (And to my shagrin, the first 2-3 weeks consisted of an on-the job COBOL course... sigh.)
But within, 3 years I'd left that job and I was back at Uni doing a higher degree in CS. Guess what... I've never written another COBOL program. But I've done a lot of software engineering using a wide range of programming languages, IDEs, OS platforms and so on. Very few of these were covered in any depth (or at
all) my CS degree. But that wasn't and isn't a
problem for me. If need to get up to speed in
some new language, API, technique, etc, I can usually find a training course... or just pick it up from a text book.
I make use of basic skills and knowledge that I learned in my CS degree every day; e.g. basic programming and design, data structures, complexity theory, etc. But I wouldn't expect a CS degree to spend too much time on the nitty-gritty details of today's fashion in OS platforms... or whatever.
A smart employer understands the difference between an employee who has had broad CS education and one who has just had technology specific training.
Although the theory is there, I'm not sure if anyone has successfully 'fixed' bad genes in an embryo.
I've not heard of anyone attempting this for human embryos. But I think it has been done for animals.
Remember that "artist" who commissioned a glow-in-the-dark rabbit? (OK, this was adding a new gene rather than fixing a bad gene, but the techniques used would be the same.)
Fundamentally, DBMS and programming languages are both meant to do the same thing; i.e. allow you to build "systems". While most people make a clear distinction between DBMS and (and file systems) which handle persistent data and Programming languages which handle in-memory data, this does not need to be so. There is no fundamental law of IT that makes this so. Indeed, the fact that there are Orthogonally Persistent PLs that work clearly demonstrates this.
There are abstraction layers available in any platform for you to work oblivious of the underlying data sources( what ever that might be from databases to text files). Does that really affect me at the programming level. Do not think so.
Actually, the DB (or FS) versus PL affects you at a pretty fundamental level, because your programs are designed to use different abstractions to deal with persistent and non-persistent data ... or persistent and non-persistent incarnations of the same data.
The fundamental idea of an OPPL is that you are not forced to deal with two kinds of data ... anywhere. Persistence just happens, without you (the programmer) having to worry about it.
To put it simply, data is handled differently by the storage system in an executing program. Typically we find:
Over that last (at least) 20 years, there have been attempts to remove the database / proogram impedence mismatch. The most radical approach is Orthogonal Persistence. This aims to treat all data the same, irrespective of its lifetime. Data that needs to persist is made to persist without the programmer doing ANYTHING about it.
Classical examples of Orthogonal Persistence are the PS-Algol and Napier-88 programming languages. A notable (relatively) recent example was Sun Research Labs' Forest project which added OP support to Java. Unfortunately, the Forest project was shut down. My guess is that it conflicted with Sun's vision for mainstream Java. Sad.
Seriously, anyone who takes delicate (i.e. shock sensitive, water sensitive, dirtt sensitive) equipment underground is just asking for trouble.
And finally, the greasel car drive burns the stuff.
But that is misleading too. To make a balanced assesment, you need to compare the total carbon cycles for using waste grease as fuel, versus doing something else with it. I suspect that it really makes little difference whether you use the waste cooking oil as fuel, or bury it as landfill (burning an equivalent amount of petrol in your car / fuel oil in your boiler, etc)
Back to the specifics of your suggestion, the problem with legally requiring the spammer to maintain an audit trail is that he's going to ignore the legal requirement 99% of the time. If he's going to risk being thrown in the slammer for illegal spamming, the missing audit trail is not going to be on his "radar screen". (This is not to say that an audit trail requirement is wrong ... just mostly ineffective.)
Perhaps this is a sign that your IT support is now fulfilling its core function better; i.e. more efficiently. For example, it could be cutting back on unnecessary in-house development, changing platforms and applications and/or reducing user IT support levels. While this may be bad for the IT section, it may make the company more competitive. (The fact that the company is still on its feet after 3 years at a low level of IT staffing suggests that the decision to cut back cannot have been totally wrong ...)
A reconfigurable architecture is closer to that of machines of the 1940's and 50's programmed using a plug board. The differences are in the type and number of components that can be "plugged together", and the fact that the "plugging" is now done electronically.
The key idea is that you can perform simple computation faster and with less silicon if you implement each part of the computation with a different component. (Essentially, you tailor the hardware to suit the computation rather than the other way around.)
This gives better performance with less silicon for many reasons. You can avoid the cost of instruction decoding and control flow management. You can often eliminate bottlenecks; e.g. access to general purpose registers / memory. You can eliminate silicon dedicated to general purpose functionality that is not used for the computation at hand. And so on.
However, as the computation gets more complex, you will eventually need more components than you would do to implement a classical Von Neumann machine that solved the problem. Often, you'll find that most of the components are idle for most of the computation.
patriotism is the last refuge of the scoundrel. This is just another example.
The flip-side is that Piracy is not good for the public, since it just increases the degree that people get locked into MS products. (Assuming of course that you agree that MS product lock-in is a bad thing ...)
However, I doubt that these clowns will get away with this. If the current bad publicity and subsequent customer backlash doesn't convince them of their stupidity, someone is likely to take them to court to get their ammended TOS struck down.
When you rackmount your musicians, they can't fall over drunk on the stage and damage their instruments. OTOH, they do tend to whine a bit ... or is that just feedback?
I think you are overestimating the knowledge and common sense of the average computer user when it comes to computer security. Like the CS professor I knew who (it transpired) used a 3 character password for all of his accounts.
But that's beside the point. The reality is that there are many things that are legal, while being clearly unethical (or immoral) in the view of most people. And there are lots of illegal (and unethical) actions that you can "get away with" because a smart lawyer can convince a judge / jury to not convict. The net result is that ethics and the law are poles apart.
You might get away with that in a court of law, but we are talking about ethics here. The guy knew that the WLAN he was borrowing was not a public hotspot. This is obvious from the original posting.
But it might not be fine by someone else. The fact that someone has failed to secure something (a WLAN, a car door, whatever) does not imply permission for others to use it. Not legally, and not by the norms of western society.
If your neighbor is playing good music loudly, and you open your window and enjoy it, are you stealing.
No. Because he doesn't own the vibrations or the music. Sure, he owns the CD and the CD player, but you are obviously not stealing them.
If you use someone's driveway to help turn around, are you stealing?
No, but you might be committing trespass ... depending on the context. There
is an implied permission to enter your property
for certain purposes. For example, someone is
allowed to go up to your front
door and ring the doorbell. This applies unless
you make it clear that you have withdrawn it.
I wouldn't be prepared to make a guess as to
the legalities of turning a care in someone
elses driveway ... in your jurisdiction.
As to the "ethics" of this, you are clearly not stealing anything because you are not depriving the driveway owner of anything. But if the norms of your society say that it is not acceptable to turn in someone elses driveway, you are ethically wrong to do so.
If you really feel bad, go back, figure out whose it is, and tell them it's open. Odds are they don't know and/or don't care.
Odds are they don't know, but they would care if they did know. In fact, they'd probably be extremely annoyed, and (if they thought about it) rather scared.
Suppose you left your car door unlocked by accident, and a total stranger decided to drive down to the local 7-11 to buy some chocolates for his girlfriend. By your argument, it is your fault because you forgot to lock the care door. And it follows that this makes it ethical for the stranger to borrow your car without asking you.
(BTW: since you apparently think that it is ok for total strangers to borrow your stuff, would you mind letting us all know where you live? :-)
You have just violated my patent on making funny posts to /.
because they would then need a standard unit for the value of "one thousand". Duhhhh!
I wonder if Phipps actually said that in the interview. If he did, he'd better have some evidence!!
Hey, I've noticed that the Iraq war hasn't caused any drop-off in SPAM either. Perhaps other things are happening in the world? Shock! Horror!
This illustrates a number of things to me:
When I did my CS degree (many years ago) the course covered a range of theoretical and practical topics, but there wasn't much in the sylabus on COBOL, which was a very important language back then. So in my last year at Uni, I took an external training course to learn COBOL. Sure enough, my first real job was COBOL programming. (And to my shagrin, the first 2-3 weeks consisted of an on-the job COBOL course ... sigh.)
But within, 3 years I'd left that job and I was back at Uni doing a higher degree in CS. Guess what ... I've never written another COBOL program. But I've done a lot of software engineering using a wide range of programming languages, IDEs, OS platforms and so on. Very few of these were covered in any depth (or at
all) my CS degree. But that wasn't and isn't a
problem for me. If need to get up to speed in
some new language, API, technique, etc, I can usually find a training course ... or just pick it up from a text book.
I make use of basic skills and knowledge that I learned in my CS degree every day; e.g. basic programming and design, data structures, complexity theory, etc. But I wouldn't expect a CS degree to spend too much time on the nitty-gritty details of today's fashion in OS platforms ... or whatever.
A smart employer understands the difference between an employee who has had broad CS education and one who has just had technology specific training.
I've not heard of anyone attempting this for human embryos. But I think it has been done for animals. Remember that "artist" who commissioned a glow-in-the-dark rabbit? (OK, this was adding a new gene rather than fixing a bad gene, but the techniques used would be the same.)