|
Dude... it would be SO COOL if I could get a copy of that...
|
|
|
|
|
|
DUDE! That is freakin' sweet! Thanks!
|
|
|
|
|
Nagy Vilmos wrote: Soemwhere, I've got an electronicafied copy of the Apollo Orbiter Guidance System Manual. Serriouly geeky stuff.
"electronica-fied". Wow, an Apollo Orbiter GSM set to blinding techno perhaps, now that is a geek-fest.
|
|
|
|
|
Yes, its probes' systems vote between the results of the calculations in metric, imperial, and knotted rope tied to a log that's thrown off the back.
|
|
|
|
|
|
I actually thought of this as an idea to ensure correctness. Probably also has some applications to AI (e.g., random mutations of algorithms that are then compared to the original algorithms to check for correctness).
|
|
|
|
|
See, here we go again. It's just old technology wrapped up with a new name and released upon an unknowing public. I think this used to be called the Copy-Paste paradigm.
Chris Meech
I am Canadian. [heard in a local bar]
In theory there is no difference between theory and practice. In practice there is. [Yogi Berra]
|
|
|
|
|
Delphi4ever wrote: We will clean this mess up eventually
Although you used the phrase "clean..up", the Google query (( Joel rewrite )) is actually ALL you need to bring up "Things You Should Never Do, Part I by Joel Spolsky". I find this query amazing - it makes me suspicious, that Google has tracked my searches, knows I am interested in programming stuff, and e.g. if some random person enters the Google query (( Joel rewrite )) then it might fetch a differently tailored hit list ?
Anyway the article speaks for itself and being now an oldster I find myself agreeing, although I cringe at my history of youthful aspirations to "clean up" stuff.
pg--az
|
|
|
|
|
I've just finished an almost complete rewrite of a system that I support.
The users see relatively few differences apart from the fact that things are a little nippier.
I see big differences when I need to react to features requests.
The original app was developed under extreme time pressures by a developer that was figuring out ASP.Net as they went.
I think I might have just about stayed within the spirit of that Joel article. I didn't start again with an empty IDE. It was an evolution, even if virtually every line of code in the App was touched at some point.
Kinda like the Janitor that has had the same Mop for 30 years. He's changed the handle 6 times and the head 20 times, but it's the same Mop.
-Rd
|
|
|
|
|
Richard A. Dalton wrote: I see big differences when I need to react to features requests
I didn't go back and reread Joel's article, but indeed if your app NEEDS to support further changes that can easily justify refactoring - bad code is so brittle.
Richard A. Dalton wrote: developer that was figuring out ASP.Net as they went.
But, even Microsoft is figuring-out-stuff-as-it-goes. I don't know much about Asp.net personally, but synchronicity-wise I was just skimming slashdot and found a seemingly worrisome article -- Google query (( slashdot cookies ASP )) finds the article IT: New Crypto Attack Affects Millions of ASP.NET Apps[^]
pg--az
|
|
|
|
|
Delphi4ever wrote: Today my esteemed coworker invented a brand new programming paradigm: Redundant Coding (tm).
...
This immideately led to the idea of letting the three instances "vote" on the right result. And BAM the Redundant Coding programming paradigm was born.
Sorry, that's as "old as the hills".. or at least, as old as the Space Shuttle.
Three computers, each with software written by a different team of engineers (so the bugs are in different places) that vote on the result. Everything's working correctly when every vote is unanimous, but it can fly when there's only a simple majority.
They scrubbed a launch in the early days because the votes weren't all unanimous.
Now there's the way to use your backup systems
patbob
|
|
|
|
|
One place I worked had five (count'em...5!) different memory management routines because "Microsoft's doesn't work."
Really? Could it be you just don't know how to use it? Because that's going to be a big surprise to the millions of other programmers using it.
But hey, when management wanted my opinion they told it to me.
Psychosis at 10
Film at 11
|
|
|
|
|
Don't know if this qualifies as a coding horror, but it does give me the heebeegeebees.
Classes that have constructors which initialise the member variables of the class. So far so good.
Except the constructor gets the values it needs from Session Variables, rather than parameters passed in to the constructor.
I understand why it was done, one of the classes is being used to write data to a table that has 118 columns. Who wants to pass 118 parameters to a constructor?
But it still seems questionable to me. To put it simply you can instantiate the same class twice and end up with radically different states depending on how the Session Variables look at the time.
What say you? Coding Horror? Common Practice? Both?
In a strange twist, there is generally a function that is called that sets all the necessary session variables before the class is instantiated.
I don't see why the class couldn't be instantiated first and then have this method set properties on the class rather than setting session variables.
|
|
|
|
|
A table with 118 columns? That's the biggest horror
|
|
|
|
|
I wish that a 118 column table was the biggest horror in that Database.
I've had an intermittent fantasy for about 10 years now leave programming behind and become a train driver. That DB has rekindled that dream.
-Rd
|
|
|
|
|
118 Columns, pfft.. that's child's play.
Oh, right that's not something to be proud of, right?
|
|
|
|
|
GibbleCH wrote: A table with 118 columns? That's the biggest horror
Might be a Fresher's work!!!
|
|
|
|
|
I agree; can't the variables be passed into the constructor as a collection?
|
|
|
|
|
Or just a structure... It could even have a static method to fill itself from the session variables...
MyClass spork = new MyClass(MyClassArgs.LoadFromSession());
Same effect, a bit more verbose, but actually makes it obvious what's happening.
|
|
|
|
|
Both would be improvements.
I think the real horror and a very very common horror is the overuse and misuse of Session Variables.
These classes creating themselves from session variables are a symptom of that.
In reality if you have all these session variables, the class might as well not have any properties, since it then just turns around and writes it's properties to the DB.
Why not just write the Session variables to the DB?
Or why even bother with a class? If you're nailing your colors to the mast of Session variables then a Sub in a Module would do the same job.
Time for someone to write "Session Variables Considered Harmful"
Session variables are actually worse than traditional Global Variables, yet I rarely hear that much fuss about them.
In this day and age shouldn't we be required to declare Session Variables explicitly and also make them typesafe?
The more of other people's ASP.Net code that I have to maintain, the more I despise these little devils.
-Rd
|
|
|
|
|
How true. Did I ever mention the problems caused by a great thinker who stored dynamically created ASP.Net controls in the session?
The session state is member of the page object. The entries in the session state are controls, which again have a reference to the page. Circle complete. Now, what was this about a garbage collection and when exactly does it clean up?
A while ago he asked me what he should have printed on my business cards. I said 'Wizard'.
I read books which nobody else understand. Then I do something which nobody understands. After that the computer does something which nobody understands. When asked, I say things about the results which nobody understand. But everybody expects miracles from me on a regular basis. Looks to me like the classical definition of a wizard.
|
|
|
|
|
What is the end of the session?
I'll take Coding Horrors for $500 Alex.
|
|
|
|
|
|
I just take a look into my friend's code, then I found something confusing to me
I have made some modifications here :
Private Function xxx(ByVal name As String) As Boolean
Dim xxxResult As Boolean = False
If name = "A" Then
Return xxxResult
Else
Return xxxResult
End If
Return xxxResult
Exit Function
End Function
Finally, when I want to go back to my home, I still confused, the world is spinning in my head, there are so much doors.
25160506848319
|
|
|
|