The database can act as a place for storing the data required for a call, but not as a mechanism for kicking off the server-side process. You then also need some method for the client to tell the server to actually start. You can do this with by throwing messages down a tcp/ip socket, but this involves writing a multithreaded socket handler on the server side. If you use an http based web service, then you get this sort of stuff handled by the server.
As for http POSTs / xml responses, this is actually the method that we are using at the moment (and have been using since before Web Services were hyped). It does the job pretty well, but a "standard" Web Service protocol, such as SOAP, just add a few extra nice touches, like standard libraries to build/handle messages, and the ability for client development tools (such as Delphi) to query the Web Service and automatically generate a client component to wrap up all of the parsing of the message. We could write all of this infrastructure, but Web Services can give you it for free.
And as for ftp, you can do Web Services over ftp if you want, or you could write your own wrapping mechanism for encoding/decoding messages, but why bother? What does it gain you? It would be extremely clunky, especially for online systems.
I'm not quite sure what you mean about moving boxes off the shelf - you don't need to buy anything to implement a Web Service. They are simply a standards based approach to doing XML based inter-application communications via any uri-based protocol. If you can write XML parsers, you can develop your own. Or if you don't want to, several languages already have free libraries that take away the pain. Admittedly, some of the nice functionality (such as the auto-generation of components in Delphi) are only available in the latest versions, but then you can just use the hand-crafted method that you would have to use for your in-house developed protocols until you upgrade.
You could just as easily look at XML and say - "It's just another data transfer mechanism. We could write our own, what do we need XML for?" It's all true. You can develop a protocol that achieves the same thing as Web Services, just as you can develop a data format that works as well as XML. But why bother? What do you gain?
Well if your services are internal-only, you don't need any security at all, you can simply threaten miscreants with disciplinary behavior.
Yeah, right. Which company do you work for? Is this the security policy that you implement for internal systems? Most hacking/misuse of systems happens from internal users. If you have no authentication mechanism, then how do you know who to discipline?
because you've just routed around your firewall and pointed RPC calls directly to port 80. I don't know how many times I've seen this theory that Web Services have to run on port 80. They don't. They don't even need to run on via http. To quote from the W3C -
Web service
[Definition: A Web service is a software application identified by a URI, whose interfaces and binding are capable of being defined, described and discovered by XML artifacts and supports direct interactions with other software applications using XML based messages via internet-based protocols]
And in case you want to know what a URI is, again from the W3C -
Every resource available on the Web -- HTML document, image, video clip, program, etc. -- has an address that may be encoded by a Universal Resource Identifier, or "URI".
...
Other schemes you may see in HTML documents include "mailto" for email and "ftp" for FTP.
You can have a Web Service running via email if you want. I know I talked about Web Server security in the original post, but that was to show that you can implement Web Services (reasonably) securely, within a corporate environment, using built in security.
Anyway, a Web Service is not inherently any less secure than a web page. It depends what you let your service do. Every call to a URL is a call to some function or other on your web server. When you are filling in a web site application form and press submit, the URL that the POST gets sent to is a form of remote method. You can provide Web Services that offer exactly the same functionality that was available through passing POST parameters on your web page. This does not open up any security holes that were not already there. It is perfectly possible to build a web service that opens up huge security holes in your system, but then it's just as easy to build a web site that does the same thing.
Maybe not in the Internet world, but for internal sytems within companys with heterogeneous applications, there is a great demand for it. We have a whole host of different applications written in a multitude of languages and running on a whole host of operating systems that need to communicate. Web Services offer a great way of doing this.
And as for security, proper web servers tend to provide security mechanisms which prevents unauthorised users from accessing the url that the service is on.
A lot of the "whiners" are people that are pointing out that, although mySQL is a great application, it doesn't have the features required to be used as a serious database in any large enterprise.
You may be thinking "Well, duh, it wasn't designed for that. Stop whinging", but having seen several posts where people have claimed that transactions, stored procedures, etc are not important for a "serious" database, I think it does need to be pointed out.
Like I say, I'm not knocking mySQL for not having those features. It's a free tool, that does what it does very well, but a lot of people seem to believe that it's capable of fulfilling a role that it isn't.
Stored procedures are terribly simple to implement in whatever's driving your database
Apart from the fact that it wouldn't really be a stored procedure then.
The point of stored procedures is that the execute inside the database, allowing them to run much more quickly than external procedures calling into the database for every row. They also allow improved security, as all access to things like updates can be removed from calling applications, and then the app can call stored procedures that allow certain, controlled, modifications to the database.
I'm not knocking mySQL for not having them. I think it's a great application, and I have used it for developing a commercial prototype of my company's web site. But don't be blind to its limitations (and there are several). Stored procedures, along with proper security, transactions etc, are vital ingredients for any serious enterprise RDBMS.
But that is probably down to two factors. The PS1 has vast amounts of software available to it (admittedly much of it is pretty poor), and it is £50, and therefore almost a impulse buy. I suspect many of the people that are buying them are parents after a cheap console, with large amounts of software to choose from, to keep their kids happy. An X-Box, with few titles in comparison, and with a price tag of £200 is probably out of reach of these sort of buyers.
IANAL, but from what I remember it's not actually a crime if you just move someone's car without permission (unless you damage it in the process). If you had no intention of keeping it then, as I understand it, it's not theft (at least not in the UK).
You are making the decision by opting not to do it. You may decide that you can't choose bring yourself to kill person A to save person B, but that's still your decision.
But I suspect that this is irrelevant to the story as there was no suggestion (or at least I didn't notice one) in the article that they would be using this money for good.
Ooh. 3 years. Long-timer, eh? I've had "real" jobs in the IT industry for 15 years (from developer to enterprise architect), and I can tell you from experience that working long (50+) hours for any length of time is going to lower your productivity drastically. You may produce more lines of code, but they will be much lower quality lines of code, and in the long run won't get your project done any quicker. I've seen the results of youngsters (including myself, many moons ago) working 15+ hour days to get stuff out. You can often tell what time of day a particular piece of code is written by the deteriorating quality of it, and the amount of bugs that the test team (or users, if you skip testing to meet your deadlines) find in it.
We've all had to work ridiculous hours on projects to meet stupid deadlines, but doing it for more than a couple of weeks at a time is going to numb your brain.
Read up on things like Extreme Programming, for a more detailed discussion on why overtime is counter productive - you'll have time to read this kind of stuff if you're not working the entire day.
As the advert used to say "Work Smarter, Not Harder", and become an IT professional.
Re:My one big issue with the film (SPOILER?)
on
Minority Report
·
· Score: 2
Having not seen the movie, nor read the book, I don't know if this is explained but your post does raise a question. If precrime doesn't really work, won't some murders still happen (there's always going to be a couple of nutters who are prepared to risk it)? And wouldn't this then prove that precrime doesn't really work?
How many times do I see this kind of thing? It might not be useful for you, but there are plenty of people that do actually find PDAs useful.
I have my iPaq connected up to Outlook on my PC at work. As soon as someone puts an appointment in my Outlook diary, it appears on my PDA. I know pretty much all the time what meetings I am meant to be in, what the agenda is and who else is in the meeting. I don't have to write any of this down, and if it changes my PDA updates with the details.
I can check/send my emails on the way to or from work on the bus.
I have the names, addresses, phone numbers and notes about just about everyone I will ever need to contact. It's all backed up on a PC, so if I don't need to write everything out twice in case I lose it.
And all from a device that fits in my pocket without me really noticing it's there, which I certainly would with a mini-laptop - even a Psion is too bulky for me to carry everywhere.
It wouldn't be possible to develop a program if each time you solved a problem, you had to implement the solution in an entirely novel way...
Someone should tell this to some of the developers at my place. We've got some of the most "novel" solutions to problems I've ever seen, unfortunately.
Mine's got this feature, but it's also got an analog clock. First time I plugged it in, I wondered what the hell was noise was as the clock spun round to the correct time.
As Spain was a Fascist country by then, and were supported by the German Nazis, I hope that you're not defending the US's non-intervention as countries across Europe were being invaded by comparing it to them.
The point was that the US has rarely been the first country to step forward and "save the world".
2. Why can't Europe get off its butt and save mankind for change? Why is it always the taxpayers of the United States that have to save the Earth? We did enough in the 20th Century. Its time for us to take a century and let France save the Earth for a change. God knows we saved their asses enough.
Like joining in both World Wars a year or so after everyone else?
An even better approach, if you can convince the management that it does actually use less resource in the long run, is pair programming. I am an experienced developer, who likes to believe that I develop software in the 'right' way, but until I'd worked on a pair-programming project I never realised how often I manage to convince myself to take a shortcut rather than do things properly. With someone beside you asking "why are you doing that?", you can't duck out and take the shortcut, and when you're sick of their nagging, you get the pleasure of swapping over and badgering them to do it properly.
It's also amazingly useful to have someone keeping an eye on the big picture of what you're trying to achieve that day while you worry about the minutiae of your language syntax. The system that we developed may have taken slightly more overall man-power than if it had been developed without pair programming, but it's a complex multithreaded system integrating with a badly documented 3rd party system, and has been running 24x7 for the last 6 months with not a single minute spent on bug fixes or support caused by errors in the system. The non pair-programmed systems either side of it (including the 3rd party app) have frequent failures and regularly suck up resource for support and maintenance.
But if they want some custom analysis then yes they need to let us know what the formula is though.
And if they don't? or they forget to mention an important detail of it? I've lost count of the amount of times I've gone through detailed requirements gathering, got them to agree that in this situation X happens, developed software that does X, and then been told, after they've actually started using the the software, that they always want it to do X unless Y is true - something that they've never mentioned before. The problem is that most users don't actually understand their requirements, think that "almost always" is the same as "always", that error handling is a software issue not a business process issue, and that detail is not important.
What you seem to be forgetting is that every moment that you live, various parts of your body die and other bits are created. You are not 100% the same person you were a second ago, but do you feel that you are a different person?. There's new particles making up parts of your body. All this does is accelerate the process and do them all in one go.
Porn tends to be the one of the first industries to pick up on new technology (video, multiple camera angles in DVDs etc). They are looking for anything that gives them an edge in a very competitive market. Admittedly at $1M/feature it's probably too high, but if the price does drop, expect it to appear in porn well before it arrives in a holywood blockbuster.
Ugh,... not Grafitti. Try using the Transcriber handwriting recognition on the iPaq or similar then try going back to Grafitti. It's unbelievably painful. Transcriber aint perfect, but it's a hell of an improvement on Grafitti, so I'd change that requirement to "decent handwriting recognition"
How likely are you to get an unbiased report about Microsoft on MSNBC? What do you think the MS stands for?
The database can act as a place for storing the data required for a call, but not as a mechanism for kicking off the server-side process. You then also need some method for the client to tell the server to actually start. You can do this with by throwing messages down a tcp/ip socket, but this involves writing a multithreaded socket handler on the server side. If you use an http based web service, then you get this sort of stuff handled by the server.
As for http POSTs / xml responses, this is actually the method that we are using at the moment (and have been using since before Web Services were hyped). It does the job pretty well, but a "standard" Web Service protocol, such as SOAP, just add a few extra nice touches, like standard libraries to build/handle messages, and the ability for client development tools (such as Delphi) to query the Web Service and automatically generate a client component to wrap up all of the parsing of the message. We could write all of this infrastructure, but Web Services can give you it for free.
And as for ftp, you can do Web Services over ftp if you want, or you could write your own wrapping mechanism for encoding/decoding messages, but why bother? What does it gain you? It would be extremely clunky, especially for online systems.
I'm not quite sure what you mean about moving boxes off the shelf - you don't need to buy anything to implement a Web Service. They are simply a standards based approach to doing XML based inter-application communications via any uri-based protocol. If you can write XML parsers, you can develop your own. Or if you don't want to, several languages already have free libraries that take away the pain. Admittedly, some of the nice functionality (such as the auto-generation of components in Delphi) are only available in the latest versions, but then you can just use the hand-crafted method that you would have to use for your in-house developed protocols until you upgrade.
You could just as easily look at XML and say - "It's just another data transfer mechanism. We could write our own, what do we need XML for?" It's all true. You can develop a protocol that achieves the same thing as Web Services, just as you can develop a data format that works as well as XML. But why bother? What do you gain?
Yeah, right. Which company do you work for? Is this the security policy that you implement for internal systems? Most hacking/misuse of systems happens from internal users. If you have no authentication mechanism, then how do you know who to discipline?
because you've just routed around your firewall and pointed RPC calls directly to port 80.
I don't know how many times I've seen this theory that Web Services have to run on port 80. They don't. They don't even need to run on via http. To quote from the W3C -
Web service
[Definition: A Web service is a software
application identified by a URI, whose interfaces and binding are
capable of being defined, described and discovered by XML artifacts
and supports direct interactions with other software applications
using XML based messages via internet-based protocols]
And in case you want to know what a URI is, again from the W3C -
Every resource available on the Web -- HTML document, image, video clip, program, etc. -- has an address that may be encoded by a Universal Resource Identifier, or "URI".
Other schemes you may see in HTML documents include "mailto" for email and "ftp" for FTP.
You can have a Web Service running via email if you want. I know I talked about Web Server security in the original post, but that was to show that you can implement Web Services (reasonably) securely, within a corporate environment, using built in security.
Anyway, a Web Service is not inherently any less secure than a web page. It depends what you let your service do. Every call to a URL is a call to some function or other on your web server. When you are filling in a web site application form and press submit, the URL that the POST gets sent to is a form of remote method. You can provide Web Services that offer exactly the same functionality that was available through passing POST parameters on your web page. This does not open up any security holes that were not already there. It is perfectly possible to build a web service that opens up huge security holes in your system, but then it's just as easy to build a web site that does the same thing.
Maybe not in the Internet world, but for internal sytems within companys with heterogeneous applications, there is a great demand for it. We have a whole host of different applications written in a multitude of languages and running on a whole host of operating systems that need to communicate. Web Services offer a great way of doing this.
And as for security, proper web servers tend to provide security mechanisms which prevents unauthorised users from accessing the url that the service is on.
A lot of the "whiners" are people that are pointing out that, although mySQL is a great application, it doesn't have the features required to be used as a serious database in any large enterprise.
You may be thinking "Well, duh, it wasn't designed for that. Stop whinging", but having seen several posts where people have claimed that transactions, stored procedures, etc are not important for a "serious" database, I think it does need to be pointed out.
Like I say, I'm not knocking mySQL for not having those features. It's a free tool, that does what it does very well, but a lot of people seem to believe that it's capable of fulfilling a role that it isn't.
Stored procedures are terribly simple to implement in whatever's driving your database
Apart from the fact that it wouldn't really be a stored procedure then.
The point of stored procedures is that the execute inside the database, allowing them to run much more quickly than external procedures calling into the database for every row. They also allow improved security, as all access to things like updates can be removed from calling applications, and then the app can call stored procedures that allow certain, controlled, modifications to the database.
I'm not knocking mySQL for not having them. I think it's a great application, and I have used it for developing a commercial prototype of my company's web site. But don't be blind to its limitations (and there are several). Stored procedures, along with proper security, transactions etc, are vital ingredients for any serious enterprise RDBMS.
But that is probably down to two factors. The PS1 has vast amounts of software available to it (admittedly much of it is pretty poor), and it is £50, and therefore almost a impulse buy. I suspect many of the people that are buying them are parents after a cheap console, with large amounts of software to choose from, to keep their kids happy. An X-Box, with few titles in comparison, and with a price tag of £200 is probably out of reach of these sort of buyers.
IANAL, but from what I remember it's not actually a crime if you just move someone's car without permission (unless you damage it in the process). If you had no intention of keeping it then, as I understand it, it's not theft (at least not in the UK).
You are making the decision by opting not to do it. You may decide that you can't choose bring yourself to kill person A to save person B, but that's still your decision.
But I suspect that this is irrelevant to the story as there was no suggestion (or at least I didn't notice one) in the article that they would be using this money for good.
I've used my mobile phone (normal GSM) on top of mountains in Switzerland, if that's any help.
Ooh. 3 years. Long-timer, eh? I've had "real" jobs in the IT industry for 15 years (from developer to enterprise architect), and I can tell you from experience that working long (50+) hours for any length of time is going to lower your productivity drastically. You may produce more lines of code, but they will be much lower quality lines of code, and in the long run won't get your project done any quicker. I've seen the results of youngsters (including myself, many moons ago) working 15+ hour days to get stuff out. You can often tell what time of day a particular piece of code is written by the deteriorating quality of it, and the amount of bugs that the test team (or users, if you skip testing to meet your deadlines) find in it.
We've all had to work ridiculous hours on projects to meet stupid deadlines, but doing it for more than a couple of weeks at a time is going to numb your brain.
Read up on things like Extreme Programming, for a more detailed discussion on why overtime is counter productive - you'll have time to read this kind of stuff if you're not working the entire day.
As the advert used to say "Work Smarter, Not Harder", and become an IT professional.
Having not seen the movie, nor read the book, I don't know if this is explained but your post does raise a question. If precrime doesn't really work, won't some murders still happen (there's always going to be a couple of nutters who are prepared to risk it)? And wouldn't this then prove that precrime doesn't really work?
How many times do I see this kind of thing? It might not be useful for you, but there are plenty of people that do actually find PDAs useful.
I have my iPaq connected up to Outlook on my PC at work. As soon as someone puts an appointment in my Outlook diary, it appears on my PDA. I know pretty much all the time what meetings I am meant to be in, what the agenda is and who else is in the meeting. I don't have to write any of this down, and if it changes my PDA updates with the details.
I can check/send my emails on the way to or from work on the bus.
I have the names, addresses, phone numbers and notes about just about everyone I will ever need to contact. It's all backed up on a PC, so if I don't need to write everything out twice in case I lose it.
And all from a device that fits in my pocket without me really noticing it's there, which I certainly would with a mini-laptop - even a Psion is too bulky for me to carry everywhere.
It's OK. They've sacked 17000 other people as well.
What if the lawyer uses a legal precedent to argue the case? Would that be using some other lawyer's IP?
It wouldn't be possible to develop a program if each time you solved a problem, you had to implement the solution in an entirely novel way...
Someone should tell this to some of the developers at my place. We've got some of the most "novel" solutions to problems I've ever seen, unfortunately.
Mine's got this feature, but it's also got an analog clock. First time I plugged it in, I wondered what the hell was noise was as the clock spun round to the correct time.
As Spain was a Fascist country by then, and were supported by the German Nazis, I hope that you're not defending the US's non-intervention as countries across Europe were being invaded by comparing it to them.
The point was that the US has rarely been the first country to step forward and "save the world".
2. Why can't Europe get off its butt and save mankind for change? Why is it always the taxpayers of the United States that have to save the Earth? We did enough in the 20th Century. Its time for us to take a century and let France save the Earth for a change. God knows we saved their asses enough.
Like joining in both World Wars a year or so after everyone else?
Not necessarily. He might be talking about Melbourne in Derbyshire. It's in the next county to Rotherham.
An even better approach, if you can convince the management that it does actually use less resource in the long run, is pair programming. I am an experienced developer, who likes to believe that I develop software in the 'right' way, but until I'd worked on a pair-programming project I never realised how often I manage to convince myself to take a shortcut rather than do things properly. With someone beside you asking "why are you doing that?", you can't duck out and take the shortcut, and when you're sick of their nagging, you get the pleasure of swapping over and badgering them to do it properly.
It's also amazingly useful to have someone keeping an eye on the big picture of what you're trying to achieve that day while you worry about the minutiae of your language syntax. The system that we developed may have taken slightly more overall man-power than if it had been developed without pair programming, but it's a complex multithreaded system integrating with a badly documented 3rd party system, and has been running 24x7 for the last 6 months with not a single minute spent on bug fixes or support caused by errors in the system. The non pair-programmed systems either side of it (including the 3rd party app) have frequent failures and regularly suck up resource for support and maintenance.
But if they want some custom analysis then yes they need to let us know what the formula is though.
And if they don't? or they forget to mention an important detail of it? I've lost count of the amount of times I've gone through detailed requirements gathering, got them to agree that in this situation X happens, developed software that does X, and then been told, after they've actually started using the the software, that they always want it to do X unless Y is true - something that they've never mentioned before. The problem is that most users don't actually understand their requirements, think that "almost always" is the same as "always", that error handling is a software issue not a business process issue, and that detail is not important.
What you seem to be forgetting is that every moment that you live, various parts of your body die and other bits are created. You are not 100% the same person you were a second ago, but do you feel that you are a different person?. There's new particles making up parts of your body. All this does is accelerate the process and do them all in one go.
Porn tends to be the one of the first industries to pick up on new technology (video, multiple camera angles in DVDs etc). They are looking for anything that gives them an edge in a very competitive market. Admittedly at $1M/feature it's probably too high, but if the price does drop, expect it to appear in porn well before it arrives in a holywood blockbuster.
Grafitti or similar writing system
Ugh,... not Grafitti. Try using the Transcriber handwriting recognition on the iPaq or similar then try going back to Grafitti. It's unbelievably painful. Transcriber aint perfect, but it's a hell of an improvement on Grafitti, so I'd change that requirement to "decent handwriting recognition"