POV-Ray : Newsgroups : povray.off-topic : This is great Server Time
6 Sep 2024 01:24:25 EDT (-0400)
  This is great (Message 71 to 80 of 94)  
<<< Previous 10 Messages Goto Latest 10 Messages Next 10 Messages >>>
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

From: Chambers
Subject: Re: This is great
Date: 25 Aug 2009 00:46:15
Message: <4a936c97$1@news.povray.org>
Darren New wrote:
> 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.
> 

Aren't Callback functions often used in places where it's not easy to 
just change one thing and recompile?  I would think that many parts of 
the codebase would depend on that specific function signature being the 
way it is.

...Chambers


Post a reply to this message

From: Darren New
Subject: Re: This is great
Date: 25 Aug 2009 01:19:28
Message: <4a937460@news.povray.org>
Chambers wrote:
> Aren't Callback functions often used in places where it's not easy to 
> just change one thing and recompile?  I would think that many parts of 
> the codebase would depend on that specific function signature being the 
> way it is.

I would think if you have a callback routine that actually uses the third 
parameter, passing the right thing would be necessary each time, but you'd 
also have that information each time. I.e., you wouldn't be invoking the 
callback that depended on which controller was invoking it if it wasn't 
actually coming from the controller. Since the other routines didn't use 
that third parameter, they could get a dummy value there everywhere they're 
called from a context where the new parameter doesn't make sense.

I can see situations where that would be difficult to resolve, but you 
wouldn't be able to resolve it by passing the integer in cast to void* in 
those cases either.  I.e., given that they solved the problem by sometimes 
(i.e., conditionally) passing the value as the wrong type and then 
extracting it where appropriate, it doesn't seem like it's the sort of 
problem that would be hard to solve by adding a new variable of the right 
type (modulo performance problems and/or lacking some source code, of course).

If they were using a language where functions can have default arguments, 
this would the canonical example of "a good place to use that." :-)

-- 
   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: scott
Subject: Re: This is great
Date: 25 Aug 2009 05:01:53
Message: <4a93a881@news.povray.org>
> 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 know, I used to work supplying the displays for phones, and every last 
tiny bit of power reduction was always demanded.  For standby mode (when you 
haven't touched any keys for a minute or so) we ended up with reducing the 
display to just a few horizontal lines (enough to show the time and a few 
icons), reducing to 3-bit colour (ie each RGB sub-pixel either fully on or 
off) and reducing to 5 Hz refresh.  Then you can design the power supply and 
driving circuits in a clever way so that in standby you only need a fraction 
of the electronics running.  Because production volumes are so high there is 
plenty of cash around for developing really clever and complex stuff to save 
power and improve performance.

> 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.

Oh yes, my current car and my last car had that.  It means when someone 
calls you the car can display the name of the person from the phonebook. 
Note that the phonebook in most phones is stored in the phone and not on the 
SIM card, because the SIM card has very limited storage capacity.  Also it 
means if you want to call someone you can scroll through the address book on 
the car display and not have to use the tiny buttons and screen on your 
phone whilst driving.


Post a reply to this message

From: scott
Subject: Re: This is great
Date: 25 Aug 2009 05:03:15
Message: <4a93a8d3@news.povray.org>
> 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.

Exactly the reason why most level editors for games are crap.


Post a reply to this message

From: Invisible
Subject: Re: This is great
Date: 25 Aug 2009 05:29:20
Message: <4a93aef0$1@news.povray.org>
>> 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.
> 
> Exactly the reason why most level editors for games are crap.

I was wondering about that...

Personally, after using a few level editors, I find it absolutely 
*astonishing* that games are ever produced. I mean, if it takes 4 hours 
of hassle to construct an empty cuboid room, how the hell do people 
construct anything customers would pay money for?!


Post a reply to this message

From: Chambers
Subject: Re: This is great
Date: 25 Aug 2009 09:48:28
Message: <4a93ebac$1@news.povray.org>
Invisible wrote:
> Personally, after using a few level editors, I find it absolutely 
> *astonishing* that games are ever produced. I mean, if it takes 4 hours 
> of hassle to construct an empty cuboid room, how the hell do people 
> construct anything customers would pay money for?!

They go the UT3 route, and build the whole level in 3DS Max (you have no 
idea how much this "design decision" pissed me off when I found out. 
What's the point of UnrealEd if it just imports static meshes from Max?)

...Chambers


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.