Comment On K.I.T.T. on a Critical Mission

Christian P felt kind of bad. His company had just been awarded a contract to take over in-house software development at a fairly large underwriting agency. Not only would six developers be laid off immediately, but the remaining three would be responsible for transitioning their replacements before getting laid off. On Christian's first day, he was prepared to be met with anger, sadness, resentment, hopelessness, and even hatred. But there was none of that; instead, it seemed as if the outgoing developers had a feeling of relief. [expand full text]
« PrevPage 1 | Page 2Next »

Re: K.I.T.T. on a Critical Mission

2006-11-29 14:27 • by Anonymous

I am quite fond of the implementation of single-threading using multi-threading quite unique.

At least he left the infrastructure to convert it to multi-threading again, assuming anyone wants to take on all that work.

Re: K.I.T.T. on a Critical Mission

2006-11-29 14:31 • by WASABI
You might want to take a look to the

component. A quick google search returned this: http://www.bsdg.org/SWAG/DELPHI/0190.PAS.html

Re: K.I.T.T. on a Critical Mission

2006-11-29 14:31 • by Sam
Hey, MJ is still active in the Firebird database world. Maybe that free component is the only piece of code in that miracle which really works as advertised.

Re: K.I.T.T. on a Critical Mission

2006-11-29 14:32 • by Tigress
So, maybe my idea of making a KITT-type scanner out of the activity leds on our switches wasn't so bad after all. ;)

Re: K.I.T.T. on a Critical Mission

2006-11-29 14:34 • by Bitter Like Quinine

I used to work for a High Energy Physics lab writing software for the control system.

We had one manager who could just never walk past the main control room without 'tweaking' something. So we made up a control screen with meters, sliders and indicators that could be attached to a (real life) knob. Now the manager would wander into the control room, see the eye catching screen (quickly put up by the operators), gently turn the knob until some indicator was more to his liking and walk out again, apparently satisfied that he'd done his bit for the project.

 As far as I know, twiddler.cdf is still there.

Re: K.I.T.T. on a Critical Mission

2006-11-29 14:41 • by Martijn Tonies

Funky! I guess I'm the first that is happy to show up on The Daily WTF :)

 

Someone contacted me via my blog, I just had a quick look through the source of the component ( I still have it ) and it's dated 10-28-1996.

Thanks for contacting and letting me know!

Backlink: http://blog.upscene.com/martijn/index.php?entry=entry061129-203710

 

--

Martijn Tonies

Upscene Productions

 

Re: K.I.T.T. on a Critical Mission

2006-11-29 14:43 • by Sean

This UDP is lazy.  Someone probably had to manually login and start the application anytime the machine was rebooted.  A real rock star would include a script to automatically login a user session and start the app.

Some may foolishly question why it would be a GUI instead of a service.  Well, you can't put a useless red status bar in a service now, can you?
 

Re: K.I.T.T. on a Critical Mission

2006-11-29 14:43 • by Willbo Baggins
104351 in reply to 104343
Hrm... -I- work for a HEP lab.

Trying to figure out if you work with me or not. :-P

*finding all cdf files*

Re: K.I.T.T. on a Critical Mission

2006-11-29 14:47 • by Volmarias
104352 in reply to 104351
This wasn't funny, this wasn't terrible, it just filled me with more existential dread than Jean-Paul Sartre ever could in college.

Re: K.I.T.T. on a Critical Mission

2006-11-29 14:52 • by MrData

This further supports my theory that All People, not just Germans, love David Hasselhoff (and KITT).

 

Sorry, couldn't resist. 

Re: K.I.T.T. on a Critical Mission

2006-11-29 14:58 • by Sizer

I guess the multi-threading through single-threading solution is a better solution for someone who just can't figure out how to do synchronization than the other horrid hack of just inserting sleep()s everywhere near critical code blocks (which are determined to be critical because it tends to crash there).

 

Re: K.I.T.T. on a Critical Mission

2006-11-29 15:00 • by pnieuwkamp
104356 in reply to 104338

Anonymous:
You might want to take a look to the
component. A quick google search returned this:
http://www.bsdg.org/SWAG/DELPHI/0190.PAS.html
Hmm, hsbos,
Hogeschool 's Hertogenbosch.. I got my Bachelor of Science there. They
merged and renamed it Avans Hogeschool a few years back though.

 At
work I have to mainain a monstrosity like this (not the component, the
processing engine), it has a flashing beeping userinterface if (or
should I say when) something goes wrong, whilst emailing, texting
(through an email2sms gateway) and dialing supervisors at the same
time. It consists of 1 HUGE function (aprox. 5k LOC) that downloads
from ftp, reads files, checks hundreds of things, and it does so in the
most procedural and spagetticodish way possible, using tens of global
variables, all wrapped in _ONE_ try / empty catch...

 Fortunately,
even though the code is still a mess, it's pretty stable after a lot of
hard work and cursing the one who wrote it, and we rarely have to
change anything anymore.

Re: K.I.T.T. on a Critical Mission

2006-11-29 15:01 • by joe_bruin

I have created a new programming paradigm.  I shall call it Serial Threading.  With Serial Threading you need none of the confusing and difficult-to-use locking, signalling, and waiting that plague current multithreaded programming systems.  This is designed to simplify multithreaded programming and reduce the obscure errors that one often gets when multiple threads are trying to do something at the same time.

example code:

/* serially threaded application running a producer thread and a consumer thread (not at the same time, of course) */
do
{
  producer_thread_main_loop_iteration();
  consumer_thread_main_loop_iteration();
}
while(!done);

Re: K.I.T.T. on a Critical Mission

2006-11-29 15:05 • by Ghost Ware Wizard

ARGH

the "Ultra Dedicated Programmer" working on "His" engine was the in-house idiot/expert right? Especially since these people, self-proclaimed gurus at vapor ware, basically *look* good "His" engine worked right?  Translation: Only the "Ultra Dedicated Programmer" was the one to use it, or could use it properly.  Wtf #1 is the obvious "make it so others can't maintain it for job security" and wtf #2 is he left telling others to tweek it without actually *using* it....

 <Idiots are everywhere.  They keep following me around/>

 

Re: K.I.T.T. on a Critical Mission

2006-11-29 15:06 • by Ghost Ware Wizard
104362 in reply to 104343
I love it :)

Re: K.I.T.T. on a Critical Mission

2006-11-29 15:08 • by miraculous

"Surviving after being shot twelve times, thrown from an airplane, landing on a rosebush with a hornets nest inside, dragged out to the river by a bear, carried downstream over Grade VI rapids, and spit out to the ocean for a three-day tread"

 

Know thats miraculous....

Re: K.I.T.T. on a Critical Mission

2006-11-29 15:09 • by miraculous
104367 in reply to 104366
Anonymous:

Know

Now

*Dolt*

Re: K.I.T.T. on a Critical Mission

2006-11-29 15:21 • by Jman
104369 in reply to 104343
Ha! Nice.  Also, I probably know the person that you are speaking about, since I also work for the CDF collaboration.  I'm guessing you were talking about the CDF control room next to the cloud chamber?

Re: K.I.T.T. on a Critical Mission

2006-11-29 15:33 • by Richard C Haven
104373 in reply to 104361
There are two ways of constructing software: one way is to make it so
simple that that there are obviously no deficiencies; the other way is
to make it so complicated that there are no obvious deficiencies. --
Charles Hoare

Re: K.I.T.T. on a Critical Mission

2006-11-29 15:33 • by Michael Bolton
104374 in reply to 104349
So what's the over/under on when Martijin will get a cease and desist from Intertrode for posting their source code?

Re: K.I.T.T. on a Critical Mission

2006-11-29 15:36 • by Wuggy
104376 in reply to 104359
joe_bruin:

I have created a new programming paradigm.  I shall call it Serial Threading.  With Serial Threading you need none of the confusing and difficult-to-use locking, signalling, and waiting that plague current multithreaded programming systems.  This is designed to simplify multithreaded programming and reduce the obscure errors that one often gets when multiple threads are trying to do something at the same time.



Sounds like Active Objects to me. :)



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

Re: K.I.T.T. on a Critical Mission

2006-11-29 15:37 • by Corporate Cog
104377 in reply to 104338

I can't help but complain about Delphi (now known as BDS).  I've been working with it for years (I know, I've nobody to blame but myself).  I've developed several of my own components, and tried to build and install this one.  I just couldn't figure out how to get it to appear on the "component pallette" to save my life.

Damn I'm glad Delphi/BDS is dead...
 

Re: K.I.T.T. on a Critical Mission

2006-11-29 16:12 • by jer
Martin?


http://blog.upscene.com/martijn/index.php?entry=entry061129-203710

Re: K.I.T.T. on a Critical Mission

2006-11-29 16:19 • by JonnyBoy

K.I.T.T., get me outa here!!!!

Re: K.I.T.T. on a Critical Mission

2006-11-29 16:21 • by jer
104396 in reply to 104390
Anonymous:
Martin?


http://blog.upscene.com/martijn/index.php?entry=entry061129-203710



sry forgot to link :)


http://blog.upscene.com/martijn/index.php?entry=entry061129-203710

Re: K.I.T.T. on a Critical Mission

2006-11-29 16:27 • by GrandmasterB
104398 in reply to 104377

Anonymous:
  I've been working with it for years...I just couldn't figure out how to get it to appear on the "component pallette" to save my life.

If you've been working with Delphi 'for years' and cant figure out how to register a component, you are either a liar or a complete dimwit who shouldnt be allowed near a computer.  Add a couple lines of code in your source telling it on what tab you want it to go, and then select 'install component' from the menu.  Wow, so tough.  My goodness, how do you manage to feed yourself on a day to day basis?

Damn I'm glad Delphi/BDS is dead...

Somebody better tell CodeGear...

I've never understood this fascination with declaring Delphi's death.  Its unlike any product I can think of in this regard.  I have bookmarked usenet posts (via google groups) going back to the mid 90's proclaiming it dead.  Why do people care?  If you dont like it, use C++ or Java instead.  Me, I'll happily continue to use Delphi and be more productive than the C++ programmers who work for my competitors.

 

Re: K.I.T.T. on a Critical Mission

2006-11-29 16:35 • by utu
104402 in reply to 104350

Sean:
Some may foolishly question why it would be a GUI instead of a service.  Well, you can't put a useless red status bar in a service now, can you?

If you write it as a service, you can make it launch a nice GUI (since services can interact with desktop - any desktop) for each and every user that happens to log on the machine no matter if they want it or not - plus make it nearly impossible to get rid of. And you can have a uniquely useless red flashy status bar in that GUI if you so wish :)

Re: K.I.T.T. on a Critical Mission

2006-11-29 16:36 • by darin
104403 in reply to 104350
Sean:

This UDP is lazy.  Someone probably had to manually login and start the application anytime the machine was rebooted.

The of the only Windows program I ever had to write involved a service to send some incoming mail to our application.  This used Microsoft's MAPI component that communicated with their Exchange mail server.  This was supposed to be a completely non-interactive service, running all the time.  I'm not all that familiar with Windows, but I researched forever trying to figure out how to get this thing to run as a service without first logging in, and I couldn't do it.  It could run as a service as I recall, but it would only start if someone was logged in first.  The snag was that you had to use a normal windows event loop, which didn't work well with services.  This may have been fixed over time, but back then people told me that I was basically stuck.

So I basically had to suck it up.  Everytime I told a customer "yes, you have log into your computer after it reboots so that the service can run" I could feel them staring at me like I was incompetent or lazy.  People don't like to hear that you can't fix their application, or that another mail server would fix the problem, etc.  They were already annoyed enough that the installation instructions required a service pack to be applied...

Re: K.I.T.T. on a Critical Mission

2006-11-29 16:42 • by Anony Moose
104406 in reply to 104376

Anonymous:
Sounds like Active Objects to me. :)

Then you need to read more carefully, and understand what you're talking about.  ;)

The point to active objects is that the thread that sent the request continues running while the request is executed simultaneous in a second thread, possibly even on a separate processor for genuine parallel execution. So a thread can send multiple requests to multiple genuine threads, do its own work, and only then need to wait for its requests to finish executing.

WTF-style "serial threading", on the other hand, requires the thread that sent the request to wait for the request to be executed. Which is clearly very different because it doesn't include the important element of active objects, which is "two threads executing in parallel".

Re: K.I.T.T. on a Critical Mission

2006-11-29 16:49 • by Mikademus
104407 in reply to 104406
Anyone else that remembers the movie "Wargames"? I personally like the "lots of blinking lights" design school, not in interactive programs though, but it sure makes those looming hulks more interesting, and as for services, it does add that "thing that goes BING!"-factor that makes managers understand things are actually happening.

Re: K.I.T.T. on a Critical Mission

2006-11-29 16:51 • by ssprencel
104408 in reply to 104403
darin:
Sean:

This UDP is lazy.  Someone probably had to manually login and start the application anytime the machine was rebooted.

The of the only Windows program I ever had to write involved a service to send some incoming mail to our application.  This used Microsoft's MAPI component that communicated with their Exchange mail server.  This was supposed to be a completely non-interactive service, running all the time.  I'm not all that familiar with Windows, but I researched forever trying to figure out how to get this thing to run as a service without first logging in, and I couldn't do it.  It could run as a service as I recall, but it would only start if someone was logged in first.  The snag was that you had to use a normal windows event loop, which didn't work well with services.  This may have been fixed over time, but back then people told me that I was basically stuck.

So I basically had to suck it up.  Everytime I told a customer "yes, you have log into your computer after it reboots so that the service can run" I could feel them staring at me like I was incompetent or lazy.  People don't like to hear that you can't fix their application, or that another mail server would fix the problem, etc.  They were already annoyed enough that the installation instructions required a service pack to be applied...

 

I'm not sure how long ago you're talking about but how long has "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" been arouund?  Windows 9x?  You may not have gotten that "Service" look but the only people who would know are the people thumbing through Task Manager when they see your process.  Actually, without being MCSE certified, I'm think there's a couple of easy work-arounds.  I'm thinking you got some bad advice.

Re: K.I.T.T. on a Critical Mission

2006-11-29 16:59 • by utu
104413 in reply to 104408
ssprencel:

I'm not sure how long ago you're talking about but how long has "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" been arouund?  Windows 9x?  You may not have gotten that "Service" look but the only people who would know are the people thumbing through Task Manager when they see your process.  Actually, without being MCSE certified, I'm think there's a couple of easy work-arounds.  I'm thinking you got some bad advice.

You know... that requires that someone logs into the machine. I believe the purpose was to prevent the need for anyone logging in; meaning that no matter if someone was logged in or not, the system would be available as long as the machine happened to be powered on.

Re: K.I.T.T. on a Critical Mission

2006-11-29 17:00 • by Joe
104414 in reply to 104349
Well, that's good that you can be a good sport about it. I shudder to think of some of the things I wrote 10 years ago as a budding programmer that might still be "out there".

Re: K.I.T.T. on a Critical Mission

2006-11-29 17:08 • by Zlodo

I always found hollywoodian intepretation of computers in movies ridiculous with all their pointless diagrams, graphics and whatnot.

It would seem that they were more realistic than I thought, however.

Re: K.I.T.T. on a Critical Mission

2006-11-29 17:12 • by shadowman
104417 in reply to 104414

Anonymous:
Well, that's good that you can be a good sport about it. I shudder to think of some of the things I wrote 10 years ago as a budding programmer that might still be "out there".

 

The WTF isn't Martijn Tonies's Knight Rider program -- it's the fact that someone decided to get it off the internet and put it in this "mission critical system"

Re: K.I.T.T. on a Critical Mission

2006-11-29 17:23 • by anonymous
104424 in reply to 104413
utu:
ssprencel:

I'm not sure how long ago you're talking about but how long has "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" been arouund?  Windows 9x?  You may not have gotten that "Service" look but the only people who would know are the people thumbing through Task Manager when they see your process.  Actually, without being MCSE certified, I'm think there's a couple of easy work-arounds.  I'm thinking you got some bad advice.

You know... that requires that someone logs into the machine. I believe the purpose was to prevent the need for anyone logging in; meaning that no matter if someone was logged in or not, the system would be available as long as the machine happened to be powered on.

So isn't this what "HKLM\...\RunServices" is intended for? Or did this not exist back then? 

Re: K.I.T.T. on a Critical Mission

2006-11-29 17:28 • by ssprencel
104427 in reply to 104424
Anonymous:
utu:
ssprencel:

I'm not sure how long ago you're talking about but how long has "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" been arouund?  Windows 9x?  You may not have gotten that "Service" look but the only people who would know are the people thumbing through Task Manager when they see your process.  Actually, without being MCSE certified, I'm think there's a couple of easy work-arounds.  I'm thinking you got some bad advice.

You know... that requires that someone logs into the machine. I believe the purpose was to prevent the need for anyone logging in; meaning that no matter if someone was logged in or not, the system would be available as long as the machine happened to be powered on.

So isn't this what "HKLM\...\RunServices" is intended for? Or did this not exist back then? 

 I knew I got the HKLM - HKCU thing right.

Re: K.I.T.T. on a Critical Mission

2006-11-29 17:29 • by Corporate Cog
104428 in reply to 104398
GrandmasterB:

Add a couple lines of code in your source telling it on what tab you want it to go, and then select 'install component' from the menu.  Wow, so tough.  My goodness, how do you manage to feed yourself on a day to day basis?

Those lines were already there in the source for the component. 

GrandmasterB:

and then select 'install
component' from the menu.  Wow, so tough.  My goodness, how do you
manage to feed yourself on a day to day basis?

Did that (obviously).  Doesn't work.  That's why it sucks.  You do the same thing your coworker does; his works, yours doesn't.
 

Re: K.I.T.T. on a Critical Mission

2006-11-29 18:03 • by Mr
104437 in reply to 104350
Umm... yes you can. You just have to set your service to interact with the desktop.

Re: K.I.T.T. on a Critical Mission

2006-11-29 18:14 • by Jameson Laphroaig
104440 in reply to 104428


Did that (obviously).  Doesn't work.  That's why it sucks.  You do the same thing your coworker does; his works, yours doesn't.

 

Your coworker's worked and yours didn't, so Delphi sucks? Your apparent logic disability may have had something to do with it as well.

Components don't always need to be installed anyway. Just "use" the unit and create the object directly in code. Delphi sucks like that too because it allows you to think for your self and work around a problem in another way rather than rely on the expectation of convenience, which turns out to be the upper limit of some people's capabilities.

 

Re: K.I.T.T. on a Critical Mission

2006-11-29 18:41 • by Corporate Cog
104445 in reply to 104440
Anonymous:

Your coworker's worked and yours didn't, so Delphi sucks?

Yes, it sucks because you see this alot. 

Anonymous:

Components
don't always need to be installed anyway. Just "use" the unit and
create the object directly in code. Delphi sucks like that too because
it allows you to think for your self and work around a problem in
another way rather than rely on the expectation of convenience, which
turns out to be the upper limit of some people's capabilities.

Yes, I know I could do that.  But I expect installing a component to just work.  An "expectation of convenience" is something I get with superior IDEs.  It's a good thing.

I have a right to bitch about Delphi because it's caused me so much pain over the years.
 

Re: K.I.T.T. on a Critical Mission

2006-11-29 19:10 • by ElSicilianoMaldito
104448 in reply to 104445

Just said
  "I dont know hot to do this..."
   or "I dont know how to use Delphi..."
  
Is not the same "im a noob in Delphi" to
  "Delphi Sucks"

Dont Justify your ingnorance Sr...

 You can do almost anything and easy with delphi
  IF YOU KNOW HOW TO USE IT

Re: K.I.T.T. on a Critical Mission

2006-11-29 19:24 • by eyu
50% more for a contractor isn't that much if you factor in the additional taxes.

Re: K.I.T.T. on a Critical Mission

2006-11-29 21:13 • by Anonymous

Alex Papadimoulis:

For whatever reason, he was never able to figure out the source of some rather obscure multithreading errors through the system, so he devised a "work-around."  A Thread Manager was created to allow only one of the application's threads to run at a time. When a thread completed its task, it would then have to notify the Thread Manager so that the next thread in the queue could be reanimated.


This can actually be a useful technique, for implementing coroutines, since most environments don't support coroutines directly. (Okay, I wouldn't use a Thread Manager, I'd just use a mutex, but whatever.)


eyu:

50% more for a contractor isn't that much if you factor in the additional taxes.


It might even be less. The usual rule of thumb is that the company pays as much in overhead for a given employee (taxes, benefits, office space, etc.) as it does in salary.

 

Re: K.I.T.T. on a Critical Mission

2006-11-29 23:05 • by triso
104470 in reply to 104367
Anonymous:
Anonymous:

Know thats



Now that's


*Dolt*



"Double Dolt"


 


Re: K.I.T.T. on a Critical Mission

2006-11-30 03:40 • by mallard
Of course, The Real WTF(tm)  is that everyone keeps attributing that scanner to Knight Rider's KITT, when it in fact orignates from the Cylons of Battlestar Galactica (the 1978 series, obviously). 

Glen A Larson, was the creator of both shows, reused the effect "because he liked it".

http://en.wikipedia.org/wiki/KITT#Trivia

Re: K.I.T.T. on a Critical Mission

2006-11-30 04:05 • by PLasmab
This is not the wtf you are looking for!

Re: K.I.T.T. on a Critical Mission

2006-11-30 04:13 • by Marc

After declaring that his system was "perfect,"

 =D
 

Re: K.I.T.T. on a Critical Mission

2006-11-30 04:52 • by anonymous
104485 in reply to 104484

Re: K.I.T.T. on a Critical Mission

2006-11-30 05:36 • by Mike Dimmick
104489 in reply to 104402

utu:
If you write it as a service, you can make it launch a nice GUI (since services can interact with desktop - any desktop) for each and every user that happens to log on the machine no matter if they want it or not - plus make it nearly impossible to get rid of. And you can have a uniquely useless red flashy status bar in that GUI if you so wish :)

Interactive services are going away in Vista and "Longhorn" Server. They'll still run, but by default, the user won't be able to see any UI that they do create. It's already a problem for remote administration using Remote Desktop, since interactive service GUI only appears in the console session - you have to specify the /console switch to mstsc.exe in order to connect to the console session remotely. This only works on Windows Server 2003 - it does not work on Windows 2000.

If Fast User Switching is turned on for Windows XP, the first user to log on gets session 0, and will see interactive service UI. Subsequent users - if the first user has not logged off - will get higher session numbers, and will not see interactive service UI.

« PrevPage 1 | Page 2Next »

Add Comment