POV-Ray : Newsgroups : povray.off-topic : A programmer's etymology Server Time
1 Nov 2024 03:15:28 EDT (-0400)
  A programmer's etymology (Message 1 to 10 of 27)  
Goto Latest 10 Messages Next 10 Messages >>>
From: Anthony D  Baye
Subject: A programmer's etymology
Date: 23 Jul 2014 02:20:01
Message: <web.53cf52adaaf53cca1538d4890@news.povray.org>
How well do you know your bugs?

bohrbug: a good, solid, bug.  named for the Bohr model of atomic structure.
bohrbugs do not change their behavior and are relatively easily detected.

hindenbug: a bug with catastrophic behavior.

heisenbug: a software bug that seems to disappear when one attempts to study it.


programmer notices that the code should never have worked in the first place.

mandelbug: a bug whose causes are so complex as to defy remediation, or one
which demonstrates seemingly chaotic or even non-deterministic behavior.


I hope you find these as amusing as I did.

Regards,
A.D.B.


Post a reply to this message

From: Francois Labreque
Subject: Re: A programmer's etymology
Date: 23 Jul 2014 08:55:40
Message: <53cfb0cc@news.povray.org>

> How well do you know your bugs?
>
> bohrbug: a good, solid, bug.  named for the Bohr model of atomic structure.
> bohrbugs do not change their behavior and are relatively easily detected.
>
> hindenbug: a bug with catastrophic behavior.
>
> heisenbug: a software bug that seems to disappear when one attempts to study it.
>

> programmer notices that the code should never have worked in the first place.
>
> mandelbug: a bug whose causes are so complex as to defy remediation, or one
> which demonstrates seemingly chaotic or even non-deterministic behavior.
>
>
> I hope you find these as amusing as I did.
>
> Regards,
> A.D.B.
>
I might steal a few of those.

-- 
/*Francois Labreque*/#local a=x+y;#local b=x+a;#local c=a+b;#macro P(F//
/*    flabreque    */L)polygon{5,F,F+z,L+z,L,F pigment{rgb 9}}#end union
/*        @        */{P(0,a)P(a,b)P(b,c)P(2*a,2*b)P(2*b,b+c)P(b+c,<2,3>)
/*   gmail.com     */}camera{orthographic location<6,1.25,-6>look_at a }


Post a reply to this message

From: Orchid Win7 v1
Subject: Re: A programmer's etymology
Date: 23 Jul 2014 16:30:33
Message: <53d01b69$1@news.povray.org>
On 23/07/2014 07:14 AM, Anthony D. Baye wrote:
> I hope you find these as amusing as I did.

I see somebody's been reading the hacker jargon file, then...

We had a catastrophic heisenbug the other week. When you run the 
application, if you click on one of the settings on the configuration 
page, it actually *runs* the action being configured, rather than just 
changing the setting. Utterly mystified as to how such a bizarre thing 
could even be remotely possible, we waded through the code. No hint of 
what might cause such a thing. So we ran a debug build of the program... 
and the bug vanished.

Much poking, and it turns out that if you run the version of the 
software produced by the automated build system, the bug is completely 
repeatable. If you build the software (in debug or release mode) 
yourself, it works perfectly. What the actual hell??

When we actually found the root cause, it was truly horrifying. It seems 
that the automated code obfuscation system we run our code through is 
BREAKING OUR CODE!!! O_O The "solution" was to turn off code obfuscation 
in certain parts of the program. I say "solution" since this obviously 
isn't a solution at all; the fact that this event occurred at all proves 
that the obfuscater is defective, and that another bug like this could 
occur AT ANY MOMENT. It's also provably impossible to test for, since 
the obfuscater is also rewriting our tests, and it might rewrite the 
test case correctly but the production code incorrectly. So... yeah, 
pretty worrying, actually.

Also: Technically it's not a bug unless it's in Hemiptera.


Post a reply to this message

From: clipka
Subject: Re: A programmer's etymology
Date: 23 Jul 2014 17:39:20
Message: <53d02b88$1@news.povray.org>
Am 23.07.2014 22:30, schrieb Orchid Win7 v1:

> When we actually found the root cause, it was truly horrifying. It seems
> that the automated code obfuscation system we run our code through is
> BREAKING OUR CODE!!!

OUCH!

> Also: Technically it's not a bug unless it's in Hemiptera.

... unless it's a dog.


Post a reply to this message

From: Warp
Subject: Re: A programmer's etymology
Date: 24 Jul 2014 01:06:59
Message: <53d09473@news.povray.org>
Orchid Win7 v1 <voi### [at] devnull> wrote:
> automated code obfuscation system we run our code through

I think this is the real WTF.

-- 
                                                          - Warp


Post a reply to this message

From: clipka
Subject: Re: A programmer's etymology
Date: 24 Jul 2014 03:02:10
Message: <53d0af72@news.povray.org>
Am 24.07.2014 07:06, schrieb Warp:
> Orchid Win7 v1 <voi### [at] devnull> wrote:
>> automated code obfuscation system we run our code through
>
> I think this is the real WTF.

I guess you don't want to obfuscate a large codebase manually. Not only 
because it is a lot of work, but also because there is a high risk of 
breaking the code...

... oh, wait...


Post a reply to this message

From: Orchid Win7 v1
Subject: Re: A programmer's etymology
Date: 24 Jul 2014 03:07:39
Message: <53d0b0bb$1@news.povray.org>
On 24/07/2014 06:06 AM, Warp wrote:
> Orchid Win7 v1<voi### [at] devnull>  wrote:
>> automated code obfuscation system we run our code through
>
> I think this is the real WTF.

The idea is to make it less trivial to reverse-engineer our code and 
steal all our secrets.

...which is interesting, really. We make software for idiots. Idiots 
generally aren't the type of people you'd expect to be 
reverse-engineering computer software. Our software doesn't *do* 
anything particularly complicated; it just puts a user-friendly GUI in 
front of a bunch of existing tools. That might *sound* easy, but it's 
actually surprisingly time-consuming.

Really, if you want to copy our product, it would be quicker to look at 
what it does and write your own one from scratch than to try to figure 
out how ours works internally. The most likely scenario is somebody 
wanting to reverse-engineer our stuff just to disable the license checks.

All the obfuscater actually does is to take every class and rename all 
it's methods to A(), B(), C(), etc. And insert lots of complicated flow 
control into the method's actual code. It appears in this instance, it 
accidentally (!!) renamed two events to the same thing. Oops...


Post a reply to this message

From: Orchid Win7 v1
Subject: Re: A programmer's etymology
Date: 24 Jul 2014 03:07:56
Message: <53d0b0cc@news.povray.org>
On 24/07/2014 08:02 AM, clipka wrote:
> I guess you don't want to obfuscate a large codebase manually. Not only
> because it is a lot of work, but also because there is a high risk of
> breaking the code...
>
> ... oh, wait...

BOOM!


Post a reply to this message

From: clipka
Subject: Re: A programmer's etymology
Date: 24 Jul 2014 03:33:21
Message: <53d0b6c1$1@news.povray.org>
Am 24.07.2014 09:07, schrieb Orchid Win7 v1:
> On 24/07/2014 06:06 AM, Warp wrote:
>> Orchid Win7 v1<voi### [at] devnull>  wrote:
>>> automated code obfuscation system we run our code through
>>
>> I think this is the real WTF.
>
> The idea is to make it less trivial to reverse-engineer our code and
> steal all our secrets.
...
> Really, if you want to copy our product, it would be quicker to look at
> what it does and write your own one from scratch than to try to figure
> out how ours works internally. The most likely scenario is somebody
> wanting to reverse-engineer our stuff just to disable the license checks.

That, most probably.

> All the obfuscater actually does is to take every class and rename all
> it's methods to A(), B(), C(), etc. And insert lots of complicated flow
> control into the method's actual code. It appears in this instance, it
> accidentally (!!) renamed two events to the same thing. Oops...

I guess it's plenty of fun to wade through obfuscated code to figure out 
exactly how the hell the 'fuscator fucked it up...


Post a reply to this message

From: Le Forgeron
Subject: Re: A programmer's etymology
Date: 24 Jul 2014 04:09:30
Message: <53d0bf3a$1@news.povray.org>
On 24/07/2014 09:07, Orchid Win7 v1 wrote:
> On 24/07/2014 06:06 AM, Warp wrote:
>> Orchid Win7 v1<voi### [at] devnull>  wrote:
>>> automated code obfuscation system we run our code through
>>
>> I think this is the real WTF.
> 
> The idea is to make it less trivial to reverse-engineer our code and
> steal all our secrets.
> 

So, you are on the poor-side of companies. Richer companies have a
full-time team with lawyers to track and sue such events.


> ...which is interesting, really. We make software for idiots. Idiots
> generally aren't the type of people you'd expect to be
> reverse-engineering computer software. Our software doesn't *do*
> anything particularly complicated; it just puts a user-friendly GUI in
> front of a bunch of existing tools. That might *sound* easy, but it's
> actually surprisingly time-consuming.
> 
> Really, if you want to copy our product, it would be quicker to look at
> what it does and write your own one from scratch than to try to figure
> out how ours works internally. The most likely scenario is somebody
> wanting to reverse-engineer our stuff just to disable the license checks.
> 
> All the obfuscater actually does is to take every class and rename all
> it's methods to A(), B(), C(), etc. And insert lots of complicated flow
> control into the method's actual code. It appears in this instance, it
> accidentally (!!) renamed two events to the same thing. Oops...

Maybe interpreted language is not the right choice if you want to
protect your code. That's where compiled language have an advantage: the
compilation with full optimisation is already an obfuscation. There is
decompiler... like there is deobfuscater. And they are pretty smart on
small code.

It's one of the three Java issues (Java is about sharing... keeping
secret is not sharing, so the choice of the language for your project
was an error), at least for secretive software. But that's another story.

-- 
IQ of crossposters with FU: 100 / (number of groups)
IQ of crossposters without FU: 100 / (1 + number of groups)
IQ of multiposters: 100 / ( (number of groups) * (number of groups))


Post a reply to this message

Goto Latest 10 Messages Next 10 Messages >>>

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