• (cs) in reply to chaim79
    chaim79:
    You know what's the WTF with most SCMs? They don't like 'shared sandbox' situations.

    unfortunately to get it to work with a shared sandbox we need to use FrontPage Extensions, otherwise when you check a file out it's open to anybody to edit and Visual Studio doesn't bother finding out if you have it checked out or not. We have had many problems with that, as well as situations where someone opened the file to look at it while someone else had it checked out, the first person checked it back in and the second person checked it out while he still had it open in Visual Studio, did some edit, saved and checked it in,

    I've heard fourth hand about situations like this before, but yours is the first I've heard first hand. Get real version control. Even CVS (which is free, and considered good only when compared to what was standard 15 years ago) supports shared sandboxes better than this. I'm used to editing files, and when I go to check them in the version control stops me because someone else edited that file so I have to merge their changes first.

    I boggles my mind that anyone could use such a terrible version control system in 2006. No wonder fogcreek decided to compete with Microsoft in this area.

  • (cs) in reply to Gene Wirchenko
    Gene Wirchenko:
    And what do you do about the student who says, "That looks like a rather complicated way to do a backup."?

    "Tell me that again, AFTER you have tried to figure out which of your 100 different backup copies of one file is the version you want. Don't forget that there are other files in this same project.

    I will agree that for small school projects a backup plan is easier than learning version control, but once you know how to use version control it is easier. In addition, once you start working on non-trivial projects a backup plan will fail, while version control will work. Therefore you should get in the habit of version control now, before the flaws in your simple backup plan hit you on the rear end."

  • Bill Doe (unregistered) in reply to hank miller

    I don't understand why you all think convincing college students to use source code management would be so hard.  When I was a college student, for our personal work we had to resort to things like toting around Zip disks and emailing ourselves our work.
     
    Group projects were even worse.  Having to carry around a Zip disk and have everybody copy it and constantly sending emails back and forth with our work was, at best, inefficient.  Having a version control server that we could have accessed from our anywhere (just like many of the other university systems), along with a graphical client installed on the university computers, would have been an obvious benefit. 

    And since most college students are eager to learn skills they can put on their resumes, most would probably love to be able to say they have used version control.  Heck, I would love to have had version control for many of my non-technology courses as well.

  • (cs) in reply to Gene Wirchenko
    Gene Wirchenko:
    ferrengi:
    Why do you say that?
    It may not be the most efficient way but it does make the concept very easy to understand and apply to other situations.


    The concept is useless if it is not used.  If the students can not see how it is better, why would they use it?

    A technique that makes things more complicated to do?  Things like that get submitted to Alex.

    Sincerely,

    Gene Wirchenko



    I think you are missing the point here.
    Typically, recursion is something that is taught in an entry level programming class. The object is not to explain when to use it or under what situations it should be used. The purpose is to teach the student what recursion is and how it works. Math functions like factorial are some of simpliest cases you can use to illustrate the principle. That is all they are designed to do.
    In any case, for a first year CIS student, recursion is less complicated and/or more intuitive than calculating factorial in a loop. The goal is not efficiency or to teach the student how to use recursion in the real world.
  • (cs) in reply to hank miller
    hank miller:
    Gene Wirchenko:
    And what do you do about the student who says, "That looks like a rather complicated way to do a backup."?


    "Tell me that again, AFTER you have tried to figure out which of your 100 different backup copies of one file is the version you want. Don't forget that there are other files in this same project.

    I will agree that for small school projects a backup plan is easier than learning version control, but once you know how to use version control it is easier. In addition, once you start working on non-trivial projects a backup plan will fail, while version control will work. Therefore you should get in the habit of version control now, before the flaws in your simple backup plan hit you on the rear end."



    Straw man!  Who seriously would be packing around 100 versions?

    Yes, exactly.  For the small projects, backup suffices.  So what do you do when the student resists your complication of the situation with SCM?  Remember, SCM will take longer.  The student may be buried in coursework as it is.  The benefit is only potential.  If he can not see that benefit, it is unlikely he will use, in this case, SCM.  Your answer amounts to "Take it on faith."  It is not that I disagree on the use of SCM; I do not think your argument is as convincing to a student as you may think it is.

    One of my instructors was surprised to see me coding XML by hand when he had told us where to download a program for dealing with it.  Unfortunately, there were no instructions for the program.  Given the choice between trying to learn a undocumented tool at the same time as I was learning the material and simply handcoding and learning the material, I took the sensible course.  The latter involved only one change and was, thus, easier to handle.  When I pointed this out, then my instructor got it.

    Sincerely,

    Gene Wirchenko

  • (cs) in reply to Bill Doe
    Anonymous:
    I don't understand why you all think convincing college students to use source code management would be so hard.  When I was a college student, for our personal work we had to resort to things like toting around Zip disks and emailing ourselves our work.
     
    Group projects were even worse.  Having to carry around a Zip disk and have everybody copy it and constantly sending emails back and forth with our work was, at best, inefficient.  Having a version control server that we could have accessed from our anywhere (just like many of the other university systems), along with a graphical client installed on the university computers, would have been an obvious benefit. 

    And since most college students are eager to learn skills they can put on their resumes, most would probably love to be able to say they have used version control.  Heck, I would love to have had version control for many of my non-technology courses as well.


    I have seen instructors say how to easily deal with a situation and see the students go in the opposite direction.  Sometimes, it is because of the supposed inefficiency.  Typically, they do not blame themselves when they crash and burn.

    Sincerely,

    Gene Wirchenko

  • (cs) in reply to ferrengi
    ferrengi:
    Gene Wirchenko:
    ferrengi:
    Why do you say that?
    It may not be the most efficient way but it does make the concept very easy to understand and apply to other situations.


    The concept is useless if it is not used.  If the students can not see how it is better, why would they use it?

    A technique that makes things more complicated to do?  Things like that get submitted to Alex.


    I think you are missing the point here.
    Typically, recursion is something that is taught in an entry level programming class. The object is not to explain when to use it or under what situations it should be used. The purpose is to teach the student what recursion is and how it works. Math functions like factorial are some of simpliest cases you can use to illustrate the principle. That is all they are designed to do.
    In any case, for a first year CIS student, recursion is less complicated and/or more intuitive than calculating factorial in a loop. The goal is not efficiency or to teach the student how to use recursion in the real world.


    No, I am not.  The diploma program that I was in very deliberately avoided covering recursion.  Things were packed as it was.

    Show me something where I can not see the benefit of using it, and expect me to use it?  Dream on.

    I know the value of recursion because of other experience, but to expect a beginning computing student to see it with no Real World examples is unrealistic.

    Sincerely,

    Gene Wirchenko

  • (cs) in reply to ferrengi
    ferrengi:

    Why would anyone want to bother with source control for a toy project?
    If you screw it up, who cares?


    One person's "toy project" is another's "en-ter-preyice kom-pew-ting". I use my ridiculous shell/perl/ruby hacks to do my ridiculous little day-to-day tasks, and still think it's nice they're versioned, thanks for asking. In fact, I've often hesitated to touch some of my old scripts that weren't versioned.

    Also, as anyone who has worked on a "toy project" knows, losing a handy toy could be painful. Few people want to rewrite something just because they accidentally brutally did "rm * .o". People don't code toy projects just because they want to code for the heck of it, they want to produce something cool, useful or beautiful.

    Also, one person's "source code control" is another's "whole-buncha-HTML control". I use Subversion to version my home page. Definitely a toy project. Beats the living whatsit out of keeping around "old version of this little directory here" things. Infinitely useful even when it's definitely a "toy project."

    Also, always, always remember that today's "toy project" may turn into tomorrow's "flagship product". Okay, there's always the annoying case that some Future Employee of a Soon-to-rise Software Company will amuse themselves with "svn co -r 1 ..." and post some of the juiciest results  here =)

  • (cs) in reply to WWWWolf
    WWWWolf:
    ferrengi:

    Why would anyone want to bother with source control for a toy project?
    If you screw it up, who cares?


    One person's "toy project" is another's "en-ter-preyice kom-pew-ting". I use my ridiculous shell/perl/ruby hacks to do my ridiculous little day-to-day tasks, and still think it's nice they're versioned, thanks for asking. In fact, I've often hesitated to touch some of my old scripts that weren't versioned.

    Also, as anyone who has worked on a "toy project" knows, losing a handy toy could be painful. Few people want to rewrite something just because they accidentally brutally did "rm * .o". People don't code toy projects just because they want to code for the heck of it, they want to produce something cool, useful or beautiful.

    Also, one person's "source code control" is another's "whole-buncha-HTML control". I use Subversion to version my home page. Definitely a toy project. Beats the living whatsit out of keeping around "old version of this little directory here" things. Infinitely useful even when it's definitely a "toy project."

    Also, always, always remember that today's "toy project" may turn into tomorrow's "flagship product". Okay, there's always the annoying case that some Future Employee of a Soon-to-rise Software Company will amuse themselves with "svn co -r 1 ..." and post some of the juiciest results  here =)



    I am not an expert on source control but I thought they are good for situations where multiple people are working with the same source and you don't want to clobber what the other person is working on.
    It sounds to me like you are using source control in situations where backups would suffice.
  • (cs) in reply to Gene Wirchenko
    Gene Wirchenko:
    ferrengi:
    Gene Wirchenko:
    ferrengi:
    Why do you say that?
    It may not be the most efficient way but it does make the concept very easy to understand and apply to other situations.


    The concept is useless if it is not used.  If the students can not see how it is better, why would they use it?

    A technique that makes things more complicated to do?  Things like that get submitted to Alex.


    I think you are missing the point here.
    Typically, recursion is something that is taught in an entry level programming class. The object is not to explain when to use it or under what situations it should be used. The purpose is to teach the student what recursion is and how it works. Math functions like factorial are some of simpliest cases you can use to illustrate the principle. That is all they are designed to do.
    In any case, for a first year CIS student, recursion is less complicated and/or more intuitive than calculating factorial in a loop. The goal is not efficiency or to teach the student how to use recursion in the real world.


    No, I am not.  The diploma program that I was in very deliberately avoided covering recursion.  Things were packed as it was.

    Show me something where I can not see the benefit of using it, and expect me to use it?  Dream on.

    I know the value of recursion because of other experience, but to expect a beginning computing student to see it with no Real World examples is unrealistic.

    Sincerely,

    Gene Wirchenko



    It still sounds to me like you are looking at this from your perspective (If I cannot see the benefit, I will not learn or use this technique) as opposed to a first year CIS student who is simply learning a technique without worrying about how they would apply it in real life. The student just wants to learn, pass the test and then get a job. I don't know about you but the only thing college prepared me for was giving me a foundation and teaching me my first programming language. Everything else was learned on the job (95%+ of the knowledge I need). It wasn't even mandatory in my CIS program to learn anything about databases. Now, I cannot fathom how I would do my job if I didn't know how to use a database. I learnt the basics in a few months on the job and that was that.

    I suppose there is not that much point in debating this further. We can just agree to disagree on this.
  • mcguire (unregistered) in reply to Gene Wirchenko
    Gene Wirchenko:

    No, I am not.  The diploma program that I was in very deliberately avoided covering recursion.  Things were packed as it was.


    Eh, did it also skip big-O notation, databases, parsing, and sliding windows?

    I'd suggest asking for your money back.
  • (cs) in reply to Asd
    Anonymous:
    greyfade:
    but the factorial example is a perfect way to teach a math major the concept of recursion in programming: it's exactly what he does with such algorithms as a matter of course.

    Except the standard factorial example is ludicrously inefficient and quite likely to put off any student who understands it fully.


    I personally think it's a GREAT example to use when talking about recursion. Why?

    * It's simple enough that you can trace through the recursion trivially, and simple enough that it makes sense by looking at the function,

    * It's a good demonstration for what you want to think about before you choose to use recusion (so in its case you don't do it),

    * It provides a good base for demonstrating tail recusion, since there's also a simple-to-use tail-recursive version, and

    * You don't have a dependence on other knowledge, like trees, to get recursion.

    The Fibba-whatever numbers (I don't claim to be good at spelling) also provide I think all three of these, though a bit more complicated.


  • (cs) in reply to Gene Wirchenko
    Gene Wirchenko:
    ferrengi:
    Gene Wirchenko:
    ferrengi:
    Why do you say that?
    It may not be the most efficient way but it does make the concept very easy to understand and apply to other situations.


    The concept is useless if it is not used.  If the students can not see how it is better, why would they use it?

    A technique that makes things more complicated to do?  Things like that get submitted to Alex.


    I think you are missing the point here.
    Typically, recursion is something that is taught in an entry level programming class. The object is not to explain when to use it or under what situations it should be used. The purpose is to teach the student what recursion is and how it works. Math functions like factorial are some of simpliest cases you can use to illustrate the principle. That is all they are designed to do.
    In any case, for a first year CIS student, recursion is less complicated and/or more intuitive than calculating factorial in a loop. The goal is not efficiency or to teach the student how to use recursion in the real world.


    No, I am not.  The diploma program that I was in very deliberately avoided covering recursion.  Things were packed as it was.

    Show me something where I can not see the benefit of using it, and expect me to use it?  Dream on.

    I know the value of recursion because of other experience, but to expect a beginning computing student to see it with no Real World examples is unrealistic.

    Sincerely,

    Gene Wirchenko



    Which is why you move on to OTHER examples of recursion after the simple things. I think a good sequence would teach recursion then trees. Since many tree algorithms are easily expressed recursively, the students will have the background to see what's going on.

    Or, currently in the course I'm TAing (essentially; technically I'm a teaching intern) people are working on a program that solves mazes by recursive backtracking. (Sort of.) There's an extra credit problem which is to write a problem that solves Sodoku puzzles; something easily done with recursion. (Actually the exact assignment is to write the maze solver WITHOUT using recursion, but I think makes a good demonstration on where the recursive solution is oh-so-easier to at least come up with. Last assignment used recursion in trees though.)
  • (cs) in reply to fgilcher
    Anonymous:

    and you're proud that they can't code a single line? Thats a major WTF in itself http://www.c2.com/cgi/wiki?ArchitectsDontCode

    captcha: speaker


    a) i said line of C.
    b) i didn't say i was proud of that.
    c) i was being sarcastic.

    point is that imho the things you learn as a CS student make it easy to pick up a new programming language as long as it is somewhat like the ones you've briefly reviewed in class. I don't know C, but i do know OO. C can't be that hard, can it ;)
  • (cs) in reply to lukas

    lukas:
    Anonymous:

    and you're proud that they can't code a single line? Thats a major WTF in itself http://www.c2.com/cgi/wiki?ArchitectsDontCode

    captcha: speaker


    a) i said line of C.
    b) i didn't say i was proud of that.
    c) i was being sarcastic.

    point is that imho the things you learn as a CS student make it easy to pick up a new programming language as long as it is somewhat like the ones you've briefly reviewed in class. I don't know C, but i do know OO. C can't be that hard, can it ;)

    C? OO??
    ;) Can be quite a difference there.

  • (cs) in reply to lukas
    lukas:
    I don't know C, but i do know OO. C can't be that hard, can it ;)

    It is.

    • C is an imperative language, not an OO one, so OO in C is hard.
    • C requires manual heap memory managemend, manual heap memory management is also hard
    • C makes extensive use of pointers, and pointers arithmetics, including function pointers. Pointers are usually ok, but pointer arithmetics are not that easy
    • C has unchecked casts, which makes it very dangerous if you start fucking around PHP style "Hell if I know what I'm doing, but I'll keep doing it until it looks like it's working anyway"

    To sum it up, yes, it can be that hard, don't start thinking that because you know Java you can grasp C in a pair of days.

    Ah, and if you want another domain the "OO" you know (and which one anyway? global OO theory, Java's OO, Smalltalk's OO?) will NOT help you understand (and may hinder your progress in), functional programming is the way to go (MLs, Haskell, Lisp, Scheme). If you think that OO is the silver bullet and that will make every language trivial, you're grossly mistaken.

  • (cs) in reply to masklinn
    masklinn:
    lukas:
    I don't know C, but i do know OO. C can't be that hard, can it ;)

    To sum it up, yes, it can be that hard, don't start thinking that because you know Java you can grasp C in a pair of days.



    http://en.wikipedia.org/wiki/Irony
  • (cs) in reply to ammoQ
    ammoQ:
    masklinn:
    lukas:
    I don't know C, but i do know OO. C can't be that hard, can it ;)

    To sum it up, yes, it can be that hard, don't start thinking that because you know Java you can grasp C in a pair of days.



    http://en.wikipedia.org/wiki/Irony

     

    Noooo!
    Sarcasm is hard enough!

  • (cs) in reply to ammoQ
  • (cs) in reply to masklinn
    masklinn:
    [..snip...], functional programming is the way to go (MLs, Haskell, Lisp, Scheme). If you think that OO is the silver bullet and that will make every language trivial, you're grossly mistaken.


    you've got to be kidding. aren't you?

    they teach Haskell and Lisp here. I absolutely loved the course. I concluded that: yes it is truly the way to code (tm) but no, it will never be used outside of the campussus around the world.

    if you think that FP "is the silver bullet and that will make every language trivial," then imho it is you who is grossly mistaken...
  • BigD (unregistered) in reply to sammybaby

    I hail from MIT and they forced us to learn CVS (VSS is the worst piece of junk ever) the first week of my Software Development Laboratory.  If you didn't learn it, you failed.  So there are universities out there teaching the right stuff.  However, I still have yet to find people that really know about rep exposure, rep invariance, modularity, etc.  And this is even more disturbing... when I go into a new client the first thing I ask for are the design diagrams (MDD, OODs, whatever, give me a friggin uses diagram if that's all you know) and each time I have been rebutted with laughter.  At this point I remember that I am a consultant and thankfully have no tie to the company's long term lifespan :)

  • BigD (unregistered) in reply to lukas

    Scheme is excellent for Artificial Intelligence and is used in the real world as it is the only language that has the ability to "learn."  Any high-level AI project will be using Scheme or some other LISP derivation. 

     

    lukas:
    masklinn:
    [..snip...], functional programming is the way to go (MLs, Haskell, Lisp, Scheme). If you think that OO is the silver bullet and that will make every language trivial, you're grossly mistaken.


    you've got to be kidding. aren't you?

    they teach Haskell and Lisp here. I absolutely loved the course. I concluded that: yes it is truly the way to code (tm) but no, it will never be used outside of the campussus around the world.

    if you think that FP "is the silver bullet and that will make every language trivial," then imho it is you who is grossly mistaken...

     

  • BigD (unregistered) in reply to sammybaby

    Sorry forgot to put the original message I replied to...

    I hail from MIT and they forced us to learn CVS (VSS is the worst piece of junk ever) the first week of my Software Development Laboratory.  If you didn't learn it, you failed.  So there are universities out there teaching the right stuff.  However, I still have yet to find people that really know about rep exposure, rep invariance, modularity, etc.  And this is even more disturbing... when I go into a new client the first thing I ask for are the design diagrams (MDD, OODs, whatever, give me a friggin uses diagram if that's all you know) and each time I have been rebutted with laughter.  At this point I remember that I am a consultant and thankfully have no tie to the company's long term lifespan :)

     

    sammybaby:

    Okay. Not externalizing the connection strings is seriously stupid. (I once spoke to a guy whose job was to make web sites, who was replacing a bunch of Perl DBI calls to an msql database, with Perl DBI calls to a MySQL database.... once on every page of his site. Without the use of a find-and-replace, even. Sad.)

    Not having a seperate environmnet for testing.... seriously stupid. For simple systems, we're talking maybe a pair of db commands to recreate the whole thing from scratch, so there's no excuse for using the same database for production that you do in development.

    But the one thing that I see all the time, yet which is arguably the biggest wtf: no source control system.

    People. Use SCM. Seriously. Even if it's a toy app you're screwing around with on your PC.

    (Why SCM wasn't taught, or even discussed, in any university class I took is still a mystery to me.)

  • (cs) in reply to ferrengi
    ferrengi:
    I am not an expert on source control but I thought they are good for situations where multiple people are working with the same source and you don't want to clobber what the other person is working on.
    It sounds to me like you are using source control in situations where backups would suffice.


    Yeah, but do you have a backup system that keeps things in a neat little stack where you can pull stuff (ie, get the file in full, or make a diff) by revision number or date, with stored comments that describe why you decided to make a great big backup that day, and ability to look at the comment history for each single file?  I sure wasn't getting those with backups, but once I started using Subversion, all that came free with it, and was simple to do.

    Think of it as a backup system that knows some interesting tricks, and that can be even more useful if someone else wants to touch the thing.

  • (cs) in reply to BigD
    Anonymous:

    Scheme is excellent for Artificial Intelligence and is used in the real world as it is the only language that has the ability to "learn."  Any high-level AI project will be using Scheme or some other LISP derivation. 



    that highly depends on what you might call "high-level AI" and what field of AI studies you are in. it is true that a lot of AI studies use some form of FP, but there are also many others that don't.
  • (cs) in reply to lukas
    lukas:
    if you think that FP "is the silver bullet and that will make every language trivial," then imho it is you who is grossly mistaken...

    I never even hinted at this, I merely stated that OO is not the silver bullet and can't help you understand, say, the functional programming paradigm.

    Now FP will probably never be used as widely as IP or OOP currently are indeed (mainly because it's too hard), but if you think it's never used "outside of the campussus", well, maybe you should step out of your cubicle from time to time.

  • (cs) in reply to EvanED
    EvanED:
    Gene Wirchenko:
    I know the value of recursion because of other experience, but to expect a beginning computing student to see it with no Real World examples is unrealistic.


    Which is why you move on to OTHER examples of recursion after the simple things. I think a good sequence would teach recursion then trees. Since many tree algorithms are easily expressed recursively, the students will have the background to see what's going on.


    That makes plenty of sense to me and is what I would do.  Unfortunately, all too often, all I have seen presented is the factorial example.  If the only example of recursion used is factorial, recursion looks as if it is a stupid idea.

    Sincerely,

    Gene Wirchenko

  • (cs) in reply to ferrengi
    ferrengi:
    I am not an expert on source control but I thought they are good for situations where multiple people are working with the same source and you don't want to clobber what the other person is working on.
    It sounds to me like you are using source control in situations where backups would suffice.


    Backups don't support branching.

    <font size="1">(Yes, I really do bother with branching even for 'toy projects'; sometimes I want to explore an idea without screwing up the toy.)</font>
  • Geoff (unregistered)

    I think I work for that company, now. It's terrible.

    nu_ro_empmloymentApp.htm.. internship_application.html... masterLu_test/... mLuFengShooei/... masterLu_2005/test... it goes on.

    To add to the excitement, we've got no test environment, and client files could exist in (at least) one of (at least) FOUR places... Oh, and 99% of our stuff is in ColdFusion. What a damn nightmare.

  • CalliArcale (unregistered) in reply to Angstrom
    Angstrom:

    <font size="1">(Yes, I really do bother with branching even for 'toy projects'; sometimes I want to explore an idea without screwing up the toy.)</font>


    Hallelujah!  I'm not the only one!

    Of course, I'm an SCM lead accustomed to Rational ClearCase -- think of it as the expensive version of Subversion -- so that might explain why I use version control and branching even on toy projects.  Sometimes, if I'm in a pinch, I'll emulate branching with backups.  It's not pretty, but I'm so used to being able to branch files that it really feels constricting to not have that capability.  I also write fanfiction, and have seriously considered putting those into version control.  It's great to have that version history.  The best part is that unlike backups, which only occur when you think you might mess something up or are making a substantial change, the version control system saves your bacon even when you didn't expect to need the backup.
  • Hallelujah (unregistered) in reply to CalliArcale

    This is what I love to see! Serious conversation/debate. I love WTFs that invoke the discussion of improvement rather than just comments.

  • Ray (unregistered)

    I did something like this once, though it was my first programming project, ah to be 16 again....

  • (cs) in reply to Ray

    Back in highschool, for backup I did the whole "zip the directory and put a number on it" thing. It worked pretty well back then. I didn't have the means for SourceNotSafe, or CVS back then. I was the only one working on my projects also, so that was never a problem. Today, it's common for more than one person to work on the same project. Version control is a necessity.

    Strange though how this topic has shifted...

  • Tbee (unregistered) in reply to Alex Papadimoulis
    Alex Papadimoulis:

    Not too easy of a battle -- the original programmer was the *star* programmer at the organization and didn't believe in such things.

    We have had such a programmer in our organisation, he called himself, with a lot of emphasis, a "professional". Even since using the word "professional" in our orgisation does not constitute a compliment and it's great for insiders communication.

  • (cs) in reply to GoatCheez
    GoatCheez:
    I was the only one working on my projects also, so that was never a problem. Today, it's common for more than one person to work on the same project. Version control is a necessity.

    Truth is that even on one-man project of a one-week toy project/test/prototype, an SCM is invaluable and will save your day more often than none.

    I even found out that Andrew Hunt and David Thomas recommended just that in their "The Pragmatic Programmer: From Journeyman to Master" (which I recommend reading, several times. You'll like it and you'll gain from it)

    One of the great strengths of SCMs comes from their very low overhead once you've built using them in your muscle memory, while the initial week or so requires that you remember using them, they soon enough become an automatism and you only get the benefits back.

  • Adrian (unregistered) in reply to sammybaby

    Weirdly after c and data structures etc.  I found software configuration management to be the most useful CS class that I took at University.

    Of course I never took the 3rd year AI classes, so I may have missed something.

  • Andy (unregistered)
    Alex Papadimoulis:


            ' Set strS2f to false
            strS2f = false

            Note: I've never seen more than one comment on any of the pages.

            Additional note: I've never seen more than zero comments that are even remotely helpful on any of the pages



    Daily shit to me working as a Software Engineer whos major task is cleaning up the mess others had produced. Examples:

    /* not nice but it still works */
    typedef union
    {
        int i;
        void *o;
    } rT;

    Oh really? Here's another one:

    /* enum */
    enum
    {
      OWNEXCEPTIONPARAMINCOMPATIBLE = SETEVENTUNKNOWNEVENT+40,
      OWNEXCEPTIONUNKNOWOBJECTTYPE,
      OWNEXCEPTIONMETHODIDNOTFOUND,
      OWBEXCEPTIONINTERNALLERROR
    } OWNERROR;

    Never heard of underscores? Of course there was no comment about the 'own...' anyway.

    I think I'm not alone saying that people programming this way should be instantly fired.
  • Fred Trellis (unregistered) in reply to rbriem

    Berkley Uni makes a lot of lectures available as podcasts.  I have listened to psychology, operating systems, and other subjects.  The quality of the lectures is appaling.  I feel sorry for American students getting such  alow-grade education.

  • Simon (unregistered) in reply to R.Flowers

    This could have been solved with a Cygwin version of CVS.

  • PHP coder (unregistered) in reply to Monomelodies
    Monomelodies:
    Anonymous:
    Monomelodies:
    Needless to say, I quit within the month and never took another job without seeing at least some of the code produced at a company beforehand...


    That sounds like a good idea, but how do you go about asking to see some of their code at, say, an interview?


    Oh, that's easy. Let me look at your code, and you can look at mine. In my experience since, you only need to see snippets to identify common but oh-so important practices like coherent style, proper indenting, thought-through variable, function and class naming etc.
    Companies one wants to work for tend to applaud this stance, companies you don't deny it. And there's a few in between who reluctantly let you see a few lines of their horrible code and you never return their calls. Sure kept me out of trouble since then!


    My first programming job was at a games developer - In the interview I showed them the source code to my 3D engine and let them look at whatever they wanted, as well as showing off some compiled demos.
    They liked that a lot.

    In my second job, the interview consisted of
    Boss "Do you know what an alpha channel is?"
    Me: "Uh.. yeah"
    Boss "Then youre overqualified. You're hired!"

    Needless to say, the quality of the programmers at this place is about 1% of the ones at my last job :(
  • Red5 (unregistered) in reply to PHP coder

    Somebody pass me a towel.

    I just threw up all over my keyboard and lap.

  • (cs)

    I wish that shocked me, but I'm actually pleasantly surprised when i DONT see that... which 'ardly 'ever 'appens.  I'd be happy to see an installation on any web server that didn't have an _old, _new, .bkp, .01052002, or whatever tacked onto something.

  • Bobby (unregistered) in reply to jsmith
    jsmith:
    gwenhwyfaer:
    jsmith:
    It drives me nuts, he is a lifelong english speaker, college educated, highly paid, and he gets about 10% of the words he spells wrong.
    Dyslexic?
    Nope, just good ole' bad spelling. 

    I have the same issue - an ex-coworker is very sloppy about this, and we STILL have a bunch of miss-named classes hanging out.

    I've always wondered why IDEs don't have any sort of spell check (I've never seen it). Given that the naming standard is usually SomethingLikeThis, it shouldn't be hard to have the spell checker check "Something" "Like" and "This". Too many weird technical words to make it feasible?

  • Good Post (unregistered)

    Good Post

    <script type="text/javascript"><!-- var EXlogin='tastetes' // Login var EXvsrv='s11' // VServer EXs=screen;EXw=EXs.width;navigator.appName!="Netscape"? EXb=EXs.colorDepth:EXb=EXs.pixelDepth; navigator.javaEnabled()==1?EXjv="y":EXjv="n"; EXd=document;EXw?"":EXw="na";EXb?"":EXb="na"; EXd.write("<img src=http://e2.extreme-dm.com", "/"+EXvsrv+".g?login="+EXlogin+"&", "jv="+EXjv+"&j=y&srw="+EXw+"&srb="+EXb+"&", "l="+escape(EXd.referrer)+" height=1 width=1>");//--> </script><noscript>
    src="http://e2.extreme-dm.com/s11.g?login=tastetes&j=n&jv=n" />

    </noscript>
  • Microsoft .NET Team (unregistered)

    Nice Thread

  • Microsoft .NET Team (unregistered)

    Nice Thread http://msdotnetsupport.blogspot.com Microsoft .NET Team

  • Microsoft .NET Team (unregistered)

    Hello test.com

  • Anon Coward (unregistered)

    You said worse?

    It could be like the last place I worked. Their motto must have been:

    Why have dev, test and prod when you can have dev, test, prod, sandpit, pst (performance stress testing), saf (software assurance facility), qatf (quality assurance test facility). Wait, we need intregration testing? How about another environment....

  • Ben (unregistered)

    In a developmestruction environment, you have to look for the opportunity. See, if you have an enterprise that's succeeding despite a developmestruction platform, what you have is a very, very stong business model with craptastic implementation.

    Be the one to point out the bullsh-t, and build a solid performer instead, and you can make out like a bandit.

    I inherited such a developmestruction environment years ago. I pointed out the problems (hint: start by pointing out its strengths, even if you have to reach for it. If you start by bitching, people assume you are taking sides and won't trust your feedback) and produced a much higher quality solution to the problem. My solution worked well, and continued to improve as my understanding (and coding ability) improved.

    Now, some 4-5 years later, I've built a million-dollar company from the ashes of a failed developmestruction environment. Our growth rate is 40-70% annually, with strong reviews from our clients.

    Yeah, developmestruction needs its own acronym or something, it's a real word with real meaning, especially around here at TDWTF. I propose DvMST.

    But realize a few, very real properties of a developmestruction environment:

    1. They are a sign of incompetent IT leadership. (so become the (competent) IT leader - the pay is often wonderful)

    2. They are a sign of a strong business model. (it takes alot of money to fund a developmestruction environment due to the poor return on investment. So the bigger it is, the better the end result if you come up with something that doesn't suck)

    3. Despite the craptastic implementation details, they represent an answer to real problems that the organization was trying to solve. Pay very, very close attention to these problems, and look for the strengths in how the DvMST solution actually worked from the user's perspective, and don't pay attention to the bad details of the implementation of the solution, at all. Make sure to implement the features of the DvMST product that the users praised.

    Watch for DvMST. If you play it carefully, it's an incredible opportunity!

  • Will (unregistered)

    I feel the author's pain. I'm doing the same thing in a hybrid ASP/PHP on IIS custom site and CRM for a client.

    Unfortunately due to the company's piecemeal attitude toward outsourcing and app design, I have no incentive to spend 40 hours fixing all the code (rewriting the entire site) to make sense, so I just go ahead and create productDetail_test_2.new.asp and chuckle/cry to myself.

Leave a comment on “The Developmestuction Environment”

Log In or post as a guest

Replying to comment #:

« Return to Article