POV-Ray : Newsgroups : povray.off-topic : This is great Server Time
5 Sep 2024 17:18:52 EDT (-0400)
  This is great (Message 65 to 74 of 94)  
<<< Previous 10 Messages Goto Latest 10 Messages Next 10 Messages >>>
From: Darren New
Subject: Re: This is great
Date: 24 Aug 2009 12:14:54
Message: <4a92bc7e$1@news.povray.org>
Invisible wrote:
> software don't just accept random hangups and crashes as an unavoidable 
> fact of life. They fix them. All of them.

*Probably*, yes.

It's not a matter of "unavoidable fact of life". It's simply a cost to 
benefit ratio. If over the lifetime of your computer you spend (say) six 
hours waiting for it to reboot, or you could spend 60 hours finding and 
fixing the bug that's causing that problem, what do you do?

> Anyway, embedded programming and safety-critical programming are both 
> very specialist.

Not especially, no. Indeed, I bet if you go around your house, you'll find 
you have more embedded applications in your house than you have desktop 
applications.  (Don't forget to count the BIOS, the NIC card, the sound 
card, etc in your PC. ;-)

> I doubt many people will ever see such code in their 
> lives.

Sure. And few people will start their own companies. That doesn't mean 
business law is a specialized endeavor.

 > And I guess you could argue that games programming is pretty
> specialist too... 

I would say so, yes.

> "Most" programs, after all, are either desktop 
> applications or web applications, and most of them just push data around.

Hard to say, really. Certainly the *easy* programs are desktop and web apps.

-- 
   Darren New, San Diego CA, USA (PST)
   Understanding the structure of the universe
    via religion is like understanding the
     structure of computers via Tron.


Post a reply to this message

From: Darren New
Subject: Re: This is great
Date: 24 Aug 2009 12:23:12
Message: <4a92be70$1@news.povray.org>
Invisible wrote:
> The way I read it, they had a structure with two integers and a void 
> pointer.

It says "each event was passed around with two integer arguments and a void 
pointer in case you needed extra parameters."

I guess you could read that as an event being an object or structure. I read 
it as an event being a function call with three arguments. I see now that it 
is pretty ambiguous.

Either way, the right answer was to add the extra field if they needed it. 
It's hard to understand how that would be difficult, with the compiler 
catching the mistakes for you. Harder to be sure if it's an allocated 
structure passed around rather than function arguments, for sure.

> Then again, we're talking about a large, complex codebase. Maybe there's 
> something relevant they forgot to mention or something...

If it's passed around as arguments, you first have to track down all the 
functions that are "event" functions and add the new argument, then pass 
that argument from caller event functions to callee event functions if 
events can call other events. The compiler will help here. (Indeed, you can 
just add the extra argument, and compile, and fix the 
wrong-number-of-arguments error and compile, and etc, working your way up 
the call chain.) Falls apart if you're doing something to queue events for 
later or some such, and the function doing the queuing fails to queue the 
new argument that the function dequeuing needs. That's a bit harder to track 
down.

If it's a structure, you have to make sure you allocate and free the right 
amount of memory, which could certainly be a problem if you're silly enough 
to hard-code the size of the structure (or assumptions about the size) 
anywhere. For example, if you have a big queue of events, and you need 1000 
of them to fit in 8K of memory, and they're 8 bytes each, adding another 2 
bytes to each is going to push you over the limit.

Impossible to say without more info.

-- 
   Darren New, San Diego CA, USA (PST)
   Understanding the structure of the universe
    via religion is like understanding the
     structure of computers via Tron.


Post a reply to this message

From: Darren New
Subject: Re: This is great
Date: 24 Aug 2009 12:24:52
Message: <4a92bed4$1@news.povray.org>
Invisible wrote:
> If you're got to actually change function prototypes then, yeah, that's 
> not going to happen...

Not sure why not. It's actually pretty easy.

You fix the routine that needs the new parameter, and the routine that has 
the new parameter. You compile the code. Anyone who calls the new routine 
won't compile. Fix them to accept a new parameter and pass it in. Iterate 
until all functions on the call chain between where you have the parameter 
and where you need the parameter are passing it down.

-- 
   Darren New, San Diego CA, USA (PST)
   Understanding the structure of the universe
    via religion is like understanding the
     structure of computers via Tron.


Post a reply to this message

From: andrel
Subject: Re: This is great
Date: 24 Aug 2009 15:02:26
Message: <4A92E3C2.3020506@hotmail.com>
On 24-8-2009 18:09, Darren New wrote:
> scott wrote:
>> I guess they didn't bother with such things in the iPhone :-)
> 
> The bit I like best is where they count the number of bytes they 
> received before they turned off the receiver and then adjust the wake-up 
> time they program into the hardware, on the basis that the heat from 
> running the receiver will have made the crystal run at a different speed 
> for the next 1.28 seconds they're asleep, and you don't want to wake up 
> too soon or too late. :-)  Scary stuff going on inside there.
> 
> I also found out that while my car has a bluetooth headset feature built 
> in that lets me make hands-free calls from the car without taking the 
> phone out of my pocket, lots of cars in Europe use the "SIM profile" of 
> bluetooth. So there's an entire phone built into the car that just 
> wirelessly accesses the SIM chip, pulling in the phone book of whoever 
> is in the car and everything. Very cool.
> 
I like that. Nice idea for our cab-driver when he has to transport 
another celebrity.


Post a reply to this message

From: clipka
Subject: Re: This is great
Date: 24 Aug 2009 18:04:59
Message: <4a930e8b$1@news.povray.org>
andrel schrieb:
>> I also found out that while my car has a bluetooth headset feature 
>> built in that lets me make hands-free calls from the car without 
>> taking the phone out of my pocket, lots of cars in Europe use the "SIM 
>> profile" of bluetooth. So there's an entire phone built into the car 
>> that just wirelessly accesses the SIM chip, pulling in the phone book 
>> of whoever is in the car and everything. Very cool.
>>
> I like that. Nice idea for our cab-driver when he has to transport 
> another celebrity.

Yes, that *could* be a security problem :-)

It's not as bad though as one might think: Virtually all phones out 
there won't allow a phonebook download without proper bonding, nor allow 
proper bonding without user interaction. So unless the celebrity is 
really stupid...

... wait - what?! :-P


(BTW, I actually did work on things like those.)


Post a reply to this message

From: clipka
Subject: Re: This is great
Date: 24 Aug 2009 18:13:44
Message: <4a931098$1@news.povray.org>
Darren New schrieb:
> It's not a matter of "unavoidable fact of life". It's simply a cost to 
> benefit ratio. If over the lifetime of your computer you spend (say) six 
> hours waiting for it to reboot, or you could spend 60 hours finding and 
> fixing the bug that's causing that problem, what do you do?

Well, if that's a total of six man-hours (as opposed to maybe thousands 
of people losing six hours each), then it's more economic to leave the 
bug in there. Provided it doesn't cause any other harm like destroying 
valuable data, setting off a thermonuclear war or something...

That's one reason why in-house tools tend to be so crappy: It's more 
economic to accept the loss of productivity of the few people who 
actually use it, than investing that productivity into improving it.


> Hard to say, really. Certainly the *easy* programs are desktop and web 
> apps.

I guess old-fashioned mainframe business apps are rather boring, too.


Post a reply to this message

From: clipka
Subject: Re: This is great
Date: 24 Aug 2009 18:23:26
Message: <4a9312de$1@news.povray.org>
Darren New schrieb:
> You fix the routine that needs the new parameter, and the routine that 
> has the new parameter. You compile the code. Anyone who calls the new 
> routine won't compile.

Are you *perfectly* sure about this??

This is /not/ something you want to break: Any function you happen to 
miss (because it happens to be stored in a void* pointer somewhere, or 
whatever, and you happen to be a bit too tired that night) /will/ screw 
up your running program in a beautifully obscure fashion. Welcome, 
Heisenbug!

Misusing the compiler for identifying stuff affected by code refactoring 
is a risky business.

(Other question is, how long does it take to compile? And how many 
layers of functions do you have that you'll need to repair? Let alone 
that some part involved may be a library you don't have source code 
access to.)


Post a reply to this message

From: Darren New
Subject: Re: This is great
Date: 24 Aug 2009 18:54:21
Message: <4a931a1d$1@news.povray.org>
clipka wrote:
> Well, if that's a total of six man-hours (as opposed to maybe thousands 
> of people losing six hours each), then it's more economic to leave the 
> bug in there. 

Sure. ANd when you start getting into "thousands of people", the equation 
changes again. Now it's not "how many man hours can we save", but "how many 
people won't buy our product because of this bug" vs "how much does the bug 
take to fix."

If only 3 people are going to switch from Windows to Linux because of a bug 
that costs you 6 hours a year, chances of MS spending a man month to fix it 
are slim even if it wastes the time of 1000s of people a year.

>> Hard to say, really. Certainly the *easy* programs are desktop and web 
>> apps.
> 
> I guess old-fashioned mainframe business apps are rather boring, too.

Yup. "Say, generate for me a list of all employees in order of the total 
number of days they've worked since getting hired."

-- 
   Darren New, San Diego CA, USA (PST)
   Understanding the structure of the universe
    via religion is like understanding the
     structure of computers via Tron.


Post a reply to this message

From: Darren New
Subject: Re: This is great
Date: 24 Aug 2009 18:59:00
Message: <4a931b34$1@news.povray.org>
clipka wrote:
> Darren New schrieb:
>> You fix the routine that needs the new parameter, and the routine that 
>> has the new parameter. You compile the code. Anyone who calls the new 
>> routine won't compile.
> 
> Are you *perfectly* sure about this??
> 
> This is /not/ something you want to break: Any function you happen to 
> miss (because it happens to be stored in a void* pointer somewhere, or 
> whatever, and you happen to be a bit too tired that night)

Functions don't get stored in void pointers.  (I know what you mean. 
Understand my point before you complain I missed yours. :-)

If you're complaining that the weak typing of C can fk you up, then sure, of 
course. But then, storing an integer into a void* and hoping none of your 
code ever follows that "pointer" is at least as bad if not worse. At least 
you can't do math on function pointers.

> Misusing the compiler for identifying stuff affected by code refactoring 
> is a risky business.

Sure. Of course there needs to be a modicum of intelligence applied to the 
parts of the code where the compiler can't tell what function it's calling.

> (Other question is, how long does it take to compile? And how many 
> layers of functions do you have that you'll need to repair? 

I wasn't meaning to imply you should be mindlessly mechanical about it. Just 
that the fact there were thousands of functions to fix didn't mean it was 
more difficult than tedious to fix them.

 > Let alone
> that some part involved may be a library you don't have source code 
> access to.)

That's always a potential problem, yes.

-- 
   Darren New, San Diego CA, USA (PST)
   Understanding the structure of the universe
    via religion is like understanding the
     structure of computers via Tron.


Post a reply to this message

From: clipka
Subject: Re: This is great
Date: 24 Aug 2009 19:19:18
Message: <4a931ff6$1@news.povray.org>
Darren New schrieb:
> Sure. ANd when you start getting into "thousands of people", the 
> equation changes again. Now it's not "how many man hours can we save", 
> but "how many people won't buy our product because of this bug" vs "how 
> much does the bug take to fix."

Absolutely. I just didn't want to go /that/ deep into detail ;-)


Post a reply to this message

<<< Previous 10 Messages Goto Latest 10 Messages Next 10 Messages >>>

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.