That's exactly what we're going to do, Sir. Of course, we'll need initial investment to get our prototype into a production mode. But for a mere $10,000 American, we can guarentee you a hundred fold return on your investment.
_ New Unbreakable Encryption Discovered, good as 1 time pad! _ Nanotechnology breakthrough! Gray Goo any day now! x Perpetual Motion discovered! Free energy for all. No really this time. _ New compression method discovered! Your hard drive in 8 bytes!
This was pretty much what I was thinking. Getting a 1.0 version out the door is usually crazy up till the last moment. Hell, we go through hundreds of bug tracking issues (and fix them) in the last week of deploying a medium sized web site. I couldn't believe they were worried about a thousand requests on a major institution wide system.
I want to know which software project out there spends the last month changing icon colors.
Lister: Holly, what's the problem? You're supposed to have an IQ of 6000, aren't you? Holly: Look, we're travelling faster than the speed of light. That means, by the time we see something, we've already passed through it. Even with an IQ of 6000, it's still brown trousers time.
Cyber-punk world. Assault a corporate office building with your team of mercenaries, escort your decker to a jack-in-point. Guard him while he battles in cyber-space to disable security systems, then advance to complete your objectives.
Or, if you're dressed in corporate blue... stop the punk mercs cold in their tracks.
It takes time to go to different spots. That is a cost. Finding the other spots often takes longer than changing code, at least for me. Also, it may be more code between of the code for the interface between the SQL and the method that uses it. If the SQL was where it is used, there is no interface, and thus no interface to change.
There is no denying this, it is a cost. But if your code is well organized, the cost is low.
"You might think you're saving time by hardcoding your sql with your presentation layer, but as your site gets larger and more complicated, it becomes more and more of a loss."
I have not seen scenarios that justify this claim.
Really? Then we've had different experiences.
Seperating everything that potentially can be separated does not magically make all stuff easier to work with. Some end up following mantra for the sake of the matra itself, not because of any clear cost-vs-benefit study.
I definitely agree with you here, so I think maybe we're not as far appart as it might have seemed. Seperation for seperation's sake just adds needless bloat to the code, makes it less efficient, and harder to maintain.
Where we may disagree is when deciding what abstractions are worthwhile. Typically, whenever you're hitting the database with a query or an update, what you're doing is implementing some kind of business logic. That logic might be "Give me all the people who have checked out books on a specific topic" or "Add a new book to our repository".
You may think that this logic will only be used on one page of your site, but if the site grows more complex, chances are there will be opportunities to reuse this code. At least, this has been my experience.
The user interface that calls this business logic and the way the results are presented are likely to be different in different contexts, so adding a level of abstraction at this point makes sense.
I have nothing against using subroutines etc. to put commonalities in a shared spot, but to do it *before* a commonality is identified is unnecessary cost. Many uses of SQL will be one-shot-deals.
The answer: it's a lot easier to write the code abstractly than it is to refactor it as an abstraction later down the line. When you have it hard coded into the presentation layer it's easy to lose track of the interface of the business logic.. to track down what variables are required, and ensure that none of the temporary variables are used later for side effects of the code. Also, if you've already written the abstraction, then that code has been tested correct. Rewriting it later will require addition testing.
Beyond that, it makes sense to keep the business logic together. What makes more sense.. 10 different php files representing different parts of your user interface, each containing 1/10th of the business logic that controls how books are processed at your library, or 1 file containing all the business logic for checking out, adding, removing, and reclassifying books?
Maybe you just didn't know how to use PHP frameworks or PHP right. I cannot tell without seeing actual code that allegedly went sour. Anecdotes point all ways.
It's certainly true that I haven't seen a PHP framework of the quality of Ruby on Rails. It hasn't been for lack of trying. What do you recommend?
I've also seen Rails code that explicitly loops over many SQL retreives instead of letting SQL do the join in one shot. This appeared to be because Rails does not natively "understand" joins, and so did a loop instead. (Perhaps they've since fixed it, I don't know.)
Fixed before the 1.0 release, and 1.1 makes it possible to much deeper joins and have all the objects populated correctly.
If you had the SQL close to where it was used, then you would only have *one* change spot instead of three. Separation has tripled the cost of change in this case.
You may end up changing three files instead of one file, but you are still changing exactly the same amount of code. And if you use the results of that one report in more than one spot in your site, you've actually saved yourself a lot of changes and a maintenance nightmare.
You might think you're saving time by hardcoding your sql with your presentation layer, but as your site gets larger and more complicated, it becomes more and more of a loss.
Perhaps your bad experience with MVC may come from the Java world where it is slow and painful to make changes to your code. Perhaps, like me, you gave up on Java for the php world where development is fun and fast, but tends to lack structure.
Finding Rails was amazing: MVC seperation for almost exactly the same amount of work as you would do for a php app. The same speed of development but code that is infinitely more maintainable.
We coded an ecommerce site for a client about 6 months ago. Last month, their in house programmer was able to go and repurpose the site with a completely different look and feel in 30 hours without breaking the functionality of the site. Without MVC seperation, this would have been impossible.
Wow, did you even read the article you linked to? Let me post the conclusion for you:
Conclusion
Legally, there is no difference between "fansubs" and "bootlegs". In the eyes of the law, both could be seen as damaging to the market. Regardless of whether or not a title has been technicaly licensed in North America, it is illegal. Lack of enforsement of copyright laws in terms of unlicensed fansubs maybe the result of several different factors. Some companies may believe that the early introduction of the title to North America is beneficial. Others may simply tolerate a "fan-activity" as long as it does not become too damaging to sales. And yet other companies may not want to or be able to invest the time and money necessary to prosecute foreign violations of their copyright.
In the end, regardless of ethics, or motive, fansubs are technicaly illegal.
One of my learning projects was porting a irc bot from java to OCaml. I went from an object oriented paradigm to a functional paradigm. Of course, you have to restructure the architecture, but at least the behavior of the program has been codified, and you don't have to think about it.
When I want to learn a new programming environment, I pick out a simple project that I have already written in a known environment and port it to the new system.
This lets you focus completely on the new environment and not get bogged down in (high level) design decisions. It also gives you an apples to apples comparison in possible strengths and weaknesses of the two systems. (although any first project is likely to miss out on some possible advantages.)
Ethernet is a local network protocol, and doesn't have much to do with the way you communicate across the internet. This will help anyone running more than one machine in a particular location.
Businesses will benefit, and users with more than one machine at home will benefit.
The new IPod nano comes in either black or white. Both colors have their good and bad points, but I would like to hear which one Slashdot readers recommend, and why.
I think a bunch of these in some systematic display would be pretty awesome. Maybe they pulse green slowly when things are good, and flash red when all hell is loose.
No, the pot smoker is right. Your brain is too small to absorb their goodness.
In their system there is no single "high reputation" metric. Everyone had a different reputation to each other. Three people, A, B and C. A may have a high reputation as far as B is concerned, but C thinks A has a low reputation.
They do this by grouping people who vote the same way. So you trust the people that vote like you do.
Assuming that you vote good files up and bad files down, you will be grouped with people who do the same. At some point, the spammers have to start voting differently than you do.. voting their spam up. This will distance them from your trust network, and cause you to value their opinion less.
Basically, when you're a counter-terrorist, you've got to remember to *guard the bomb site*. I know one guy who was passed over because, when the bomb was planted, he was jerking off over in T spawn. He had no idea which site to go to.
Also, practice with the Deagle/AWP combo until you've really got that down. All the high level comps are dominated by that crap.
Just keep practicing until the test. I'm sure that those [GRE] guys will let you join.
I just wish the strips were as good as they used to be. Last couple of years just haven't been the same.
Re:Why is this even a question anymore?
on
RockStar Speaks
·
· Score: 1
Hmm. I don't really think you know what you're talking about. I've actually worked as a programmer on a playstation game.
I see no reason that a sex minigame couldn't have been commented out (removing it from the distribution) without disturbing the rest of the code in any way.
It might be that the minigame would share apis with the rest of the project, but you're not commenting out the apis. You're just commenting out the code that controls the action during sex.
It's not like you're driving down the street, and the game suddenly crashes because the ass slapping code has been removed.
Re:Why is this even a question anymore?
on
RockStar Speaks
·
· Score: 1
Oh please. They put it on the disk to be found. If they had really wanted it not to go out, they could have commented out the content during the build.. not by putting some software switch in to disable it.
Basically, they knew this stuff would sell games. They also knew that it would cause an outrage and probably get them a more adult rating.
So they stick it on the disk, but don't enable it. Then they wait for someone to do that for them. Best of both worlds.. sex sells, but they can claim innocence.
(Don't take this the wrong way.. I'm a big GTO fan, and I think that sex content in an adult game is appropriate. But don't get taken in by their denials).
Why, when I was young we used to game sitting the swamp water up to our waists. If we needed to leave something to chance one of us would stand up, and we would count the leeches hanging off their legs. Less than 4 and you had made your saving throw.
Yes, it's hype, and yes, it's business. People get paid to go to these things and make decisions on what they're going to write about in their magazines, what they're going to stock on their shelves, what companies they plan to buy, what games they're going to publish.
When most industries were old boys clubs, the booth babe phenomenon was a lot more prevalent. As these industries became more integrated it fell by the wayside. From the original article, it sounds like it's starting to recede at E3 as well.
Puritanism? Naw. Just a recognition that not all of your audience are looking for tits and ass.
$ ocaml
/. 2.5;;
Objective Caml version 3.08.1
# (/.);;
- : float -> float -> float =
# 10.0
- : float = 4.
# List.fold_left (/.) 100.0 [2.0; 3.5; 1.5];;
- : float = 9.52380952380952372
That's exactly what we're going to do, Sir. Of course, we'll need initial investment to get our prototype into a production mode. But for a mere $10,000 American, we can guarentee you a hundred fold return on your investment.
;)
Please sign right here...
_ New Unbreakable Encryption Discovered, good as 1 time pad!
_ Nanotechnology breakthrough! Gray Goo any day now!
x Perpetual Motion discovered! Free energy for all. No really this time.
_ New compression method discovered! Your hard drive in 8 bytes!
This was pretty much what I was thinking. Getting a 1.0 version out the door is usually crazy up till the last moment. Hell, we go through hundreds of bug tracking issues (and fix them) in the last week of deploying a medium sized web site. I couldn't believe they were worried about a thousand requests on a major institution wide system.
I want to know which software project out there spends the last month changing icon colors.
Lister: Holly, what's the problem? You're supposed to have an IQ of 6000, aren't you?
Holly: Look, we're travelling faster than the speed of light. That means, by the time we see something, we've already passed through it. Even with an IQ of 6000, it's still brown trousers time.
Here's my current FPS fix:
http://www.dystopia-game.com/
Cyber-punk world. Assault a corporate office building with your team of mercenaries, escort your decker to a jack-in-point. Guard him while he battles in cyber-space to disable security systems, then advance to complete your objectives.
Or, if you're dressed in corporate blue... stop the punk mercs cold in their tracks.
Actually if you have an anti-spam product, then advertising it by spamming is the perfect strategy.
You'll only reach the customers that need your product.
It takes time to go to different spots. That is a cost. Finding the other spots often takes longer than changing code, at least for me. Also, it may be more code between of the code for the interface between the SQL and the method that uses it. If the SQL was where it is used, there is no interface, and thus no interface to change.
There is no denying this, it is a cost. But if your code is well organized, the cost is low.
"You might think you're saving time by hardcoding your sql with your presentation layer, but as your site gets larger and more complicated, it becomes more and more of a loss."
I have not seen scenarios that justify this claim.
Really? Then we've had different experiences.
Seperating everything that potentially can be separated does not magically make all stuff easier to work with. Some end up following mantra for the sake of the matra itself, not because of any clear cost-vs-benefit study.
I definitely agree with you here, so I think maybe we're not as far appart as it might have seemed. Seperation for seperation's sake just adds needless bloat to the code, makes it less efficient, and harder to maintain.
Where we may disagree is when deciding what abstractions are worthwhile. Typically, whenever you're hitting the database with a query or an update, what you're doing is implementing some kind of business logic. That logic might be "Give me all the people who have checked out books on a specific topic" or "Add a new book to our repository".
You may think that this logic will only be used on one page of your site, but if the site grows more complex, chances are there will be opportunities to reuse this code. At least, this has been my experience.
The user interface that calls this business logic and the way the results are presented are likely to be different in different contexts, so adding a level of abstraction at this point makes sense.
I have nothing against using subroutines etc. to put commonalities in a shared spot, but to do it *before* a commonality is identified is unnecessary cost. Many uses of SQL will be one-shot-deals.
The answer: it's a lot easier to write the code abstractly than it is to refactor it as an abstraction later down the line. When you have it hard coded into the presentation layer it's easy to lose track of the interface of the business logic.. to track down what variables are required, and ensure that none of the temporary variables are used later for side effects of the code. Also, if you've already written the abstraction, then that code has been tested correct. Rewriting it later will require addition testing.
Beyond that, it makes sense to keep the business logic together. What makes more sense.. 10 different php files representing different parts of your user interface, each containing 1/10th of the business logic that controls how books are processed at your library, or 1 file containing all the business logic for checking out, adding, removing, and reclassifying books?
Maybe you just didn't know how to use PHP frameworks or PHP right. I cannot tell without seeing actual code that allegedly went sour. Anecdotes point all ways.
It's certainly true that I haven't seen a PHP framework of the quality of Ruby on Rails. It hasn't been for lack of trying. What do you recommend?
I've also seen Rails code that explicitly loops over many SQL retreives instead of letting SQL do the join in one shot. This appeared to be because Rails does not natively "understand" joins, and so did a loop instead. (Perhaps they've since fixed it, I don't know.)
Fixed before the 1.0 release, and 1.1 makes it possible to much deeper joins and have all the objects populated correctly.
If you had the SQL close to where it was used, then you would only have *one* change spot instead of three. Separation has tripled the cost of change in this case.
You may end up changing three files instead of one file, but you are still changing exactly the same amount of code. And if you use the results of that one report in more than one spot in your site, you've actually saved yourself a lot of changes and a maintenance nightmare.
You might think you're saving time by hardcoding your sql with your presentation layer, but as your site gets larger and more complicated, it becomes more and more of a loss.
Perhaps your bad experience with MVC may come from the Java world where it is slow and painful to make changes to your code. Perhaps, like me, you gave up on Java for the php world where development is fun and fast, but tends to lack structure.
Finding Rails was amazing: MVC seperation for almost exactly the same amount of work as you would do for a php app. The same speed of development but code that is infinitely more maintainable.
We coded an ecommerce site for a client about 6 months ago. Last month, their in house programmer was able to go and repurpose the site with a completely different look and feel in 30 hours without breaking the functionality of the site. Without MVC seperation, this would have been impossible.
SCIENTIST 1
Ah, Gordon, here you are. We just sent the sample down to the Test Chamber.
SCIENTIST 2
We've boosted the antimass spectrometer to 105 percent. Bit of a gamble, but we need the extra resolution.
SCIENTIST 3
The Administrator is very concerned that we get a conclusive analysis of today's sample. I gather they went to some lengths to get it.
SCIENTIST 1
They're waiting for you, Gordon. In the Test Chamber.
I disagree.
One of my learning projects was porting a irc bot from java to OCaml. I went from an object oriented paradigm to a functional paradigm. Of course, you have to restructure the architecture, but at least the behavior of the program has been codified, and you don't have to think about it.
When I want to learn a new programming environment, I pick out a simple project that I have already written in a known environment and port it to the new system.
This lets you focus completely on the new environment and not get bogged down in (high level) design decisions. It also gives you an apples to apples comparison in possible strengths and weaknesses of the two systems. (although any first project is likely to miss out on some possible advantages.)
He's the paper's author, and he's modded at one right now.
Ethernet is a local network protocol, and doesn't have much to do with the way you communicate across the internet. This will help anyone running more than one machine in a particular location.
Businesses will benefit, and users with more than one machine at home will benefit.
Dear Slashdot,
The new IPod nano comes in either black or white. Both colors have their good and bad points, but I would like to hear which one Slashdot readers recommend, and why.
I think a bunch of these in some systematic display would be pretty awesome. Maybe they pulse green slowly when things are good, and flash red when all hell is loose.
No, the pot smoker is right. Your brain is too small to absorb their goodness.
In their system there is no single "high reputation" metric. Everyone had a different reputation to each other. Three people, A, B and C. A may have a high reputation as far as B is concerned, but C thinks A has a low reputation.
They do this by grouping people who vote the same way. So you trust the people that vote like you do.
Assuming that you vote good files up and bad files down, you will be grouped with people who do the same. At some point, the spammers have to start voting differently than you do.. voting their spam up. This will distance them from your trust network, and cause you to value their opinion less.
Basically, when you're a counter-terrorist, you've got to remember to *guard the bomb site*. I know one guy who was passed over because, when the bomb was planted, he was jerking off over in T spawn. He had no idea which site to go to.
Also, practice with the Deagle/AWP combo until you've really got that down. All the high level comps are dominated by that crap.
Just keep practicing until the test. I'm sure that those [GRE] guys will let you join.
Good luck!
I just wish the strips were as good as they used to be. Last couple of years just haven't been the same.
Hmm. I don't really think you know what you're talking about. I've actually worked as a programmer on a playstation game.
I see no reason that a sex minigame couldn't have been commented out (removing it from the distribution) without disturbing the rest of the code in any way.
It might be that the minigame would share apis with the rest of the project, but you're not commenting out the apis. You're just commenting out the code that controls the action during sex.
It's not like you're driving down the street, and the game suddenly crashes because the ass slapping code has been removed.
Oh please. They put it on the disk to be found. If they had really wanted it not to go out, they could have commented out the content during the build.. not by putting some software switch in to disable it.
Basically, they knew this stuff would sell games. They also knew that it would cause an outrage and probably get them a more adult rating.
So they stick it on the disk, but don't enable it. Then they wait for someone to do that for them. Best of both worlds.. sex sells, but they can claim innocence.
(Don't take this the wrong way.. I'm a big GTO fan, and I think that sex content in an adult game is appropriate. But don't get taken in by their denials).
You had a ten-sided die? Luxury!
Why, when I was young we used to game sitting the swamp water up to our waists. If we needed to leave something to chance one of us would stand up, and we would count the leeches hanging off their legs. Less than 4 and you had made your saving throw.
Dice. Geez....
Just once I'd like to play a game with female lead character that doesn't make my neighbors think I'm watching porn when I press the jump key.
Yes, it's hype, and yes, it's business. People get paid to go to these things and make decisions on what they're going to write about in their magazines, what they're going to stock on their shelves, what companies they plan to buy, what games they're going to publish.
When most industries were old boys clubs, the booth babe phenomenon was a lot more prevalent. As these industries became more integrated it fell by the wayside. From the original article, it sounds like it's starting to recede at E3 as well.
Puritanism? Naw. Just a recognition that not all of your audience are looking for tits and ass.