3) They have a hiring problem. If a company is forcing their employees to do 16 hour days they really are trying to do all the work with half the people they need.
It doesn't work that way. I suggest you read the Mythical Man Month.
That being said, I think they most likely do have a hiring problem. How the hell are you supposed to sharpen your saw when you work 80 hour weeks?
Is the quality of a game and the morale of the team worth sacrificing to deliver the product on its arbitrarily chosen completion date?
Re:There you go again!
on
Twitter On Scala
·
· Score: 4, Informative
Jane Q. Public: Either you didn't read the comments of that blog or you're spreading FUD. Here is a comment from Alex Payne from that article:
Hoo boy. First of all, I hope you've had a chance to read my general reply to the articles about my Web 2.0 Expo talk [1] and this response to a vocal member of the Ruby community [2]. I sound like a pretty unreasonable guy filtered through the tech press and Reddit comments, but I hope less so in my own words.
Secondly, the quote at the top of your post is from my coworker, Steve Jenson, who's been participating in the discussion on this post.
On JRuby: as Steve said, we can't actually boot our main Rails app on JRuby. That's a blocker. Incidentally, if you know of anyone who has a large JRuby deployment, we'd be interested in that first-hand experience. If you don't, it might be a little early to say it would solve all our problems.
It's also incorrect to say that the way JRuby and Scala make use of the JVM is exactly the same. Much like our other decisions haven't been arbitrary, our decision to use Scala over other JVM-hosted languages was based on investigation.
On our culture: if you'd like to know about how we write code, or how our code has evolved over time, just ask us. We're all on Twitter, of course, but most of the engineers also have blogs and publish their email addresses. There's no need to speculate. Just ask. There's not a "raging debate" internally because we make our engineering decisions like engineers: we experiment, and base our decisions on the results of those experiments.
It's definitely true that Starling and Evented Starling are relatively immature queuing systems. I was eager to get them out of our stack. So, as Steve said, we put all the MQ's you think we'd try through their paces not too long ago, and we knocked one after another over in straightforward benchmarks. Some, like RabbitMQ, just up and died. Others chugged on, but slowly. Where we ran into issues, we contacted experts and applied best practices, but in the end, we found that Kestrel fit our particular use cases better and more reliably. This was not the hypothesis we had going into those benchmarks, but it's what the data bore out.
We get a lot of speculation to the tune of "why haven't those idiots tried x, it's so obvious!" Generally, we have tried x, as well as y and z. Funnily enough, I was actually pushing to get us on RabbitMQ, but our benchmarks showed that it just wouldn't work for us, which is a shame, because it advertises some sexy features.
Personally, I'm extremely NIH-averse; I research open source and commercial solutions before cutting a new path. In the case of our MQ, one of our engineers actually wrote Kestrel in his free time, so it was bit more like we adopted an existing open source project than rolled our own. Pretty much the last thing we want to be doing is focusing on problems outside our domain. As it so happens, though, moving messages around quickly is our business. I don't think it's crazy-go-nuts that we've spent some time on an MQ.
I hope my colleagues and I have been able to answer some of your questions. As I said, in the future, please consider emailing us so we can share our experience. Then, we can have a public discussion about facts, not speculation. Perhaps, as commenter sethladd suggested, the onus is on us to produce a whitepaper or presentation about our findings so as to stave off such speculation. Time constraints are the main reason why we haven't done so.
This blog post takes the attitude that Twitter didn't move to Scala because ROR had a problem, but because the in-house messaging system Twitter created performed poorly. The author does not work at Twitter but many of the Twitter developers (including Alex Payne) respond in the comments. I found the article to be very interesting and the comments even more so. They give a sense of how much research Twitter did before this change.
Be aware that these are the features VS is missing that Intellij IDEA (a java IDE) comes with out of the box. And when you're done with that, you can head over to the Intellij IDEA feature list to see what it has over ReSharper: http://www.jetbrains.com/idea/features/index.html
Please, show me your list of what VS has over Intellij IDEA. I'll settle for what it has over Eclipse. I really, really, really want to see this list. I ask in every slashdot thread where someone gets modded up for comments like this.
PS: Yes, I'm aware these two tools are made by the same company.
To me it makes a lot more sense to write 100% of your program in, say, Perl. (s/Perl/Python/g or s/Perl/Ruby/g is that's what turns your crank.) You pull in some CPAN libraries, many of which have the time-critical stuff written in C for good performance, but you don't have to touch the C. If there does turn out to be some very time-critical loop that you really want to optimize, and it's not something generic that's available in CPAN, then you write it in C and interface it to your Perl program. You end up writing 99.9% of your own code in a nice high-level language, and 0.1% in a crufty low-level language, and you get good performance.
How much slower is it going to be in Javascript? Is it so slow that the average linux user is going to notice? If not, I think you're preoptimizing.
FYI, Java has a JS interpreter called Rhino and it lets you compile the JS into.class files for performance improvements. You can read about it here: http://www.mozilla.org/rhino/jsc.html Perhaps the same could happen with these linux applications.
Re:Is it professional to cheat your boss?
on
Clean Code
·
· Score: 1
Over and over I see developers offering to write unmaintainable garbage, only to get in hot water in a year's time because productivity is in the toilet. It's not even fun the first time, but people keep on doing it. They should stop.
But, as was said in that interview, the problem is convincing the "Developer Managers". You end up competing with people who use the Bait and Switch technique: They claim they can produce code faster and cheaper than you, but really, it's unmaintainable. We need to convince our managers that by saying no, we're doing them a favor.
Some people don't know why Half-Life was such a great game and why Oblivion was so disappointing.
I actually liked Oblivion a lot. Did it not sell well?
I'm the type of gamer that likes to play the game that was given to me. As such, I rarely use mods unless they're produced by the same company that made the game. Often, I think game companies use mods as a way to not balance a game. For example, in Morrowind, there were too many damn birds. Instead of Bestheda (sp?) creating a patch, they just let someone else create a mod.
I totally agree with you. But Stripes (a java web framework) is really simple and easy to work with. If you read it's getting started article (3 pages) you'll already understand 60% of how the framework works. It's the best web framework I've worked with.
One thing that slightly concerns me is the possibility of a billion Java forks. I don't want to have to download a special JRE for every Java app.
There's a lot of features I've wanted for a very long time. For example: Parameters/local variables to default to final. Instance variables to default to @NotNull (it's an error to set them to null and it throws an exception the instant you do). The switch statement (which I almost never use) to accept a String. Getting rid of type Erasure (I know this exists for backwards compatibility). Lambda functions (I hear they'll be in the official version soon). And so on...
If someone came up with a fork with all these neat features, I might be tempted to use it. But, I worry about the schism this would cause. At this point someone will probably inform me that I'm an idiot and that possibility has always existed:)
IMO, this is the second best MGS game. I really enjoyed it. But here are some complaints: -some cutscenes near the end are ridiculously long. I'm talking 1.5 hours. I found myself day dreaming a few times and then realized, "Shit, I just missed something important". Normally I'd restart, but if you have to wait 45 minutes to get back to that key part, no way you're going to do that. -I think the story will be incomprehensible if you haven't played the other games. I *have* played them all and still found myself lost a lot of the time. One of the problems with the MGS story is that every person has 2+ names (otacon/hal, big boss/naked snake, raiden/jack, etc.). Imagine trying to figure these things out without a proper introduction. -Personally, I don't like the effect the shop had on the game. Every time you kill someone, they drop their weapon and you sell it. You can use these funds to buy new weapons. It turns MGS into a shoot-em-up and that's not really what I expected/wanted when I bought the game. Also, after playing the whole way through, the whole thing seems pointless: I easily could have beaten the game with the first semi-automatic weapon I found. I'd prefer the challenge of trying to sneak around. -The bosses have a predictable and silly pattern to them. 1) They yell some stupid phrase over and over 2) you kill them 3) they have a monologue filled with terrible dialog and acting 4) you kill them again 5) you get their weapon and 6) their back-story. I will say that step 3) isn't as bad as it was in MGS3, not that that's a big accomplishment. -I don't know if it was bad acting, direction or dialog, but I felt *nothing* in the scenes that were supposed to be touching. Maybe it's because I'm too old (30s). Perhaps teens and tweeners will be moved more than I was. -I've only played the online a bit, but it's a pain to get started (you need to fill out this annoying form). What I've played didn't immediately impress me like Call Of Duty 4 did. Perhaps it'll win me over eventually.
That being said, I thought it was the second best MGS game. I could talk about what I liked, but that's a lot less interesting. I'm sure someone else will do that anyway.
http://www.imeem.com/ - Like youtube, but for music I guess. It has a lot of good playlists, even for my doom metal tastes.
imeem's user interface sucks: Get your back button ready, you'll be using it a lot. Even if there is a way to listen to things without having to go to a specific page, the UI still sucks because it isn't immediately obvious to me how to do it.
A really good music website is http://www.thesixtyone.com/ Their selection of music is very tiny, but the UI is amazing. You can play any song without having to load a new page. When you're listening to one song, you can visit other pages and even search without the music stopping. After you get used to this UI, you'll wish youtube worked the same way.
Okay. You've got an application on your hands that won't fit into memory.
I've been working with Java for 3 years and that's never happened to me. And I've worked on applications that need to load 5 gigs of data into a database daily (I don't have 5 gigs of ram). I think it'd be moronic to pro-actively learn C or C++ because this situation may come up some day. There ARE valid reason to learn C/C++, this isn't one of them. The solution to this problem is to use a profiler and discover the cause. You don't ASSUME it's your list that's causing it. You could spend 5 hours reducing the size of it and then realize later that you have a memory leak (which is possible even in Java).
If you've got some exposure to the bare metal, these are questions you will already have considered
I believe they call that pre-optimization. You know what they say about pre-optimization don't you? Here's a hint: It's bad.
IMHO any self respecting programmer needs to at least KNOW how to operate close to the metal, if only so it makes them a better coder at the higher levels.
Everyone says this but I've never seen anyone explain why. I'm going to believe it's wrong until someone actually chooses to elaborate. For the past 3 years I've been programming in Java and not once have I been faced with a problem and thought, "If I just remembered what I used to know about Assembly/C/C++, this would be trivial". If you can go 3 years without needing to know how to operate close to the "metal" it can't be that important for a Java programmer.
If you are upset enough over compensation to leave, then leave. Don't play offer/counter offer games which will end with you ultimately leaving because you look like an opportunist. If you want to be an opportunist, just threaten to leave during a critical part of a project. You can evoke the same offer, only faster.
no, actually that is very bad advice. Once a company offering a job knows that you're not employed, they know you NEED the position or else you can't eat. Now they know they don't have to offer you as much money to convince you to take the job. And on top of all of this, it may take you a month or two to find a job that you consider better than your current situation. It's better to be paid until then.
>The problem is that many college students see college as a way to make more MONEY first and the love of learning about something SECOND (if at all).
I don't think this is as black and white as you're making it out to be. College forced me to learn things like poetry, english and math that I may not have learned on my own. I'm thankful for the opportunity. On the other hand, I think I learned more in 6 months of working than I did from 4 years of college (I'm a software engineer). Certainly, work did not teach me a wide variety of things, but the density of knowledge I gained related to software engineering can't be compared. So you can learn a lot more out of college too, it just depends on the kind of knowledge you want.
>The community has been very vocal that they DON'T want that feature.
Hopefully this will inform the others that VS 2005 does support this feature. I swear, every other reply to my post has been saying, "VS does support it and has for 8 years". To the rest of you; no it doesn't. You're either confused about what we're talking about or very unobservant.
>VB.net has been plagued with problems related to the "on the fly" compliation and letting you change code while the program is running.
NO NO NO! Not while the program is running. That is not what I want (unless I'm in debug mode, that can be useful). I simply want to see my errors as soon as I make them. I can see from your following comments that you did understand me, but I think this sentence will confuse others as to what I'm asking for.
>I don't want to type, fix, type fix. I'd rather get the implementation done and then compile to see if I messed up any syntax.
I respect that. And you should respect that I want to type, fix, type, fix. And more importantly, so should MS. They should make it a feature that you can turn off.
>It seems though that between Intellisense and automatic code formatting that I catch most syntax errors anyway. Forget a ; or closing brace somewhere, and watch the formatter screw everything up. Fix the syntax error and reformat, and everything is right again.
Right, it was a trivial example of the bigger picture. If you look at the features of resharper, you'll see that VS is like notepad compared to what other modern IDEs can do.
>I'm not sure how Eclipse manages to get away with this, but it certainly seems to slow things down quite a bit. I can remote desktop to my home computer and use VS2005/8 and notice no more lag than when typign in Notepad, but Eclipse will grind to a halt at times, not to mention having to force it to do it's Intelisense equivolent by hitting ctrl+space.
Perhaps that has something to do with you remoting. Perhaps that has something to do with the size of the project. Perhaps the ctrl+space thing is a property you can change. Perhaps just eclipse is slow. If you were programming in java, you should take a look at Intellij IDEA. I can almost guarantee it won't slow down in these situations. I've always felt that VS was one of the slower IDEs I've used, while at the same time supporting the least number of basic features.
3) They have a hiring problem. If a company is forcing their employees to do 16 hour days they really are trying to do all the work with half the people they need.
It doesn't work that way. I suggest you read the Mythical Man Month.
That being said, I think they most likely do have a hiring problem. How the hell are you supposed to sharpen your saw when you work 80 hour weeks?
Is the quality of a game and the morale of the team worth sacrificing to deliver the product on its arbitrarily chosen completion date?
Jane Q. Public: Either you didn't read the comments of that blog or you're spreading FUD. Here is a comment from Alex Payne from that article:
Hoo boy. First of all, I hope you've had a chance to read my general reply to the articles about my Web 2.0 Expo talk [1] and this response to a vocal member of the Ruby community [2]. I sound like a pretty unreasonable guy filtered through the tech press and Reddit comments, but I hope less so in my own words.
Secondly, the quote at the top of your post is from my coworker, Steve Jenson, who's been participating in the discussion on this post.
On JRuby: as Steve said, we can't actually boot our main Rails app on JRuby. That's a blocker. Incidentally, if you know of anyone who has a large JRuby deployment, we'd be interested in that first-hand experience. If you don't, it might be a little early to say it would solve all our problems.
It's also incorrect to say that the way JRuby and Scala make use of the JVM is exactly the same. Much like our other decisions haven't been arbitrary, our decision to use Scala over other JVM-hosted languages was based on investigation.
On our culture: if you'd like to know about how we write code, or how our code has evolved over time, just ask us. We're all on Twitter, of course, but most of the engineers also have blogs and publish their email addresses. There's no need to speculate. Just ask. There's not a "raging debate" internally because we make our engineering decisions like engineers: we experiment, and base our decisions on the results of those experiments.
It's definitely true that Starling and Evented Starling are relatively immature queuing systems. I was eager to get them out of our stack. So, as Steve said, we put all the MQ's you think we'd try through their paces not too long ago, and we knocked one after another over in straightforward benchmarks. Some, like RabbitMQ, just up and died. Others chugged on, but slowly. Where we ran into issues, we contacted experts and applied best practices, but in the end, we found that Kestrel fit our particular use cases better and more reliably. This was not the hypothesis we had going into those benchmarks, but it's what the data bore out.
We get a lot of speculation to the tune of "why haven't those idiots tried x, it's so obvious!" Generally, we have tried x, as well as y and z. Funnily enough, I was actually pushing to get us on RabbitMQ, but our benchmarks showed that it just wouldn't work for us, which is a shame, because it advertises some sexy features.
Personally, I'm extremely NIH-averse; I research open source and commercial solutions before cutting a new path. In the case of our MQ, one of our engineers actually wrote Kestrel in his free time, so it was bit more like we adopted an existing open source project than rolled our own. Pretty much the last thing we want to be doing is focusing on problems outside our domain. As it so happens, though, moving messages around quickly is our business. I don't think it's crazy-go-nuts that we've spent some time on an MQ.
I hope my colleagues and I have been able to answer some of your questions. As I said, in the future, please consider emailing us so we can share our experience. Then, we can have a public discussion about facts, not speculation. Perhaps, as commenter sethladd suggested, the onus is on us to produce a whitepaper or presentation about our findings so as to stave off such speculation. Time constraints are the main reason why we haven't done so.
[1] http://al3x.net/2009/04/04/reasoned-technical-discussion.html
[2] http://blog.obiefernandez.com/content/2009/04/my-reasoned-response-about-scala-at-twitter.html#IDComment18212539
This begs the question: Why aren't there more open source game artists?
http://unlimitednovelty.com/2009/04/twitter-blaming-ruby-for-their-mistakes.html
This blog post takes the attitude that Twitter didn't move to Scala because ROR had a problem, but because the in-house messaging system Twitter created performed poorly. The author does not work at Twitter but many of the Twitter developers (including Alex Payne) respond in the comments. I found the article to be very interesting and the comments even more so. They give a sense of how much research Twitter did before this change.
Java IDE's don't compete with Visual Studio
Um, excuse me sir but I call shenanigans on that. And unlike you, I actually have a source. Here is a list of the VS ReSharper plugin compared to plain VS: http://www.jetbrains.com/resharper/features/ComparisonMatrix_R4.html
Be aware that these are the features VS is missing that Intellij IDEA (a java IDE) comes with out of the box. And when you're done with that, you can head over to the Intellij IDEA feature list to see what it has over ReSharper: http://www.jetbrains.com/idea/features/index.html
Please, show me your list of what VS has over Intellij IDEA. I'll settle for what it has over Eclipse. I really, really, really want to see this list. I ask in every slashdot thread where someone gets modded up for comments like this.
PS: Yes, I'm aware these two tools are made by the same company.
...and as such, anything that would spoil a book/movie would spoil a game.
We receive hundreds of MRIs per month... It's not exactly cheap though, but then we're not downloading porn torrents...
You need to get your priorities straight.
How much slower is it going to be in Javascript? Is it so slow that the average linux user is going to notice? If not, I think you're preoptimizing.
FYI, Java has a JS interpreter called Rhino and it lets you compile the JS into .class files for performance improvements. You can read about it here: http://www.mozilla.org/rhino/jsc.html Perhaps the same could happen with these linux applications.
Over and over I see developers offering to write unmaintainable garbage, only to get in hot water in a year's time because productivity is in the toilet. It's not even fun the first time, but people keep on doing it. They should stop.
But, as was said in that interview, the problem is convincing the "Developer Managers". You end up competing with people who use the Bait and Switch technique: They claim they can produce code faster and cheaper than you, but really, it's unmaintainable. We need to convince our managers that by saying no, we're doing them a favor.
Some people don't know why Half-Life was such a great game and why Oblivion was so disappointing.
I actually liked Oblivion a lot. Did it not sell well?
I'm the type of gamer that likes to play the game that was given to me. As such, I rarely use mods unless they're produced by the same company that made the game. Often, I think game companies use mods as a way to not balance a game. For example, in Morrowind, there were too many damn birds. Instead of Bestheda (sp?) creating a patch, they just let someone else create a mod.
Well I do it cause I was taught to do so. If there's an obstruction on the other side, I want to slow down a bit so I have a chance of avoiding it.
...he's leaving to work on Python.
If he's smart, he'll fork it and call it Monty's Python. Wakka wakka.
I totally agree with you. But Stripes (a java web framework) is really simple and easy to work with. If you read it's getting started article (3 pages) you'll already understand 60% of how the framework works. It's the best web framework I've worked with.
http://www.stripesframework.org/
One thing that slightly concerns me is the possibility of a billion Java forks. I don't want to have to download a special JRE for every Java app.
There's a lot of features I've wanted for a very long time. For example: Parameters/local variables to default to final. Instance variables to default to @NotNull (it's an error to set them to null and it throws an exception the instant you do). The switch statement (which I almost never use) to accept a String. Getting rid of type Erasure (I know this exists for backwards compatibility). Lambda functions (I hear they'll be in the official version soon). And so on...
If someone came up with a fork with all these neat features, I might be tempted to use it. But, I worry about the schism this would cause. At this point someone will probably inform me that I'm an idiot and that possibility has always existed :)
-minor spoilers-
-minor spoilers-
-minor spoilers-
IMO, this is the second best MGS game. I really enjoyed it. But here are some complaints:
-some cutscenes near the end are ridiculously long. I'm talking 1.5 hours. I found myself day dreaming a few times and then realized, "Shit, I just missed something important". Normally I'd restart, but if you have to wait 45 minutes to get back to that key part, no way you're going to do that.
-I think the story will be incomprehensible if you haven't played the other games. I *have* played them all and still found myself lost a lot of the time. One of the problems with the MGS story is that every person has 2+ names (otacon/hal, big boss/naked snake, raiden/jack, etc.). Imagine trying to figure these things out without a proper introduction.
-Personally, I don't like the effect the shop had on the game. Every time you kill someone, they drop their weapon and you sell it. You can use these funds to buy new weapons. It turns MGS into a shoot-em-up and that's not really what I expected/wanted when I bought the game. Also, after playing the whole way through, the whole thing seems pointless: I easily could have beaten the game with the first semi-automatic weapon I found. I'd prefer the challenge of trying to sneak around.
-The bosses have a predictable and silly pattern to them. 1) They yell some stupid phrase over and over 2) you kill them 3) they have a monologue filled with terrible dialog and acting 4) you kill them again 5) you get their weapon and 6) their back-story. I will say that step 3) isn't as bad as it was in MGS3, not that that's a big accomplishment.
-I don't know if it was bad acting, direction or dialog, but I felt *nothing* in the scenes that were supposed to be touching. Maybe it's because I'm too old (30s). Perhaps teens and tweeners will be moved more than I was.
-I've only played the online a bit, but it's a pain to get started (you need to fill out this annoying form). What I've played didn't immediately impress me like Call Of Duty 4 did. Perhaps it'll win me over eventually.
That being said, I thought it was the second best MGS game. I could talk about what I liked, but that's a lot less interesting. I'm sure someone else will do that anyway.
A really good music website is http://www.thesixtyone.com/ Their selection of music is very tiny, but the UI is amazing. You can play any song without having to load a new page. When you're listening to one song, you can visit other pages and even search without the music stopping. After you get used to this UI, you'll wish youtube worked the same way.
...welcome our new Dear aunt, Let's set so double the killer delete select all
Does this create a maintenance nightmare? As other replies have said, if there's a bug in one place, you gotta fix it in two places now.
My question to you is why did older generations deal with it? Did they have more to gain or were they just suckers?
>The problem is that many college students see college as a way to make more MONEY first and the love of learning about something SECOND (if at all).
I don't think this is as black and white as you're making it out to be. College forced me to learn things like poetry, english and math that I may not have learned on my own. I'm thankful for the opportunity. On the other hand, I think I learned more in 6 months of working than I did from 4 years of college (I'm a software engineer). Certainly, work did not teach me a wide variety of things, but the density of knowledge I gained related to software engineering can't be compared. So you can learn a lot more out of college too, it just depends on the kind of knowledge you want.
never take diet advice from a fast food CEO
>The community has been very vocal that they DON'T want that feature.
Hopefully this will inform the others that VS 2005 does support this feature. I swear, every other reply to my post has been saying, "VS does support it and has for 8 years". To the rest of you; no it doesn't. You're either confused about what we're talking about or very unobservant.
>VB.net has been plagued with problems related to the "on the fly" compliation and letting you change code while the program is running.
NO NO NO! Not while the program is running. That is not what I want (unless I'm in debug mode, that can be useful). I simply want to see my errors as soon as I make them. I can see from your following comments that you did understand me, but I think this sentence will confuse others as to what I'm asking for.
>I don't want to type, fix, type fix. I'd rather get the implementation done and then compile to see if I messed up any syntax.
I respect that. And you should respect that I want to type, fix, type, fix. And more importantly, so should MS. They should make it a feature that you can turn off.
>It seems though that between Intellisense and automatic code formatting that I catch most syntax errors anyway. Forget a ; or closing brace somewhere, and watch the formatter screw everything up. Fix the syntax error and reformat, and everything is right again.
Right, it was a trivial example of the bigger picture. If you look at the features of resharper, you'll see that VS is like notepad compared to what other modern IDEs can do.
>I'm not sure how Eclipse manages to get away with this, but it certainly seems to slow things down quite a bit. I can remote desktop to my home computer and use VS2005/8 and notice no more lag than when typign in Notepad, but Eclipse will grind to a halt at times, not to mention having to force it to do it's Intelisense equivolent by hitting ctrl+space.
Perhaps that has something to do with you remoting. Perhaps that has something to do with the size of the project. Perhaps the ctrl+space thing is a property you can change. Perhaps just eclipse is slow. If you were programming in java, you should take a look at Intellij IDEA. I can almost guarantee it won't slow down in these situations. I've always felt that VS was one of the slower IDEs I've used, while at the same time supporting the least number of basic features.