I was being very vague in my description of the publish/subscribe system, because it's a lot more complex than that, and I couldn't be bothered explaining it all in that post. Triggers insert an event row into a table that's picked up by a Pro*C daemon. That daemon executes stored procedures that call networking code to connect to another daemon that handles the publishing to subscribed clients. The clients register for certain event types with filters for the data they want to be notified about, and only that data is published to a particular client.
I only mentioned network traffic because I was trying to think of something extra to list. Rollbacks are a little easier to handle in our situation because table locks don't need to be preserved between client<->server communications.
I agree that realistically business logic should be placed in an application tier, but this was the design choice that was made 15 years ago, long before I joined the team (personally I would have shot whoever made that choice if I'd been there). I also agree that new developers find it difficult to adjust, but unfortunately that's just the way it is in our situation.
And I don't think you'd have to worry about posting AC; you didn't say anything nasty.:)
When I said 1000+ tables, I was identifying the entire system. The components/subsystems ARE separated and DO have loose coupling.
It's not "horribly designed", it's just 15 years old and has had 15 years worth of enhancement requests.
I think you'll find a large contributor to the slowdown/halt of human evolution is that natural selection now plays very little part. Viruses and diseases are by design killers of the weak. Progressions in science and medicine have allowed us to cure these viruses/diseases, such that those most susceptible (ie. weaker genes) are permitted to contribute to the gene pool.
The alternatives of course are to let diseases to run rampant, allowing only the highly resistant to be "naturally selected", or to sterilise the weak. This renders progress in medicine useless, and raises all kinds of moral issues.
In my opinion, Mankind's only real hope of continuing the evolution trail is by gene manipulation and/or augmentation.
It seems my estimate of 1M was rather off. I just did some SELECT COUNT(*) from some of the frequently used tables and got about 20M per table. That's "used per day", not including historical records. I don't lack a perspective; in this case "huge" means "larger than most private clients". When it comes to "large databases", there's a difference between "huge" and "behemoth" (ie. Google).
That's a very narrow-minded statement. The application I maintain has an Oracle 10g backend, Pro*C middleware, and a Java fat client. The standard process for an action in the application is to ask the middleware to run a certain stored procedure in an Oracle package.
Given that this application is huge (I'm talking 1000+ tables, some with up to a million rows) and there are at least 1000 concurrent users, it's very convenient to have the logic on the server-side. Any code change to the client requires an outage (to replace the jar file), which is BAD if it's an emergency fix. By putting all the logic (and access to a vast amount of data) server-side, it reduces network traffic, allows easy rollbacks, and allows the support team to apply a fix without an outage.
Some more great things about our setup is that Oracle packages and triggers support networking. We have a publish/subscribe system tied to triggers such that when one user makes a change, it's instantly reflected on every other user's screen.
Obviously this solution isn't best for all situations, but it fits our needs very well. YMMV
It's because (as usual) the Slashdot article title is overhyped. There is no ELE "collision" as such. I'd expect as much alert to this as your regular lunar eclipse announcement.
I assume then, that none of your family plays Windows-only games? I would have been using Ubuntu 64 yonks ago if every single game I want to run would run flawlessly. By flawlessly, I mean "can't tell that I'm not in Windows". Wine may be good, but if it's not 100% compatibility, I'm not interested.
But clearly this kind of market for virtual goods emerged in WoW -- without the explicit support of the company.
The big difference here is that with WoW, the virtual goods must first be farmed by a player or a bot. While this might not sound so bad, having a bot farm herbs 24 hours a day denies them from other players and can affect realm economy since the gold farmers will generally flood the auction house with stupid prices. While you could theoretically get a person to play for that long, or even in shifts, it's very uncommon.
The main legal issue here is that you're trying to sell a virtual property that is not yours to sell.
Thank god I got in early this morning; I knew this would make Slashdot eventually. Bad luck to those who missed out on one, you'll have to wait until next year.
As I've said before, "developer" is not the same as "publisher". In general, developers create the game to be played. Publishers take that game and wrap it in as much DRM and copy protection as they can.
Do you honestly think the programmers/artists/designers (who are most likely avid gamers themselves) actually want their game to get bad reviews from retarded DRM systems like Spore's?
Re:I really want a copy of this...
on
Clean Code
·
· Score: 1
Heh I was waiting for someone to throw out some lisp... I learned that at Uni and hoped to never again use it. My poor parenthesis keys.:(
Re:I really want a copy of this...
on
Clean Code
·
· Score: 1
A better example of recursive programming would be factorials or the fibonacci sequence. They're the two most common examples shown in textbooks (in my experience, at least). It's something similar to this:
int fib(int n) { if(n<=1) return 1; return fib(n-1)+fib(n-2); } int fact(int n) { if(n<=1) return 1; return n * fact(n-1); }
An OS DOES need some kind of protection against malware, because no matter how well you write your software, someone will find a way to exploit it. There is no such thing as an "uncrackable system"; just look at the cat and mouse game of copy protection/DRM and you'll see. Spore was cracked within hours of release.
The fact that they still require malware protection (evidenced by the "we can't detect any anti-virus software, panic" screen)
I think you'll find Microsoft don't include some kind of anti-virus system with Windows because it would break antitrust law. Users would be less likely to look to other AV solutions, and Norton/McAfee/etc. would lose sales.
For a moment I thought "checks" meant "security checks" and I starting to get worried. Then I realised they actually meant "cheques", and had somehow misspelled it.
I love XBMC so much I own FOUR Xboxes (one for each room with a TV). Hooked up to my Linux server with about 6 terabytes worth of TV/movies/etc., it's pretty awesome.;)
I was being very vague in my description of the publish/subscribe system, because it's a lot more complex than that, and I couldn't be bothered explaining it all in that post. Triggers insert an event row into a table that's picked up by a Pro*C daemon. That daemon executes stored procedures that call networking code to connect to another daemon that handles the publishing to subscribed clients. The clients register for certain event types with filters for the data they want to be notified about, and only that data is published to a particular client.
I only mentioned network traffic because I was trying to think of something extra to list. Rollbacks are a little easier to handle in our situation because table locks don't need to be preserved between client<->server communications.
I agree that realistically business logic should be placed in an application tier, but this was the design choice that was made 15 years ago, long before I joined the team (personally I would have shot whoever made that choice if I'd been there). I also agree that new developers find it difficult to adjust, but unfortunately that's just the way it is in our situation.
And I don't think you'd have to worry about posting AC; you didn't say anything nasty. :)
When I said 1000+ tables, I was identifying the entire system. The components/subsystems ARE separated and DO have loose coupling.
It's not "horribly designed", it's just 15 years old and has had 15 years worth of enhancement requests.
That's not evolution, it's intelligent design :P
Perhaps, but the idea is still awesome. :)
I think you'll find a large contributor to the slowdown/halt of human evolution is that natural selection now plays very little part. Viruses and diseases are by design killers of the weak. Progressions in science and medicine have allowed us to cure these viruses/diseases, such that those most susceptible (ie. weaker genes) are permitted to contribute to the gene pool.
The alternatives of course are to let diseases to run rampant, allowing only the highly resistant to be "naturally selected", or to sterilise the weak. This renders progress in medicine useless, and raises all kinds of moral issues.
In my opinion, Mankind's only real hope of continuing the evolution trail is by gene manipulation and/or augmentation.
It seems my estimate of 1M was rather off. I just did some SELECT COUNT(*) from some of the frequently used tables and got about 20M per table. That's "used per day", not including historical records. I don't lack a perspective; in this case "huge" means "larger than most private clients". When it comes to "large databases", there's a difference between "huge" and "behemoth" (ie. Google).
http://xkcd.com/329/
Human qualities != intelligence.
Human != intelligence.
Fixed that for you. :)
Don't use stored procedures.
That's a very narrow-minded statement. The application I maintain has an Oracle 10g backend, Pro*C middleware, and a Java fat client. The standard process for an action in the application is to ask the middleware to run a certain stored procedure in an Oracle package.
Given that this application is huge (I'm talking 1000+ tables, some with up to a million rows) and there are at least 1000 concurrent users, it's very convenient to have the logic on the server-side. Any code change to the client requires an outage (to replace the jar file), which is BAD if it's an emergency fix. By putting all the logic (and access to a vast amount of data) server-side, it reduces network traffic, allows easy rollbacks, and allows the support team to apply a fix without an outage.
Some more great things about our setup is that Oracle packages and triggers support networking. We have a publish/subscribe system tied to triggers such that when one user makes a change, it's instantly reflected on every other user's screen.
Obviously this solution isn't best for all situations, but it fits our needs very well. YMMV
It's because (as usual) the Slashdot article title is overhyped. There is no ELE "collision" as such. I'd expect as much alert to this as your regular lunar eclipse announcement.
In fact, screw the D&D and the dice!
Ahhh forget the whole thing.
I assume then, that none of your family plays Windows-only games? I would have been using Ubuntu 64 yonks ago if every single game I want to run would run flawlessly. By flawlessly, I mean "can't tell that I'm not in Windows". Wine may be good, but if it's not 100% compatibility, I'm not interested.
But clearly this kind of market for virtual goods emerged in WoW -- without the explicit support of the company.
The big difference here is that with WoW, the virtual goods must first be farmed by a player or a bot. While this might not sound so bad, having a bot farm herbs 24 hours a day denies them from other players and can affect realm economy since the gold farmers will generally flood the auction house with stupid prices. While you could theoretically get a person to play for that long, or even in shifts, it's very uncommon.
The main legal issue here is that you're trying to sell a virtual property that is not yours to sell.
Thank god I got in early this morning; I knew this would make Slashdot eventually. Bad luck to those who missed out on one, you'll have to wait until next year.
As I've said before, "developer" is not the same as "publisher". In general, developers create the game to be played. Publishers take that game and wrap it in as much DRM and copy protection as they can.
Do you honestly think the programmers/artists/designers (who are most likely avid gamers themselves) actually want their game to get bad reviews from retarded DRM systems like Spore's?
The money does indeed follow buzzwords, like "Neural Network" for example...
http://thedailywtf.com/Articles/Classic-WTF-No-Quack.aspx
This one is definitely not photoshopped.
No, but it WAS mspainted.
Heh I was waiting for someone to throw out some lisp... I learned that at Uni and hoped to never again use it. My poor parenthesis keys. :(
An OS DOES need some kind of protection against malware, because no matter how well you write your software, someone will find a way to exploit it. There is no such thing as an "uncrackable system"; just look at the cat and mouse game of copy protection/DRM and you'll see. Spore was cracked within hours of release.
The fact that they still require malware protection (evidenced by the "we can't detect any anti-virus software, panic" screen)
I think you'll find Microsoft don't include some kind of anti-virus system with Windows because it would break antitrust law. Users would be less likely to look to other AV solutions, and Norton/McAfee/etc. would lose sales.
For a moment I thought "checks" meant "security checks" and I starting to get worried. Then I realised they actually meant "cheques", and had somehow misspelled it.
Cannot play media. Sorry, this media is not available in your territory.
WTF???
"per se", not "per say".
Mod parent +5 awesome.
I love XBMC so much I own FOUR Xboxes (one for each room with a TV). Hooked up to my Linux server with about 6 terabytes worth of TV/movies/etc., it's pretty awesome. ;)