If you can hack the commercial website and replace their page with yours, why would you need this phishing technique? Just have their server-side script send the username/password to you directly.
I suspect what we will see is that the IIS admin tool will be an MMC snap-in, and that it will be MMC that will gain the remote HTTPS accessibility.
Nice thought, but I doubt it will happen that way. The MMC snap-in interfaces don't expose enough information to be seamlessly converted to a web interface. The treeview is enumerated through the interface, so that could be webified, but the right-hand content pane is mostly opaque to MMC. Each snap-in can define its own content pane implementation as an ActiveX control.
Bottom line, Mach is the most advanced manual shaving system in the world. The Mach3 Turbo is the world's first triple-blade razor, with three blades positioned independently to shave you progressively closer in a single stroke.
This could be used to provide a better Page Rank. Instead of determining worth based on links that exist, they will determine it based on links that are used.
Your existing codebase doesn't change Fortran's POS status. Numerical calculations are typically pretty speedy in Fortran, yes. But it is still a POS. There are more modern languages that achieve the same or better level of performance, while incorporating some other cool things we have learned in the last 15 years. Sisal is a good example - a functional language that was designed for numerical computations.
You've never worked in game development. This is not an option... not if you want something that runs at a workeable framerate. Simple code tends to be brute force and slow.
No, I have never worked in game development. But I have worked on plenty of performance-critical programs. Simple code can be fast. Stupid simple code often isn't, but that is a different matter completely. Things like 1) functions, and 2) variables will get optimized away by your compiler anyway, so you might as well use them to express the intent of your code.
Efficient code for mathematical algorithms usually requires that the mathematical formula be broken down into a form that bears almost no resemblance to the original formula. Documentation of the formula will tell you nothing about the code.
You have used the terms "algorithm" and "formula" interchangably here, I don't know which you mean. The whole point of an algorithm is to express some process in a simple step-by-step form. Programs are typically written in step-by-step form. I don't see any blinding incompatibilities there, so I'll assume you meant to use the words "mathematical expression". In that case, you are right - writing the expression down doesn't help someone understand how it works. For that, you need lots of background information, in a document, or a book if it is that hard. When you write code to evaluate complex expressions, you are typically just following the same steps you would if you were evaluating the expression on paper. If someone can't understand it on paper, then they can't understand it in code.
In the last paragraph of the post you replied to, I have already addressed your point. High-level "why" documentation should go in documents, not the code. Unless you meant something other than "why" and "how". Please clarify.
That comment is a good match for the code it is with. I never write comments like that unless dealing with a 3rd party interface, or something else that is a brick wall I can't refactor across, and there is something very quirky or unusual about it.
The 'if' in the last snippet you quoted is very complex, and I would probably try to decompose it into a few functions and/or objects as necessary to make it clear what is happening. For example, you could start by replacing the 'if' with:
if(message.is_complete()) break;
This clearly expresses the intent of the code you quoted (assuming I understood it correctly). Here, I've created a 'message' object to encapsulate some of the logic. The entire loop may be changed to look something like this:
Now, the "is complete" decision making is abstracted to the "message", which seems to me the right place for that responsibility.
Another thought is that the [1] should be changed. I'm guessing that you are referring to the second byte of the received packet, and using it as a flags field of some kind. If that is the case, why not go ahead and make a struct that represents the header layout, and reference the flags through a bitfield in the struct? If you do that,
(*curr)->GetPayload()[1] & FU_E_BIT
Becomes
(*curr)->header->flag_end_of_message
...which seems clearer to me.
You could continue along these lines, and get to a point where it would be obvious what the code does. The comment in that snippet also addressed "why", in addition to "how". I would move the "why" explanation into a document that defines the protocol.
LOL. Yea you got us on that one... the ole' F90 compiler croaks on tabs. Guys, get this out on the wire ASAP!!!! No more tabs, the F90 compiler insists!!! Pass it on!
No offense, but could it be that your preference for comments just reflects your skill level with the language. To the programmer who wrote the program, it would seem silly to provide a lot of comments - much like it would seem unnecessary for you to comment a shell script you write.
The only time comments should be in code, is when the effect of the code is different than it appears to be - different than what a reasonably skilled programmer would expect. That is the only reasonable use for comments. For reference, here is a quick list of arguments and my canned responses:
I need comments because I can't understand the code otherwise.
You should be writing simpler code. If the code is too hard to understand by itself, then it is your job to make it simpler.
It's not the code that's complex - it is the concepts in use. A newcomer may not have the necessary background to understand.
And you think "trial by fire" is the best way to get newcomers aquainted with the code?!?? Document complex concepts in... guess what... documents.
Function headers allow me to easily see what parameters the function takes, and what it does, without reading deep into the code.
The arguments are also handily right there at the top of the function definition, for that reason. If you need function headers to understand what the function does, then 1) pick better names, and 2) write shorter functions.
My organization requires a certain amount of comments.
Change your organization.
Most importantly, realize that comments can lie, but that code can not lie. After time, comments get out of sync with the code, and instead of having zero usefulness, they start having negative usefulness.
I swear there is prior art for this. It was about 7 or 8 years ago when I read about some previous work that had been done, that sounds very much like this. The work had been around for years before I read it.
I am pretty sure I have a hardcopy sitting in a stack of papers in a box somewhere. I will try to find it and post back here if I do.
I suggest you re-read definition 3, and the historical note. You don't understand the etymology of the word. Based on the term's origin (as used to refer to user interfaces), it equally applies to command line programs and graphical programs.
That is debatable, but clearly definitions 2 and 3 are in my favor. Also note that the GGP's argument is based on the historical significance of the term - which is wrong, as explained by the historical note at the bottom of esr's page.
This is just something you have, in the form of brain cells. They can be removed, though it is occasionally very painful. It is, according to your criteria, a very poorly chosen "something you have". Most decent references on authentication stick to something you have.
Yes! I would rather they have a handful of very useful services.
Everyone says that Google is different than Yahoo, because Google's new services are innovative and have cool high-tech interfaces. Well, back when Yahoo was in full-bloat grow-mode, their services were pretty cool and innovative too. But then they were left to maintenance and became, without changing, the old and crusty services we expect from Yahoo today.
Don't get me wrong - I'm not saying Google has already succumbed to that fate, or even that they will. They may be able to outpace Yahoo and have continuous improvements to all of their services.
Email is automatically forwarded from [first]@[last].name.
If you can hack the commercial website and replace their page with yours, why would you need this phishing technique? Just have their server-side script send the username/password to you directly.
Bottom line, Mach is the most advanced manual shaving system in the world. The Mach3 Turbo is the world's first triple-blade razor, with three blades positioned independently to shave you progressively closer in a single stroke.
The real problem is that our legislature is so broken that it is possible to "attach" stupid bills to other unrelated bills.
This could be used to provide a better Page Rank. Instead of determining worth based on links that exist, they will determine it based on links that are used.
Any bets on how many hours/days until the C&D letter arrives?
Your existing codebase doesn't change Fortran's POS status. Numerical calculations are typically pretty speedy in Fortran, yes. But it is still a POS. There are more modern languages that achieve the same or better level of performance, while incorporating some other cool things we have learned in the last 15 years. Sisal is a good example - a functional language that was designed for numerical computations.
Yes, this code compiles. That is 8 plusses, three of them consecutive. Be afraid.
In the last paragraph of the post you replied to, I have already addressed your point. High-level "why" documentation should go in documents, not the code. Unless you meant something other than "why" and "how". Please clarify.
You could continue along these lines, and get to a point where it would be obvious what the code does. The comment in that snippet also addressed "why", in addition to "how". I would move the "why" explanation into a document that defines the protocol.
LOL. Yea you got us on that one... the ole' F90 compiler croaks on tabs.
Guys, get this out on the wire ASAP!!!! No more tabs, the F90 compiler insists!!! Pass it on!
We must work at the same company... I end up deleting several of these crap comments every day.
No offense, but could it be that your preference for comments just reflects your skill level with the language. To the programmer who wrote the program, it would seem silly to provide a lot of comments - much like it would seem unnecessary for you to comment a shell script you write.
Most importantly, realize that comments can lie, but that code can not lie. After time, comments get out of sync with the code, and instead of having zero usefulness, they start having negative usefulness.
I am pretty sure I have a hardcopy sitting in a stack of papers in a box somewhere. I will try to find it and post back here if I do.
I suggest you re-read definition 3, and the historical note. You don't understand the etymology of the word. Based on the term's origin (as used to refer to user interfaces), it equally applies to command line programs and graphical programs.
That is debatable, but clearly definitions 2 and 3 are in my favor. Also note that the GGP's argument is based on the historical significance of the term - which is wrong, as explained by the historical note at the bottom of esr's page.
http://en.wikipedia.org/wiki/operating_system_she
Hmmm... these definitions disagree with you. I think pretty much anybody would take the word of esr and wikipedia against you.
You lose. Thanks for playing.
It can be changed, and there are alternatives out there.
There's just not much demand for alternatives, because the default shell doesn't suck like KDE or Gnome.
This is just something you have, in the form of brain cells. They can be removed, though it is occasionally very painful. It is, according to your criteria, a very poorly chosen "something you have". Most decent references on authentication stick to something you have.
Everyone says that Google is different than Yahoo, because Google's new services are innovative and have cool high-tech interfaces. Well, back when Yahoo was in full-bloat grow-mode, their services were pretty cool and innovative too. But then they were left to maintenance and became, without changing, the old and crusty services we expect from Yahoo today.
Don't get me wrong - I'm not saying Google has already succumbed to that fate, or even that they will. They may be able to outpace Yahoo and have continuous improvements to all of their services.