This post was promoted to the Main Feed by a Ricochet Editor at the recommendation of Ricochet members. Like this post? Want to comment? Join Ricochet’s community of conservatives and be part of the conversation. Join Ricochet for Free.

There are 99 comments.

Become a member to join the conversation. Or sign in if you're already a member.
  1. kedavis Coolidge
    kedavis
    @kedavis

    Django (View Comment):

    When you work systems that stay in the field for a long time, you face platform upgrades, OS upgrades, regular deliveries of software to meet new requirements. If you are integrated into a system-of-systems, it’s a royal pain. The customer had legislated that a third-party package was used for inter-process communications. Of course, it didn’t run on the new platform, and we were dead in the water. This is a situation where working with really sharp people is great.

    I developed an emulator that replaced the communications package and it worked well enough for us to start porting our code. I tested it on the standard hardware and there were no problems. On the new platform that was MUCH faster, occasionally lock-ups occurred. This is a multi-processing system that had both time-critical and real-time components, and no they are not the same thing.

    Our system architect who had initially thought the emulator was a waste of time, but who saw it work and became supportive, checked the code and found a subtle race condition. He fixed it and we were back to porting and testing. Well, almost. It still locked up, though much less frequently. I checked his fix, found the flaw, and managed to correct it. The code was running years later. A good example of team work.

    Yes, not the exact same thing but when the software house I worked at later (they supplied the hardware and the initial software to the manufacturing company, and hired me away when they saw how good I was at fixing their software…  and writing new stuff…) started marketing multi-user PC systems (starting with IBM AT boxes with multiple-serial-port cards to support user terminals) it was using a somewhat crude programming environment that actually kinda simulated close to the mini-computer environment with the smart terminals.  (Although it actually used “dumb” terminals such as Wyse 50: the rest was software.)  But it required a lot more detailed (user-)software interaction.  And if you did that programming the “easy” way, it was slower to run, especially the start-up time for each program.

    One of the first things I did was develop a pseudo-compiler for those screen functions.  You would write your program the “old” way, and once you had the screen functions operating the way you wanted, you copied that code into the “compiler” which would process that stuff into faster-running data that you then copied back into your original program for runtime speed that made customers happy.

    The first data item of each “set” like that was the version number it had been made for.  So even if the “runtime” code was updated later, it could still behave the old way for earlier programs that depended on it, without all those previous programs having to be updated when there was no real need for it.

    And I did something similar for file-handling.

    • #91
  2. Bob Thompson Member
    Bob Thompson
    @BobThompson

    kedavis (View Comment):

    Django (View Comment):

    When you work systems that stay in the field for a long time, you face platform upgrades, OS upgrades, regular deliveries of software to meet new requirements. If you are integrated into a system-of-systems, it’s a royal pain. The customer had legislated that a third-party package was used for inter-process communications. Of course, it didn’t run on the new platform, and we were dead in the water. This is a situation where working with really sharp people is great.

    I developed an emulator that replaced the communications package and it worked well enough for us to start porting our code. I tested it on the standard hardware and there were no problems. On the new platform that was MUCH faster, occasionally lock-ups occurred. This is a multi-processing system that had both time-critical and real-time components, and no they are not the same thing.

    Our system architect who had initially thought the emulator was a waste of time, but who saw it work and became supportive, checked the code and found a subtle race condition. He fixed it and we were back to porting and testing. Well, almost. It still locked up, though much less frequently. I checked his fix, found the flaw, and managed to correct it. The code was running years later. A good example of team work.

    Yes, not the exact same thing but when the software house I worked at later (they supplied the hardware and the initial software to the manufacturing company, and hired me away when they saw how good I was at fixing their software… and writing new stuff…) started marketing multi-user PC systems (starting with IBM AT boxes with multiple-serial-port cards to support user terminals) it was using a somewhat crude programming environment that actually kinda simulated close to the mini-computer environment with the smart terminals. (Although it actually used “dumb” terminals such as Wyse 50: the rest was software.) But it required a lot more detailed (user-)software interaction. And if you did that programming the “easy” way, it was slower to run, especially the start-up time for each program.

    One of the first things I did was develop a pseudo-compiler for those screen functions. You would write your program the “old” way, and once you had the screen functions operating the way you wanted, you copied that code into the “compiler” which would process that stuff into faster-running data that you then copied back into your original program for runtime speed that made customers happy.

    The first data item of each “set” like that was the version number it had been made for. So even if the “runtime” code was updated later, it could still behave the old way for earlier programs that depended on it, without all those previous programs having to be updated when there was no real need for it.

    And I did something similar for file-handling.

    See, we could send you two in there and Elon could get rid of everybody else.

    • #92
  3. kedavis Coolidge
    kedavis
    @kedavis

    Bob Thompson (View Comment):

    kedavis (View Comment):

    Django (View Comment):

    When you work systems that stay in the field for a long time, you face platform upgrades, OS upgrades, regular deliveries of software to meet new requirements. If you are integrated into a system-of-systems, it’s a royal pain. The customer had legislated that a third-party package was used for inter-process communications. Of course, it didn’t run on the new platform, and we were dead in the water. This is a situation where working with really sharp people is great.

    Our system architect who had initially thought the emulator was a waste of time, but who saw it work and became supportive, checked the code and found a subtle race condition. He fixed it and we were back to porting and testing. Well, almost. It still locked up, though much less frequently. I checked his fix, found the flaw, and managed to correct it. The code was running years later. A good example of team work.

    Yes, not the exact same thing but when the software house I worked at later (they supplied the hardware and the initial software to the manufacturing company, and hired me away when they saw how good I was at fixing their software… and writing new stuff…) started marketing multi-user PC systems (starting with IBM AT boxes with multiple-serial-port cards to support user terminals) it was using a somewhat crude programming environment that actually kinda simulated close to the mini-computer environment with the smart terminals. (Although it actually used “dumb” terminals such as Wyse 50: the rest was software.) But it required a lot more detailed (user-)software interaction. And if you did that programming the “easy” way, it was slower to run, especially the start-up time for each program.

    One of the first things I did was develop a pseudo-compiler for those screen functions. You would write your program the “old” way, and once you had the screen functions operating the way you wanted, you copied that code into the “compiler” which would process that stuff into faster-running data that you then copied back into your original program for runtime speed that made customers happy.

    The first data item of each “set” like that was the version number it had been made for. So even if the “runtime” code was updated later, it could still behave the old way for earlier programs that depended on it, without all those previous programs having to be updated when there was no real need for it.

    And I did something similar for file-handling.

    See, we could send you two in there and Elon could get rid of everybody else.

    Not me, I don’t work that hard any more.  :-)  Heck, one reason I went into computers was so that I write a program ONCE and then the computer does the same thing over and over hundreds/thousands/millions of times, as God intended.

    • #93
  4. Django Member
    Django
    @Django

    Bob Thompson (View Comment):

    kedavis (View Comment):

    Django (View Comment):

    When you work systems that stay in the field for a long time, you face platform upgrades, OS upgrades, regular deliveries of software to meet new requirements. If you are integrated into a system-of-systems, it’s a royal pain. The customer had legislated that a third-party package was used for inter-process communications. Of course, it didn’t run on the new platform, and we were dead in the water. This is a situation where working with really sharp people is great.

    I developed an emulator that replaced the communications package and it worked well enough for us to start porting our code. I tested it on the standard hardware and there were no problems. On the new platform that was MUCH faster, occasionally lock-ups occurred. This is a multi-processing system that had both time-critical and real-time components, and no they are not the same thing.

    Our system architect who had initially thought the emulator was a waste of time, but who saw it work and became supportive, checked the code and found a subtle race condition. He fixed it and we were back to porting and testing. Well, almost. It still locked up, though much less frequently. I checked his fix, found the flaw, and managed to correct it. The code was running years later. A good example of team work.

     

    One of the first things I did was develop a pseudo-compiler for those screen functions. You would write your program the “old” way, and once you had the screen functions operating the way you wanted, you copied that code into the “compiler” which would process that stuff into faster-running data that you then copied back into your original program for runtime speed that made customers happy.

    The first data item of each “set” like that was the version number it had been made for. So even if the “runtime” code was updated later, it could still behave the old way for earlier programs that depended on it, without all those previous programs having to be updated when there was no real need for it.

    And I did something similar for file-handling.

    See, we could send you two in there and Elon could get rid of everybody else.

    After I left that program, I didn’t do much coding. I got pushed into other areas: Modeling & Simulation, grid-computing, optimization, mission analysis, system architecture. For a while, I was described as the guy who “went around and un-f***ed things.” I’d be out of place as a software guy at twitter or google. 

    • #94
  5. The Cloaked Gaijin Member
    The Cloaked Gaijin
    @TheCloakedGaijin

    Twitter must really be changing.  I just saw “Thomas Sowell” trending and was a bit worried due to his age.

    Recent trending words or phrases I have seen trending include…

    Thomas Sowell
    Amy Coney Barrett
    Nikki Haley
    Matt Walsh

    • #95
  6. Bishop Wash Member
    Bishop Wash
    @BishopWash

    The Cloaked Gaijin (View Comment):

    Twitter must really be changing. I just saw “Thomas Sowell” trending and was a bit worried due to his age.

    Recent trending words or phrases I have seen trending include…

    Thomas Sowell
    Amy Coney Barrett
    Nikki Haley
    Matt Walsh

    For years people have been saying that Twitter needs a “not dead” tag or something for when older people are trending. 

    • #96
  7. OccupantCDN Coolidge
    OccupantCDN
    @OccupantCDN

    Bishop Wash (View Comment):

    The Cloaked Gaijin (View Comment):

    Twitter must really be changing. I just saw “Thomas Sowell” trending and was a bit worried due to his age.

    Recent trending words or phrases I have seen trending include…

    Thomas Sowell
    Amy Coney Barrett
    Nikki Haley
    Matt Walsh

    For years people have been saying that Twitter needs a “not dead” tag or something for when older people are trending.

    Just for Jimmy Kimmel.

    • #97
  8. kedavis Coolidge
    kedavis
    @kedavis

    OccupantCDN (View Comment):

    Bishop Wash (View Comment):

    The Cloaked Gaijin (View Comment):

    Twitter must really be changing. I just saw “Thomas Sowell” trending and was a bit worried due to his age.

    Recent trending words or phrases I have seen trending include…

    Thomas Sowell
    Amy Coney Barrett
    Nikki Haley
    Matt Walsh

    For years people have been saying that Twitter needs a “not dead” tag or something for when older people are trending.

    Just for Jimmy Kimmel.

    It’s a pretty new story, but still…

     

     

     

    • #98
  9. Raxxalan Member
    Raxxalan
    @Raxxalan

    The Reticulator (View Comment):

    Django (View Comment):

    kedavis (View Comment):

    Django (View Comment):

    Bob Thompson (View Comment):

    kedavis (View Comment):

    Bob Thompson (View Comment):

    Locke On (View Comment):

    An intriguing tweet from Elon today:

    https://nitter.it/elonmusk/status/1593899029531803649#m

    Tech types may find the functional block diagram interesting. Others might find the demographics in the other images intriguing (remember those in pic are those who are staying).

    I can’t keep up with Musk. Didn’t he offer a 3-month’s pay severance package or you could continue and work under his new rules?

    Maybe these are the ones interested in working for a living.

    The ones leaving with severance are getting paid to do another 3 months of nothing. I think he should have offered some kind of bonus to those who stay and work.

    Yeah, they were probably already doing all the work.

    A lot of managers in my old company regarded engineers as fungible commodities. “Get me a four!” “I need a three.” In those cases, the number referred to the salary grade. To some of those half-wits, software is software. Never mind that embedded systems software has almost nothing in common with satellite ground station software. They’ll pick it up. Not that I care about twatter, but I’d hate to think Musk is the same as those managers I’m referring to.

     

    No kidding! Terri took Scot’s MatLab code and converted it to C++ for some arcane reason given to her by the department manager. She got another job but finished the task before leaving. When enhancements were needed, the guy who got the assignment said, “It’s a piece of **** and needs to be completely rewritten.” While rewriting he got ticked off at the department manager who he said was the worst he had ever encountered and left the company, so they handed it over to James who said of the rewritten code, “It’s a piece of **** and needs to be rewritten from the ground up.” He finished just in time for the entire mess to be OBE. Money wasted. /* True. Only the names have been changed to protect the guilty. */

    I have gradually come to the opinion that if you can’t figure out how to clean up the last guy’s mess, you don’t know how to redo it from scratch, either. I have learned this from observation of projects huge and small. I have never seen a complete rewrite that didn’t omit important functionality of the software it replaced.

    That’s just based on my experience–maybe others have observed different things.

    I spend most of my life trying to tell my programmers the parable of Chesterton’s fence.  Sometimes it even works.

    • #99
Become a member to join the conversation. Or sign in if you're already a member.