I completely agree. It almost seems ironic, a developer missing the generalization, abstraction, and elegance. This is like someone modifying "All the world's a stage, And all the men and women merely players" to explicitly include YouTube.
Here here, well said. An equally striking contrast can be made with Pentagon projects that almost always fail and have astronomical price tags. I am always astounded when anyone talks of targeting the NSF or various welfare projects for reduction. Not so much because I believe they should be unquestioningly funded, but because, compared to what we spend on defense, their budgets are a roundoff error.
Slashdot has become so anti-MS at this point that it isn't really worth reading MS related comments anymore. I'm an avid Linux user and the reality is that silverlight (and.net/wpf) are pretty nice technologies. Browsers are being asked to do a lot more than was ever intended. Do really imagine that RIAs are poisoning the pool or is it more that this is coming out of Redmond?
I have extensive experience using Qt under both linux and windows (5+ years), as well as WinForms. However, for the last year I've been using WPF and I think it's a dream. Granted, there are cons to it and if your bottom line is performance in all situations (e.g. this is a game) then I would avoid it. They talk a big game about high object counts, but it requires extensive virtualization and time and then it still might not work depending on what you're trying to do. That being said, WPF's use of binding is fantastic and if you do a little bit of homework on binding I think you'll be pleasantly surprised. Don't get me wrong, I love Qt (and C++ for that matter!). But for the amount of stuff I need to crank out, it's tough to beat WPF. One last caveat: I wouldn't count on Mono to bring your apps to linux. I've only spent a little time with mono, but unfortunately (in my opinion), the linux community seems to have largely shunned C#,.NET and all that goes with it.
I sincerely hope your "client" is not the US Government. The number of contractors I have seen build "CSI" control rooms to try to impress their government counterparts is incredible. Typically these control rooms control very little, or at least, very little worthwhile. At any rate, I would give the advice: form follows function.
Yeah, don't even get me started on #20. The number of incompetent java developers I have to put up with. Meanwhile we have a superb C# shop that puts out ten fold the product and quality. This list is worse than a strict religious ideology. Someone that feels this strongly about any technology has no place being an engineer. Engineering and programing are about balance - the right tool for the the right problem.
A well-known scientist (some say it was Bertrand Russell) once gave a public lecture on astronomy. He described how the earth orbits around the sun and how the sun, in turn, orbits around the center of a vast collection of stars called our galaxy. At the end of the lecture, a little old lady at the back of the room got up and said: "What you have told us is rubbish. The world is really a flat plate supported on the back of a giant tortoise." The scientist gave a superior smile before replying, "What is the tortoise standing on?" "You're very clever, young man, very clever", said the old lady. "But it's turtles all the way down!"
It's funny, a lot of the examples you see on MSDN and similar are often not very commented. I'm not saying this always produces readable code, but as the examples are "at the correct level", it tends to be quite readable. If you abstract things well, it does seem to make for very readable code. Maybe I'm guilty of too much hubris regarding my own programming, but when I go back years later and read old code I usually find one of two things to be true: either I have trouble reading it and almost immediately see a better way of organizing it that would help. Or, I can read it just fine. But rarely do I find that comments make the difference. In my mind the argument is analogous to procedural documentation. In one system where I work there are hundreds of pages on deployment procedures. In ours we managed to automate 99% of the process. Which would you rather have? Don't explain what can simply be encoded and factored away. People who argue against tools like intellisense might as well be arguing against higher-level languages. Of course there has to be a balance, but these tools exist for a reason. We can't write in machine code from now until the end of time - we have to be more efficient and more productive than we were before.
Aren't you just on the other extreme here? It sounds like TFA is almost completely against comments, and you're saying that we should comment as though we're always writing the weapons control system for an F-22. Isn't the real answer almost always somewhere in the middle?
This is wrong. If you know that the underlying plaintext is the same as anything else, information is being leaked. If someone can deduce anything about the underlying data, then you've screwed up your crypto. This is the intent of initialization vectors; to decorrelate the underlying plaintext.
Actually, it's easier than that.:) Model with 1x1 blocks on the first pass, using standard interpolation limiting to your available palette colors, then combine horizontally adjacent blocks with the same color as 1xN blocks according to availability.
The major algorithmic difference is that lego blocks are not [always] square, and figuring out which combination of sizes to use to cover an arbitrarily shaped block of color is NP-Hard. What he has done here is seriously impressive.
FTA: "So the Java program runs for about ten hours for each image..."
Ok, so impressive yes. Still, can't help but wonder if c++ could have helped here...
http://www.venganza.org/about/open-letter/
I completely agree. It almost seems ironic, a developer missing the generalization, abstraction, and elegance. This is like someone modifying "All the world's a stage, And all the men and women merely players" to explicitly include YouTube.
There actually is a company in the Langley area called Counter Intelligence that does this. You occasionally see their van driving around.
Sorry, here here should be hear hear :\
Here here, well said. An equally striking contrast can be made with Pentagon projects that almost always fail and have astronomical price tags. I am always astounded when anyone talks of targeting the NSF or various welfare projects for reduction. Not so much because I believe they should be unquestioningly funded, but because, compared to what we spend on defense, their budgets are a roundoff error.
Slashdot has become so anti-MS at this point that it isn't really worth reading MS related comments anymore. I'm an avid Linux user and the reality is that silverlight (and .net/wpf) are pretty nice technologies. Browsers are being asked to do a lot more than was ever intended. Do really imagine that RIAs are poisoning the pool or is it more that this is coming out of Redmond?
I have extensive experience using Qt under both linux and windows (5+ years), as well as WinForms. However, for the last year I've been using WPF and I think it's a dream. Granted, there are cons to it and if your bottom line is performance in all situations (e.g. this is a game) then I would avoid it. They talk a big game about high object counts, but it requires extensive virtualization and time and then it still might not work depending on what you're trying to do. That being said, WPF's use of binding is fantastic and if you do a little bit of homework on binding I think you'll be pleasantly surprised. Don't get me wrong, I love Qt (and C++ for that matter!). But for the amount of stuff I need to crank out, it's tough to beat WPF. One last caveat: I wouldn't count on Mono to bring your apps to linux. I've only spent a little time with mono, but unfortunately (in my opinion), the linux community seems to have largely shunned C#, .NET and all that goes with it.
If you mean the WOPR, then yes :)
I sincerely hope your "client" is not the US Government. The number of contractors I have seen build "CSI" control rooms to try to impress their government counterparts is incredible. Typically these control rooms control very little, or at least, very little worthwhile. At any rate, I would give the advice: form follows function.
I agree...I'm no expert but I feel like linq is doing for C# what the STL did for C++. Minus the horrendous compiler errors :).
Yeah, don't even get me started on #20. The number of incompetent java developers I have to put up with. Meanwhile we have a superb C# shop that puts out ten fold the product and quality. This list is worse than a strict religious ideology. Someone that feels this strongly about any technology has no place being an engineer. Engineering and programing are about balance - the right tool for the the right problem.
Listen...do you smell something?
Does this mean we'll finally get a decent pair of bluetooth headphones?
A well-known scientist (some say it was Bertrand Russell) once gave a public lecture on astronomy. He described how the earth orbits around the sun and how the sun, in turn, orbits around the center of a vast collection of stars called our galaxy. At the end of the lecture, a little old lady at the back of the room got up and said: "What you have told us is rubbish. The world is really a flat plate supported on the back of a giant tortoise." The scientist gave a superior smile before replying, "What is the tortoise standing on?" "You're very clever, young man, very clever", said the old lady. "But it's turtles all the way down!"
Sure, and for a brief moment all of the west coast and parts of Canada were treated to the greatest disco party of all time.
Of course, you'd also need a large spinning mirror.
It's funny, a lot of the examples you see on MSDN and similar are often not very commented. I'm not saying this always produces readable code, but as the examples are "at the correct level", it tends to be quite readable. If you abstract things well, it does seem to make for very readable code. Maybe I'm guilty of too much hubris regarding my own programming, but when I go back years later and read old code I usually find one of two things to be true: either I have trouble reading it and almost immediately see a better way of organizing it that would help. Or, I can read it just fine. But rarely do I find that comments make the difference. In my mind the argument is analogous to procedural documentation. In one system where I work there are hundreds of pages on deployment procedures. In ours we managed to automate 99% of the process. Which would you rather have? Don't explain what can simply be encoded and factored away. People who argue against tools like intellisense might as well be arguing against higher-level languages. Of course there has to be a balance, but these tools exist for a reason. We can't write in machine code from now until the end of time - we have to be more efficient and more productive than we were before.
Aren't you just on the other extreme here? It sounds like TFA is almost completely against comments, and you're saying that we should comment as though we're always writing the weapons control system for an F-22. Isn't the real answer almost always somewhere in the middle?
Mod parent up. I'm so tired of the security-is-all-smoke-and-mirrors-so-why-bother argument.
By my understanding, homomorphic encryption would not allow this.
Absolutely. If it did, the crypto would be leaking information in a big way.
This is wrong. If you know that the underlying plaintext is the same as anything else, information is being leaked. If someone can deduce anything about the underlying data, then you've screwed up your crypto. This is the intent of initialization vectors; to decorrelate the underlying plaintext.
Actually, it's easier than that. :) Model with 1x1 blocks on the first pass, using standard interpolation limiting to your available palette colors, then combine horizontally adjacent blocks with the same color as 1xN blocks according to availability.
And then write it in C++ instead of Java.
The major algorithmic difference is that lego blocks are not [always] square, and figuring out which combination of sizes to use to cover an arbitrarily shaped block of color is NP-Hard. What he has done here is seriously impressive.
FTA: "So the Java program runs for about ten hours for each image..."
Ok, so impressive yes. Still, can't help but wonder if c++ could have helped here...
What are the odds?
Maybe it's a scheme for people who write brief, concise, elegant code.