For Programmers: Free Programming Magazines  


Home > Archive > Fortran > August 2005 > How safe is intellectual property in compiled binaries?









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author How safe is intellectual property in compiled binaries?
Random Programmer

2005-08-08, 5:03 pm

Hello all. I have only passing knowledge of the shady world of hacking
& cracking, but will your source code remain private & safe even if you
publically distribute binaries/executables of your program? Will people
be able to disassemble/decompile your code to view the source code?

When I finish my PhD in a few years, I don't want all my hard work to
just be stolen and copied! I will probably speak to my supervisors when
my thesis submission date is closer, but I'm interested to hear from
the PhD holders here -- whether you think it is a good idea to "dumb
down" the program you submit with your thesis, so that you alone remain
the only person who can do this-or-that.

Just curious...thanks.

Joost

2005-08-08, 5:03 pm

you'll also need to find out what the role of your university (i.e.
employer) is in IP questions...

Joost

Rich Townsend

2005-08-08, 5:03 pm

Random Programmer wrote:
> Hello all. I have only passing knowledge of the shady world of hacking
> & cracking, but will your source code remain private & safe even if you
> publically distribute binaries/executables of your program? Will people
> be able to disassemble/decompile your code to view the source code?
>
> When I finish my PhD in a few years, I don't want all my hard work to
> just be stolen and copied! I will probably speak to my supervisors when
> my thesis submission date is closer, but I'm interested to hear from
> the PhD holders here -- whether you think it is a good idea to "dumb
> down" the program you submit with your thesis, so that you alone remain
> the only person who can do this-or-that.
>
> Just curious...thanks.
>


Quite the opposite. For my PhD, I wrote a program to synthesize spectra
for stars undergoing non-radial pulsation. I made the source code to the
program available to all, under the GNU General Public License. Since
then, quite a few groups around the world have adopted my program, and
it is now widely recognized as the state-of-the-art.

While at times I have felt frustrated that I haven't got as many papers
out of the program, I have got a huge amount of good publicity, which
has helped my career no end.

Ultimately, science is about communicating your results. While you
should certainly be circumspect about widely distributing
work-in-progress, you should give your completed work as much exposure
as possible. The best way to pretect your scientific work is to shout it
from the rooftops, so there is no doubt who the originator is.

Otherwise, if you instead choose the path of secrets and patents --
anathema to science -- your ideas will get so little exposure that they
will be ignored.

cheers,

Rich
Random Programmer

2005-08-08, 5:03 pm

Rich, I agree with you that your free + public method of distribution
is the way to get the most publicity.

However, why should a company hire you if they could have access to
your research & source code publically? They could just hire half a
dozen outsourced (no offence to anyone in particular) staff to take
your place at less cost.

It seems to me, at least, that the best way to ensure your
employability is to make sure your work is unique and indispensable to
a potential employer.

Thanks.

Richard E Maine

2005-08-08, 5:03 pm

In article <dd7vic$f8d$1@scrotar.nss.udel.edu>,
Rich Townsend <rhdt@barVOIDtol.udel.edu> wrote:

> Random Programmer wrote:


>
> While at times I have felt frustrated that I haven't got as many papers
> out of the program, I have got a huge amount of good publicity, which
> has helped my career no end.
>
> Ultimately, science is about communicating your results.


Indeed. I think the OP is worrying about the wrong things. Your biggest
concern should not be about whether you alone can do whatever it is, but
rather whether anyone will care.

Frankly, if you really are the only one that ever does anything with
your thesis material, then I'd say that the odds of it being worth much
are negligible, even if it derives from a genius-level insight. This
isn't a reflection on you in specific (I wouldn't know), but more a
general fact of life. Great work doesn't generally get done by a single
person hiding in a locked room and out of communication with the world.
It takes interaction and feedback from other people. Yes, great ideas
can (and often do) come from the insight of a single person, but to turn
that seminal idea into a great reality without feedback and help from
the larger community. Well.... if you are truly that unusual a genius,
then you shouldn't be asking us for advice. :-)

Of course, the concerns expressed reflect what I regard as an
unfortunate direction in many organizations today. The organization I
work for has become, in my opinion, much more concerned with making sure
that its intellectual property is protected than in making sure that it
develops anything worth protecting. :-( At times, I think the most
important secret being protected is that the emperor has no clothes. :-(

I hope it is obvious that I am *NOT* speaking on behalf of my employer.

--
Richard Maine | Good judgment comes from experience;
email: my first.last at org.domain | experience comes from bad judgment.
org: nasa, domain: gov | -- Mark Twain
Random Programmer

2005-08-08, 5:03 pm

Hi Richard. To be honest, I'm not so concerned with whether I get 1000+
citations for my work, as I am that I will be employed after I finish
my PhD!

This is coming from someone with a first class honours undergraduate
engineering degree, and suffered from unemployment for 2 years after
graduating. Hence my rather more "practical + cynical" view on things.

Rich Townsend

2005-08-08, 5:03 pm

Random Programmer wrote:
> Rich, I agree with you that your free + public method of distribution
> is the way to get the most publicity.
>
> However, why should a company hire you if they could have access to
> your research & source code publically? They could just hire half a
> dozen outsourced (no offence to anyone in particular) staff to take
> your place at less cost.
>
> It seems to me, at least, that the best way to ensure your
> employability is to make sure your work is unique and indispensable to
> a potential employer.
>
> Thanks.
>



And the best way to demonstrate this about your work is to become the
world's leading expert in the field. Which is done by publishing in
peer-reviewed journals, or some equivalent, and letting everyone *see*
that you've (metaphorically) got the biggest balls. Nobel laureates get
hired on the quality of their reputation, not on whether they currently
have a super-secret idea that might be profitable to somebody.

cheers,

Rich
Michael Prager

2005-08-08, 5:03 pm

"Random Programmer" <nonexistent2032@yahoo.co.uk> wrote:

>However, why should a company hire you if they could have access to
>your research & source code publically? They could just hire half a
>dozen outsourced (no offence to anyone in particular) staff to take
>your place at less cost.


They will hire you because of your demonstrated ability to solve
related problems. One hires a new PhD for what he or she hasn't
done yet, not for what has already been accomplished.


--
Mike Prager, NOAA, Beaufort, NC
Address spam-trapped; remove color to reply.
* Opinions expressed are personal and not represented otherwise.
* Any use of tradenames does not constitute a NOAA endorsement.
Richard E Maine

2005-08-08, 5:03 pm

In article <1123520114.835888.49360@f14g2000cwb.googlegroups.com>,
"Random Programmer" <nonexistent2032@yahoo.co.uk> wrote:

> Hi Richard. To be honest, I'm not so concerned with whether I get 1000+
> citations for my work, as I am that I will be employed after I finish
> my PhD!


Well I think you are going about it wrong then. If you can be "replaced"
by even a team of 1,000 commodity programmers, then you didn't get much
out of the PhD, regardless of what your school record says. I think that
Mike Prager expressed it well. The whole idea of the PhD is just to
demonstrate that you are capable of doing innovative research work. (Of
course, it doesn't always actually achieve its goal, but that's still
the idea). If you think that the only thing you have to sell is what you
have already done, as opposed to what you can do in the future, then...
I'm afraid you aren't going to make a very good impression in an
interview. I certainly wouldn't hire anyone at the PhD level on that
kind of basis. And for that matter, it would make me question the worth
of what they had already done.

--
Richard Maine | Good judgment comes from experience;
email: my first.last at org.domain | experience comes from bad judgment.
org: nasa, domain: gov | -- Mark Twain
Jim

2005-08-08, 5:03 pm


"Random Programmer" <nonexistent2032@yahoo.co.uk> wrote in message
news:1123516193.138852.242190@o13g2000cwo.googlegroups.com...
> Hello all. I have only passing knowledge of the shady world of hacking
> & cracking, but will your source code remain private & safe even if you
> publically distribute binaries/executables of your program? Will people
> be able to disassemble/decompile your code to view the source code?
>

They can disassemble it at will. However, determining what your source code
looks like from an optimized version generate by a disassembler is well nigh
impossible.
Are there any decompilers for Fortran? If not, will there ever be?
Jim


Random Programmer

2005-08-08, 5:03 pm

Yes, I think I now agree with your and Mike's point that companies need
to see what you've done, and not just get assurances from you that you
can do this or that.

However, I've read many journal publications/conference proceedings of
the work I'm doing (evolutionary optimisation) and I have to say that
all of them so far just give the gist of what they're doing, they don't
go into so much detail that someone can reproduce a replica of their
source code.

There are exceptions to this, where authors publish their source code.
However, their source code in this instance is often used as a core
"module" upon which additions are made, because it is
generic/non-specialised.

Basically, I now agree with you guys that the best thing is to
publicise my work. But surely journal publications/conferences will
suffice? What benefits are there of going the extra mile to publish
your source code?

Max

2005-08-08, 5:03 pm

To all this, I would add that a PhD is *supposed* to help advance the state
of knowledge. If you deliberately write so that what you have developed
*cannot* be used, then I would argue that you should fail your PhD. UK
universities in your position prefer to have a moratorium, usually 5 years,
on the thesis being available outside the university (and sponsors, if
applicable) so that your work can be exploited, but not ultimately withheld.

Again, in the UK, the research councils try to put across that the most
important thing about a PhD is the training in taking poorly-identified
targets and developing them rapidly into defensible and useable outputs. If
you are planning to put your future into commercialisation of your PhD then,
as noted by another poster, remember that the university usually has a prior
claim, along with any sponsor. I have seen (my company has sponsored!) PhD
students who withhold their IP; one side-effect is that we try not to use
their university in future, nor them. The word will spread that you are not
to be trusted - again, we know of (and have employed) programmers (and
researchers) who try to ensure that when they leave they take all their
work, leaving us high & dry. And again, as the word spreads, they have to
move to new areas for work.

"Jim" <j.n@nospam.com> wrote in message
news:WGMJe.811$A86.373@newssvr25.news.prodigy.net...
>
> "Random Programmer" <nonexistent2032@yahoo.co.uk> wrote in message
> news:1123516193.138852.242190@o13g2000cwo.googlegroups.com...
> They can disassemble it at will. However, determining what your source
> code
> looks like from an optimized version generate by a disassembler is well
> nigh
> impossible.
> Are there any decompilers for Fortran? If not, will there ever be?
> Jim
>
>



Gordon Sande

2005-08-08, 5:03 pm



Random Programmer wrote:
> Rich, I agree with you that your free + public method of distribution
> is the way to get the most publicity.
>
> However, why should a company hire you if they could have access to
> your research & source code publically? They could just hire half a
> dozen outsourced (no offence to anyone in particular) staff to take
> your place at less cost.
>
> It seems to me, at least, that the best way to ensure your
> employability is to make sure your work is unique and indispensable to
> a potential employer.
>


There is a theory that a unique and indispensable employee should be
fired pronto, if not sooner. Your arguments are a perfect match
for the suppositions of that theory.

> Thanks.
>

Rich Townsend

2005-08-08, 5:03 pm

Gordon Sande wrote:
>
>
> Random Programmer wrote:
>
>
> There is a theory that a unique and indispensable employee should be
> fired pronto, if not sooner. Your arguments are a perfect match
> for the suppositions of that theory.


On the grounds that no company should be employing someone who has them
by the balls?
Random Programmer

2005-08-08, 5:03 pm

"To all this, I would add that a PhD is *supposed* to help advance the
state
of knowledge. If you deliberately write so that what you have developed
*cannot* be used, then I would argue that you should fail your PhD."

I will be advancing the state of knowledge. It just seems that everyone
else in my field often just says *what* they do, not *how* they do it
(at least not down to the exact details). For example, journal papers
sometimes provide the pseudo-code, but never the full source code.

Wow Max, is it really true that companies share lists of potential
employees with frank summaries of what they think about them? Apart
from it being a legal minefield, I just find it hard to believe that
competitors would share personal information about a resource
(employees).

BTW, AIUI, since my work is privately funded, the IP is entirely mine.

Speaking of IP, my supervisor says that whenever he signs contracts
with companies, he always crosses out the part where the company
reserves the IP rights over his work. How do companies react to fresh
PhD graduates doing this?

Thanks.

e p chandler

2005-08-08, 5:03 pm

Random Programmer wrote:

[snip]

> Basically, I now agree with you guys that the best thing is to
> publicise my work. But surely journal publications/conferences will
> suffice? What benefits are there of going the extra mile to publish
> your source code?


Science works by having others replicate and test your results. It is
easier to verify that what you did is correct if your source code is
available. Accept e-mail requests for the source from qualified
researchers if you like.

In the end you may not have a choice depending on the policy at your
particular institution. Some claim ownership of anything done for hire
there, others release all rights to the student.

Random Programmer

2005-08-08, 5:03 pm

AIUI, my university only becomes iffy about IP rights when it comes to
drug/medical research.

For my research, involving engineering, they are less iffy - especially
as I decided to fund myself privately to maintain IP rights.

Random Programmer

2005-08-08, 5:03 pm

OK guys, I'll say that I'm probably quite inexperienced in the field of
employment & its nuances, so I'll defer the decision on publishing the
source to more advanced people - by seeing what is commonly done in my
field and not being "out of step".

Basically when I attend conferences, etc. or meet the various
researchers, I will ask them if they've made their work publically
available, and if everyone else has. I'll then use that as a guide for
how I should treat my own work.

Do let me know what you think about this approach.

Random Programmer

2005-08-08, 5:04 pm

"If you can be "replaced"
by even a team of 1,000 commodity programmers, then you didn't get much
out of the PhD"

Hi Rich. My whole fear is that outsourced programmers *can* replace me
if my source code is available. After all, my background is in
mechanical engineering, and not software programming. As such, I'm sure
most run of the mill programmers could think of a hundred improvements
to my code.

I think the distinction between me and these programmers is that my
work also involves manufacture and testing of experimental design
prototypes, something most programmers wouldn't have.

"The whole idea of the PhD is just to
demonstrate that you are capable of doing innovative research work."

Do tell me if I'm going about this wrong, but IMVHO for me (especially
after my unemployed bout) the key motivation for my research is to
advance a niche little frontier of knowledge to be commercially
exploitable.

This is why I'm quite guarded about my source code becoming public - I
am privately funded and a large + growing bank loan motivates me to be
as such.

Don't get me wrong, I'm completely OK with sharing my research and the
broad outlines of it, but I believe it will take some debating to
convince me that I should share my full source code as well.

"If you think that the only thing you have to sell is what you
have already done, as opposed to what you can do in the future, then...
"

To be perfectly frank, I certainly hope to do new & innovative things
with any company I work with, based on the work I've done. In fact, I
dream about what I could use my work to accomplish and felt completely
inspired by the "future work to do" part of my transfer thesis.

However, to be honest, I will want some share of the IP rights (I think
it is only fair that *any* researcher gets some share of it, given
their effort put into it). Will companies take a dim view of this?

I hope I don't come across as argumentative, I think you guys have
raised a very important point here and I feel that it is important I
clarify my and your positions.

Brooks Moses

2005-08-08, 5:04 pm

Random Programmer wrote:
> Hello all. I have only passing knowledge of the shady world of hacking
> & cracking, but will your source code remain private & safe even if you
> publically distribute binaries/executables of your program? Will people
> be able to disassemble/decompile your code to view the source code?


It's fairly possible to disassemble code to view the assembler-level
code, and it's also possible to backform that into other languages.

What gets lost in this transition, generally, are variable names,
comments, and a lot of the organization. At this point, you've probably
(if you're doing any serious programming) spent some time working with
other people's programs, and thus you should be aware that for a large
computer program, understanding it _with_ the benefit of the proper
source code and comments and so forth can take months. Without that, it
will take even longer, and be of even less use since one can't really
use the resulting understanding profitably without recreating the whole
program.

Moreover, in most numerical algorithms, there are a few things that are
difficult to understand and very important for stability or accuracy, in
the midst of a lot of other things that are much less critical. Having
the source code doesn't provide anyone with that understanding, much
less the understanding of how to adjust the values when other things change.

> When I finish my PhD in a few years, I don't want all my hard work to
> just be stolen and copied! I will probably speak to my supervisors when
> my thesis submission date is closer, but I'm interested to hear from
> the PhD holders here -- whether you think it is a good idea to "dumb
> down" the program you submit with your thesis, so that you alone remain
> the only person who can do this-or-that.


Your thesis is _supposed_ to provide a sufficient description of your
experimental process that someone else could duplicate your results from
it. The point is to contribute to public knowledge.

Personally, the only reason that I'm not going to put my programs up on
my website in full commented source-code form when I finish my Ph.D. is
that a lot of the internals of them are hastily patched together, and
I'd be ashamed to show that off in public (and would hate to have to
answer questions about how to fix bugs in it!).

My hard work isn't really in the programs, anyway -- it's in
understanding why they work, and knowing the program well enough that
when I want to do something different with it, I know how and where it
all works well enough to know where to find the dozen things that need
to be changed.

Beyond that, I owe a debt to other authors who put their algorithms out
in public (not source code, but a sufficient description in their paper
that I could write source directly from it) -- their publications saved
me months of work in getting results, and notably improved the results
that I did get. My work certainly isn't a matter of "stealing" their
work, and it doesn't diminish their abilities in any way -- it's fully
credited, and I'm using it for something completely different than what
they used it for.

- Brooks


--
The "bmoses-nospam" address is valid; no unmunging needed.
Brooks Moses

2005-08-08, 5:04 pm

Random Programmer wrote:
> However, why should a company hire you if they could have access to
> your research & source code publically? They could just hire half a
> dozen outsourced (no offence to anyone in particular) staff to take
> your place at less cost.


Because the research and source code, by itself, is probably worthless
to them.

Your value is in your ability to create more source code of similar
quality -- and embedding your deep understanding of the particular
considerations that went into that source code, and perhaps embedding
some of the functionality of it -- that does what _they_ need.

The product you're selling to them is _you_, not the stuff you've done.

- Brooks


--
The "bmoses-nospam" address is valid; no unmunging needed.
Max

2005-08-08, 5:04 pm


"Rich Townsend" <rhdt@barVOIDtol.udel.edu> wrote in message
news:dd88o7$hpg$2@scrotar.nss.udel.edu...
> Gordon Sande wrote:
>
> On the grounds that no company should be employing someone who has them by
> the balls?


On the grounds that a good company should always have a succession policy,
and staff who deliberately expose the company to the problems of the 'what
happens if you are hit by a bus' type should be avoided.


Max

2005-08-08, 5:04 pm


"Random Programmer" <nonexistent2032@yahoo.co.uk> wrote in message
news:1123527399.579182.7420@z14g2000cwz.googlegroups.com...
> "To all this, I would add that a PhD is *supposed* to help advance the
> state
> of knowledge. If you deliberately write so that what you have developed
> *cannot* be used, then I would argue that you should fail your PhD."
>
> I will be advancing the state of knowledge. It just seems that everyone
> else in my field often just says *what* they do, not *how* they do it
> (at least not down to the exact details). For example, journal papers
> sometimes provide the pseudo-code, but never the full source code.
>
> Wow Max, is it really true that companies share lists of potential
> employees with frank summaries of what they think about them? Apart
> from it being a legal minefield, I just find it hard to believe that
> competitors would share personal information about a resource
> (employees).
>


Companiesdon't share - that would be a legal minefield. But companies can
decline to provide a reference, which can be telling; I was thinking,
however, more of the personal network, where such statements are recognised
as unattributable, usually exchanged over a beer. We employed somebody who
proudly showed me his filing cabinet, containing the sole copies of design
data from his previous company. (And OK, that was his claim - I didn't
'phone his company to ask them if it was true; just made a mental note to
make sure that he never got anything from me that I hadn't copied/backed up,
and that he never got anything from me that wasn't strictly necessary for
the job.) When working for us, he took the money but primarily was
positioning himself for private consultancy work for when he left. He now
makes a good living as a consultany, since everyone knows where they stand.
> BTW, AIUI, since my work is privately funded, the IP is entirely mine.
>
> Speaking of IP, my supervisor says that whenever he signs contracts
> with companies, he always crosses out the part where the company
> reserves the IP rights over his work. How do companies react to fresh
> PhD graduates doing this?
>
> Thanks.
>


Given how much they are worth, suing them isn't worth it. Once again, it's
just a mental note of disgust, and maybe a bar tale. With a university,
should it happen too often (and so far it hasn't) funding dries up - more
common, one staff member has their funding dry up. This nearly happened to
one UK university, and I *think* that the solution was again an
off-the-record chat, with more work at partnership after that - certainly
they are much healthier than they were around 5 years ago, and the talk of
'we don't use hem' has gone away.


Brooks Moses

2005-08-08, 5:04 pm

Random Programmer wrote:
> However, I've read many journal publications/conference proceedings of
> the work I'm doing (evolutionary optimisation) and I have to say that
> all of them so far just give the gist of what they're doing, they don't
> go into so much detail that someone can reproduce a replica of their
> source code.


I agree; it's often the same in my field. There have been exceptions,
which I have considered to be papers of very high value.

Mostly, though, what the good papers _do_ provide is enough of a
description of what's new and interesting about their methods that one
could duplicate that part on top of an existing similar program. So, my
description of my program in my thesis (or in my papers) probably won't
contain enough to duplicate it. But what it will include is a
description of the parts that are new to me, and citations of the papers
that I got the rest of it from, so that one could assemble something
that did the same thing, with a bit of knowledge of the field.

> There are exceptions to this, where authors publish their source code.
> However, their source code in this instance is often used as a core
> "module" upon which additions are made, because it is
> generic/non-specialised.
>
> Basically, I now agree with you guys that the best thing is to
> publicise my work. But surely journal publications/conferences will
> suffice? What benefits are there of going the extra mile to publish
> your source code?


I think that depends, indeed, on how generally useful the source code
is. If is something with a generic/non-specialized core, then it may
give other people a starting point for developing their own programs,
which means they're expected to cite your publications in their
publications that derive from that program -- and citations of your
papers are, of course, a big selling point for you.

In some cases, such as my own code, where large parts of the program are
jury-rigged stuff intended to get one specific set of results, there may
well _not_ be much benefit to publishing it. In the case of the one of
my programs that I'm thinking about, a competent programmer could
probably write an equivalent program in about the time it would take
them to decipher what mine's doing -- and I'll give them a basic
description of it in my papers.

- Brooks


--
The "bmoses-nospam" address is valid; no unmunging needed.
Max

2005-08-08, 5:04 pm


"Random Programmer" <nonexistent2032@yahoo.co.uk> wrote in message
news:1123528854.874994.131520@f14g2000cwb.googlegroups.com...
> OK guys, I'll say that I'm probably quite inexperienced in the field of
> employment & its nuances, so I'll defer the decision on publishing the
> source to more advanced people - by seeing what is commonly done in my
> field and not being "out of step".
>
> Basically when I attend conferences, etc. or meet the various
> researchers, I will ask them if they've made their work publically
> available, and if everyone else has. I'll then use that as a guide for
> how I should treat my own work.
>
> Do let me know what you think about this approach.
>

The defence for not publishing much code in the open literature is the page
limits - pseudo code is acceptable, and to me to be preferred, providing it
contains sufficient details for the algorithm to be reproduced. The beauty
of pseudo code is it allows you to focus on the algorithm and leave
implementation issues aside. My classical optimisation books (as contrasted
to your GA material, and most of what I have seen on neural networks) use
pseudo code (all based on some form of Algol 68), and are better for it. If
you want to do that in your PhD, fine - give sufficient details for those
who will do the work, but not for those looking just to steal. Your PhD
cannot claim problems with page limits, but the clarity of a formal
algorithm description, rather than a working code implementation, should be
easy to defend.

Once you leave the academic arena and see research published by more
commercial outfits then code hiding is both common and acceptable - it does
leave me frustrated as to why they have published, and does result in me
throwing out the papers. In my position, as working for a commercial outfit,
I usually publish enough to permit the algorithm to be recreated, and will
gladly provide more algorithmic detail if asked - I regard that as part of
the responsibility of publishing in the refereed literature.


Brooks Moses

2005-08-08, 5:04 pm

Random Programmer wrote:
> I will be advancing the state of knowledge. It just seems that everyone
> else in my field often just says *what* they do, not *how* they do it
> (at least not down to the exact details). For example, journal papers
> sometimes provide the pseudo-code, but never the full source code.


That may well be a better option, really -- in a lot of cases, if
someone were to want to reuse your work, they'd find it easier to do so
starting from a clearly-described pseudo-code version than they would
from the actual source code.

I don't think the point is so much that you need to publish your source
code, as that you should publish your "important secrets", in whatever
way conveys them most clearly.

> Speaking of IP, my supervisor says that whenever he signs contracts
> with companies, he always crosses out the part where the company
> reserves the IP rights over his work. How do companies react to fresh
> PhD graduates doing this?


Note that your supervisor is probably contracting with them, not acting
as an employee -- the two situations are notably different. In
particular, when a professor is contracting with a company, the
expectation is that both the company and the professor's own research
will benefit from the work. As an employee, one is working solely for
the company's benefit, and so it's much more reasonable for one to be
signing copyright and patent rights over to them.

In any case, I suspect that if your supervisor does this as a matter of
course, he's probably also had a fair bit of experience with how
companies react to it -- and he was a fresh graduate once!

Also, if your university provides any sort of legal advice to students
(or even career advice), it may be useful to talk to them about this
before you graduate.

- Brooks


--
The "bmoses-nospam" address is valid; no unmunging needed.
Brooks Moses

2005-08-08, 5:04 pm

Random Programmer wrote:
> OK guys, I'll say that I'm probably quite inexperienced in the field of
> employment & its nuances, so I'll defer the decision on publishing the
> source to more advanced people - by seeing what is commonly done in my
> field and not being "out of step".
>
> Basically when I attend conferences, etc. or meet the various
> researchers, I will ask them if they've made their work publically
> available, and if everyone else has. I'll then use that as a guide for
> how I should treat my own work.
>
> Do let me know what you think about this approach.


Seems like a wise plan. Though I would ask them, also, what they think
of what other people have done.

You can probably also find out a lot of this simply by looking at other
researchers' websites -- if they do make their work public (in whatever
form), it is likely to be linked to from their website.

- Brooks


--
The "bmoses-nospam" address is valid; no unmunging needed.
Steven G. Kargl

2005-08-08, 5:04 pm

In article <42F7BF49.7010101@cits1.stanford.edu>,
Brooks Moses <bmoses-nospam@cits1.stanford.edu> writes:
> Random Programmer wrote:
>
> I agree; it's often the same in my field. There have been exceptions,
> which I have considered to be papers of very high value.
>
> Mostly, though, what the good papers _do_ provide is enough of a
> description of what's new and interesting about their methods that one
> could duplicate that part on top of an existing similar program. So, my
> description of my program in my thesis (or in my papers) probably won't
> contain enough to duplicate it. But what it will include is a
> description of the parts that are new to me, and citations of the papers
> that I got the rest of it from, so that one could assemble something
> that did the same thing, with a bit of knowledge of the field.


A journal paper is 6 to 10 pages in length. A program listing
is not appropriate in most cases. A typical PhD dissertation
is 150 to 300 pages in length, and it is meant to be THE permanent
record of the student's independent, novel research. It is here
that programs should perhaps be documented. If the programs aren't
listed, then all the information needed to reproduce your result
must be included. I did not include programs in my dissertation
(or journal papers), but the details are sufficient to easily write
new programs. Also, I have and will continue to distribute the codes
upon request.

--
Steve
http://troutmask.apl.washington.edu/~kargl/
Max

2005-08-08, 5:04 pm


"Random Programmer" <nonexistent2032@yahoo.co.uk> wrote in message
news:1123516193.138852.242190@o13g2000cwo.googlegroups.com...
> Hello all. I have only passing knowledge of the shady world of hacking
> & cracking, but will your source code remain private & safe even if you
> publically distribute binaries/executables of your program? Will people
> be able to disassemble/decompile your code to view the source code?
>
> When I finish my PhD in a few years, I don't want all my hard work to
> just be stolen and copied! I will probably speak to my supervisors when
> my thesis submission date is closer, but I'm interested to hear from
> the PhD holders here -- whether you think it is a good idea to "dumb
> down" the program you submit with your thesis, so that you alone remain
> the only person who can do this-or-that.
>
> Just curious...thanks.
>


Crackers are usually concerned with breaking your copy protection, not with
fully reverse engineering your code. For any reasonably large, array-based,
native-code, compiled program the effort of reverse-compiling is not worth
it. Hackers may try, as their interest is not in the commercial gain but the
intellectual exercise - even then, I doubt if they would do it for a largish
program. If you copy protect, and are popular, you should expect that your
copy protection will be broken. if you are concerned with selling to
engineering companies, they will not use cracked software - that will be the
student market, and those students are unlikely to use their copies when
they get a job. Most, if not all, UK companies make possession of illegal
software on work PCs a sacking offence. I believe that the position is the
same for most European and North American companies. They may not look for
it, but if they find it then their is no excuse. So your software should be
safe for release to the market that is going to buy it. Losing sales to
people who wouldn't buy anyway is an academic debate as to the cost of
illegal software.


Random Programmer

2005-08-08, 5:04 pm

Thanks for the advice guys. You're right. First off, thanks to Brooks
for pointing out that the issue isn't so much the publishing of the
full source code, but rather publishing the key ideas that make the
code reproducible.

To that end, I've thought about the journal papers I've read, and I do
agree that the valuable ones written by the luminaries in the field
tend to give enough detail that you can go implement their ideas with
your own style.

And yes, I also get the feeling that those papers that just brag about
their results without giving you any opportunity to reproduce them
yourself are really just a waste of time. They also don't tend to be
written by very well known/cited authors!

Brooks Moses

2005-08-08, 10:02 pm

Steven G. Kargl wrote:
> A journal paper is 6 to 10 pages in length. A program listing
> is not appropriate in most cases. A typical PhD dissertation
> is 150 to 300 pages in length, and it is meant to be THE permanent
> record of the student's independent, novel research.


Interesting; this clearly varies by subfield. The CFD papers that I
read seem to have a typical range of around 15-30 pages, whereas my
advisor tells me that he doesn't want to have to read a dissertation
that's any longer than 100 pages. (I'll probably give in to temptation
and include an appendix beyond that, though.)

- Brooks


--
The "bmoses-nospam" address is valid; no unmunging needed.
Richard E Maine

2005-08-08, 10:02 pm

In article <1123528188.426645.161210@f14g2000cwb.googlegroups.com>,
"Random Programmer" <nonexistent2032@yahoo.co.uk> wrote:

> "If you can be "replaced"
> by even a team of 1,000 commodity programmers, then you didn't get much
> out of the PhD"
>
> Hi Rich. My whole fear is that outsourced programmers *can* replace me
> if my source code is available. After all, my background is in
> mechanical engineering, and not software programming. As such, I'm sure
> most run of the mill programmers could think of a hundred improvements
> to my code.

....
> Do tell me if I'm going about this wrong,...


You are going about it wrong :-) at least in my opinion. But I think
I've said all that I have to say about it.

What *I'd* want to do would be to enlist the aid of those programmers,
be they run-of-the-mill or otherwise, that could improve my product. By
keeping it close to your chest, you probably destroy its value. But I
said that before. I think I'll just leave it for now.

P.S. But you wouldn't get a job if I were making a recommendation based
on what I've seen so far. Of course, I won't be in a position to do
that, but maybe you might wonder if others would have similar reactions.

--
Richard Maine | Good judgment comes from experience;
email: my first.last at org.domain | experience comes from bad judgment.
org: nasa, domain: gov | -- Mark Twain
Janne Blomqvist

2005-08-09, 9:03 am

In article <42F7D6E0.2090209@cits1.stanford.edu>, Brooks Moses wrote:
> Steven G. Kargl wrote:
>
> Interesting; this clearly varies by subfield. The CFD papers that I
> read seem to have a typical range of around 15-30 pages, whereas my
> advisor tells me that he doesn't want to have to read a dissertation
> that's any longer than 100 pages. (I'll probably give in to temptation
> and include an appendix beyond that, though.)


... and over here a Phd thesis usually is a reasonably short overview
of the topic, say < 50 pages, along with about 5 peer-rewieved
papers. Monographs are made, but they are pretty rare.


--
Janne Blomqvist
FX

2005-08-10, 4:01 am

> you'll also need to find out what the role of your university (i.e.
> employer) is in IP questions...


Very true. After all, the code you wrote as an employee does not belong
to you (well, it's far more complicated than that, but that's the basic
picture nonetheless).

--
FX
Kevin G. Rhoads

2005-08-11, 5:03 pm

>>> There is a theory that a unique and indispensable employee should be
>
>On the grounds that a good company should always have a succession policy,
>and staff who deliberately expose the company to the problems of the 'what
>happens if you are hit by a bus' type should be avoided.


And any company run by management which will tolerate an employee making
themselves "indispensable" is one you should not work for. The management
is incompetent and will drag you down with them if you stay.
Kevin G. Rhoads

2005-08-11, 5:03 pm

>Are there any decompilers for Fortran? If not, will there ever be?

When there are egg UNscramblers, or at least when the three laws of
thermodynamics are repealed.
Dr Ivan D. Reid

2005-08-13, 5:01 pm

On Thu, 11 Aug 2005 19:47:47 +0000, Kevin G. Rhoads <kgrhoads@alum.mit.edu>
wrote in <42FBAB63.139E1323@alum.mit.edu>:
[color=darkred]
[color=darkred]
[color=darkred]
> And any company run by management which will tolerate an employee making
> themselves "indispensable" is one you should not work for. The management
> is incompetent and will drag you down with them if you stay.


I told them that. They wouldn't listen. I left. It took them
years to work out how to do some things I'd been doing. If only they'd
tagged along for some training...

--
Ivan Reid, Electronic & Computer Engineering, ___ CMS Collaboration,
Brunel University. Ivan.Reid@[brunel.ac.uk|cern.ch] Room 40-1-B12, CERN
KotPT -- "for stupidity above and beyond the call of duty".
Harold Stevens

2005-08-13, 5:01 pm

In <slrndfsi3a.bbi.Ivan.Reid@loki.brunel.ac.uk> Dr Ivan D. Reid:

[Snip...]

> I told them that. They wouldn't listen.


I was fortunate enough to learn to spot them early on when I informally
tutored math for business majors in college. I discovered you lose them
in a glassy eyed state of slackjaw unless all numbers are preceded with
some sort of monetary/currency symbol.

Dilbert isn't as much a cartoon, as a User's Guide to corporate lunacy.

--
Regards, Weird (Harold Stevens) * IMPORTANT EMAIL INFO FOLLOWS *
Pardon any bogus email addresses (wookie) in place for spambots.
Really, it's (wyrd) at airmail, dotted with net. DO NOT SPAM IT.
Kids jumping ship? Looking to hire an old-school type? Email me.
sali0090@tc.umn.edu

2005-08-21, 7:56 am

Hell, even when you wrote the source code and have it in front of you,
tracking down some subtle mathematically related bug is difficult. (Of
course, I write this while I am feverishly debugging my code in search
of that one tiny little bug that is completely wrecking my solution.)

Sigh.

Richard Maine

2005-08-21, 6:57 pm

In article <1124612693.316569.7890@g14g2000cwa.googlegroups.com>,
sali0090@tc.umn.edu wrote:

> Hell, even when you wrote the source code and have it in front of you,
> tracking down some subtle mathematically related bug is difficult.


In flight projects we are often required to have the telemetry streams
encrypted to make it harder for "others" to intercept and interpret the
data. A standard resulting joke is to hope that they would then tell us
what is going on, because it is sometimes hard enough for us to figure
out even with all the documentation at hand.

A similar variant arises from computers in rooms shielded against
electro-magnetic radiation.
Random Programmer

2005-08-21, 6:57 pm

Reminds me of a program my PhD supervisor was telling me about. He said
the program's source code was huge, but didn't have a single comment
statement in it. In fact the company forbade their programmers from
adding comments in. Pity the poor guys who have to figure it out when
the original writers die. Hell, even I have problems following my code
and it's only a few thousand lines long.

glen herrmannsfeldt

2005-08-22, 7:57 am

Kevin G. Rhoads wrote:

[color=darkred]
> When there are egg UNscramblers, or at least when the three laws of
> thermodynamics are repealed.


I would have thought that, too, but they seem to exist for Java.

They have to be very specific to the compiler, even the specific
version. With any optimization on it is much less likely to work.

(The Java language disallows many optimizations that other
languages allow.)

In some cases, though, disassembly is enough to get out the
valuable information. To really answer the question one must
know how valuable the code is.

-- glen

Random Programmer

2005-08-22, 7:02 pm

So basically the answer to this is a (mostly theoretical) yes, if
enough effort were put into it?

I don't really get the unscrambling bit...presumably the process of
compiling source code into an executable is pre-defined. Hence, as long
as you have the original "function" and an inverse function exists...

I would guess that an inverse function probably exists, because unless
a compiler destroys information in the compilation process, all the
information in the source is in the executable, just, as Kevin pointed
out, scrambled.

In this case though, the scrambled eggs have a highly specific and
repeatable pattern...

Duane Bozarth

2005-08-22, 7:02 pm

Random Programmer wrote:
>
> So basically the answer to this is a (mostly theoretical) yes, if
> enough effort were put into it?
>
> I don't really get the unscrambling bit...presumably the process of
> compiling source code into an executable is pre-defined. Hence, as long
> as you have the original "function" and an inverse function exists...


Well, to a point. It is deterministic but varying optimization, etc.,
can generate different code for the same source, even from the same
compiler.

> I would guess that an inverse function probably exists, because unless
> a compiler destroys information in the compilation process, all the
> information in the source is in the executable, just, as Kevin pointed
> out, scrambled.


But a compiler <does> destroy information in the compilation process.
Among the most significant for a decompiler in order to recreate
meaningful source is the elimination of symbol names...and there isn't a
unique one-to-one representation of source<-->object code, anyway.

> In this case though, the scrambled eggs have a highly specific and
> repeatable pattern...

Richard E Maine

2005-08-22, 7:02 pm

In article <1124721143.662762.120860@f14g2000cwb.googlegroups.com>,
"Random Programmer" <nonexistent2032@yahoo.co.uk> wrote:

> I don't really get the unscrambling bit...presumably the process of
> compiling source code into an executable is pre-defined. Hence, as long
> as you have the original "function" and an inverse function exists...


It doesn't.

> I would guess that an inverse function probably exists, because unless
> a compiler destroys information in the compilation process, all the
> information in the source is in the executable, just, as Kevin pointed
> out, scrambled.


You misinterpret Kevin... and some of the most basic fundamentals of
information theory (not to speak of the laws of thermodynamics). The
whole point of Kevin's comment is that scrambling eggs (and compiling
source), does *NOT* maintain the information. Yes, information is
destroyed. And entropy increases.

Information is destroyed in most data transformations. There is a
considerable theory of information processing, including a specific
technical, quantitative definition of the term "information". It takes
quite specific properties to keep information from being destroyed.
Unless you have verified those properties, you can usually assume that
data transformations destroy information. That is as important a part of
the theory of communication as entropy is in the theory of
thermodynamics. Processes that are 100% reversible are quite rare.

This is also quite important in practice when doing things like data
processing and analysis. It isn't just a point of abstract theory. I
quite often have to "beat" on people about the information lost by
"helpful" transformations they have done or are proposing to do to our
flight data. It seems to be one of those perpetual problems that keeps
coming back up unless I keep an active eye on it. People will make
decisions in this area without consulting the users because, of course,
we couldn't possibly object to processing that will "improve" the data.
:-(

> In this case though, the scrambled eggs have a highly specific and
> repeatable pattern...


I suggest reading up on information theory. The conditions for
invertability aren't that complicated.... and the above doesn't target
them very precisely. Heck, you don't even need the information theory.
Plain old simple function theory will do here. The function demonstrably
and trivially has cases where multiple different inputs will produce the
same output. That violates the most trivial condition for function
invertability.

Perhaps the most trivial case involves changing names of things. (I'm
giving a free pass for things like comments and spacing, which are even
more trivial). Yes, some names make their way into some executables as
debugging information. But some names don't (try looking for named
constants in the debugger with many compilers), and debug information
isn't a fundamental part of object code anyway - the whole reason it is
there is that the bare object code doesn't otherwise have the
information. Less trivial things include the many equivalent was to
write the source code for the same loop.

--
Richard Maine | Good judgment comes from experience;
email: my first.last at org.domain | experience comes from bad judgment.
org: nasa, domain: gov | -- Mark Twain
Random Programmer

2005-08-22, 7:02 pm

Damn, Richard, you really know your stuff :D

Is your background in aero, mechanical, information, etc. engineering?
I did a search on your name and you appear to be involved in Control
systems. That was actually my worst subject :O

My engineering syllabus didn't cover information theory and it's
thermodynamics didn't touch the information part of entropy. Everything
that I know about "information theory" to me is from my "educated
observations" of it...and I'm quite a fresh graduate so I haven't had
time to pad out my knowledge like you guys, so please excuse my very
spotty knowledge of the subject.

BTW, about the reversibility, this was complete news to me:
"It is deterministic but varying optimization, etc.,
can generate different code for the same source, even from the same
compiler. "

If I understand you correctly, does that mean a file-compare on an
executable from the same source/compiler, at two different instances
will, at times, produce discrepancies?

I didn't know about the data transformations losing data, but it makes
sense now that you point it out because information about where the
various data entries went would be lost in the transform. As a basic
example to check my understanding: even with a simple matrix-transpose
operation, all the data entries are preserved. However, their position
is altered. Unless you knew a transpose operation was performed, or
(moot point) had access to the original matrix, you could not
reconstruct the original.

I actually made an "educated guess" that compilers are
information-conservative, because if you randomly removed, say, a line
of code, in the source, it will likely not work. Even typos (in a sense
a short, somewhat random data transform) would spoil the code. It
didn't occur to me that some bits of information (such as comments) are
certainly not crucial in the executable.

BTW, are the named constants you are talking about the one with the
Parameter statement? I don't see how this is related to information
loss.

Sorry for coming across as thick! I've often thought to myself that my
research topic and my eventual "career/job goals" in life would have
been better served if I did an undergrad degree in programming...

glen herrmannsfeldt

2005-08-22, 7:02 pm

Random Programmer wrote:
(snip)

> BTW, about the reversibility, this was complete news to me:
> "It is deterministic but varying optimization, etc.,
> can generate different code for the same source, even from the same
> compiler. "


> If I understand you correctly, does that mean a file-compare on an
> executable from the same source/compiler, at two different instances
> will, at times, produce discrepancies?


They are not common, but there are compilers that use nondeterministic
algorithms. One of the favorite algorithms for doing some kinds
of optimization problems, such as the ever popular traveling salesman
problem, is called simulated annealing. It works by randomly changing
things (the order of visiting cities, for example) and then checking the
result. If the result is better (a shorter path) it is kept. If it
is worse, it is kept conditionally depending on a random number and the
current "temperature". The "temperature" is then slowly decreased.
This process is needed to avoid local minima.

These algorithms are commonly used for the "place and route"
part of logic synthesis for ASIC or FPGA designs. Rare, but
not unheard of for normal compilers.

A more common reason for files comparing different is that some
compilers write the compilation date and time into the object file.

-- glen

James Van Buskirk

2005-08-22, 7:02 pm

"Random Programmer" <nonexistent2032@yahoo.co.uk> wrote in message
news:1124726069.210428.315570@o13g2000cwo.googlegroups.com...

> I did a search on your name and you appear to be involved in Control
> systems.


Since he works for NASA, that would seem quite important. Did
you see the Ming dynasty rocket chair?

> BTW, are the named constants you are talking about the one with the
> Parameter statement? I don't see how this is related to information
> loss.


I'm pretty sure that he is. The point is that many compiler/
debugger combinations lose the names of the named constants
between the time you write your source code and the time you
run the debugger. Another thing that I have seen happen, which
I'm pretty sure that Richard didn't mean, is that one can write
exact mathematical expressions for named constants, but the
compiler can produce other than the rounded-to-nearest values
for these expressions because it may round intermediate pieces
of the expressions, producing more inexact results due to
multiple rounding. I have seen this happen and the only cure
was to write out the actual numerical values in the PARAMETER
statements, perhaps preserving the expressions in comments.

> Sorry for coming across as thick! I've often thought to myself that my
> research topic and my eventual "career/job goals" in life would have
> been better served if I did an undergrad degree in programming...


NO! Computer science departments don't teach you anything
about problem solving, or even what a problem is. It
amazes me no end to see how pitiful the kids graduating
with a CS degree are at programming. They are very good
at denigrating certain programming languages and operating
systems, but they don't seem to teach numerical solution
of Schroedinger's equation...

--
write(*,*) transfer((/17.392111325966148d0,6.5794487871554595D-85, &
6.0134700243160014d-154/),(/'x'/)); end


Dick Hendrickson

2005-08-22, 7:02 pm



Random Programmer wrote:

> Damn, Richard, you really know your stuff :D
>
> Is your background in aero, mechanical, information, etc. engineering?
> I did a search on your name and you appear to be involved in Control
> systems. That was actually my worst subject :O
>
> My engineering syllabus didn't cover information theory and it's
> thermodynamics didn't touch the information part of entropy. Everything
> that I know about "information theory" to me is from my "educated
> observations" of it...and I'm quite a fresh graduate so I haven't had
> time to pad out my knowledge like you guys, so please excuse my very
> spotty knowledge of the subject.
>
> BTW, about the reversibility, this was complete news to me:
> "It is deterministic but varying optimization, etc.,
> can generate different code for the same source, even from the same
> compiler. "
>
> If I understand you correctly, does that mean a file-compare on an
> executable from the same source/compiler, at two different instances
> will, at times, produce discrepancies?

Depends on what you mean by "same compiler". If you change
the command line options, especially optimization ones, the
executables are likely to change. Also, if you run the
compiler on different machines, with different instruction
times for some operations, the executables are also likely
to change.

Dick Hendrickson

Richard E Maine

2005-08-22, 7:02 pm

In article <1124726069.210428.315570@o13g2000cwo.googlegroups.com>,
"Random Programmer" <nonexistent2032@yahoo.co.uk> wrote:

> Is your background in aero, mechanical, information, etc. engineering?


Well, in 35 years, my background has wandered through quite a few
things. My undergrad work was in aero engineering. (And thermo was not
one of my favorite courses - memorizing conversion factors for all those
darned archaic units like horsepower and BTUs bugged me and didn't seem
like it really helped get to the underlying issues; this probably had a
lot to do with the particular prof).

My early professional work was in parameter estimation with particular
application to aircraft stability and control. That's what most of my
formal publication are on (with the unfortunate result that much of my
stuff isn't readily web-accessible because it predates the web).

I got heavily involved in computer stuff (Fortran and other things - I
do symin, for example) along the way because it was important for my
parameter estimation work. And my graduate school work emphasized the
mathematical theory that had been shortchanged in my undergrad years.

> If I understand you correctly, does that mean a file-compare on an
> executable from the same source/compiler, at two different instances
> will, at times, produce discrepancies?


Well, it usually does, but that's because date and time often end up in
the object file. Ignoring that difference (and sometimes there are ways
to filter it out), all should be the same. But you've got the
requirements for invertibility exactly backwards. This isn't
complicated; trivial algebraic functions can illustrate it.

Having a mapping (it isn't technically a function) where the same input
can have multiple outputs wouldn't be a problem for inversion. The
problem is the other way, when the same output can be obtained from more
than one input. Consider, for example, the function y = x**2 over the
domain of all real x. This function is not invertible because, for
example, there are two different values of x that produce a y value of
4. (Namely +2 and -2). If you are given that y=4 and you have no other
information, then you can't tell which x value it came from.

> I didn't know about the data transformations losing data, but it makes
> sense now that you point it out because information about where the
> various data entries went would be lost in the transform. As a basic
> example to check my understanding: even with a simple matrix-transpose
> operation, all the data entries are preserved. However, their position
> is altered. Unless you knew a transpose operation was performed, or
> (moot point) had access to the original matrix, you could not
> reconstruct the original.


That's not a very good example. One usually assumes that the operations
done are also known. You loose information when, even with the
operations, you can't reconstruct the original. A better example would
be (and we don't need to go to arrays) the operation of averaging 3
values. If you take 3 values (perhaps measurements from 3 sensors) and
output the average of those 3 values, then that operation lost
information. There is no way to tell what the original measurements were.

Note that the average might well be a "better" measurement in some sense
than the 3 individual ones. If the measurements were noisy, then taking
multiple measurements and averaging tends to reduce the noise level
(given a bunch of technical conditions that are too much of a digression
here). But information was still lost. If the 3 separate measurements
were recorded, I can always do the averaging later, but if all I have is
the average, then I'm screwed if I need to know something about a
particular one of the sensors (perhaps one sensor failed or otherwise
has particular information that I want).

Another (very common) example is interpolation, often in time. Take a
signal measured, say, 20 times per second. Now record that signal 25
times a second. Argh! What a mess results. Even though you actually have
more data points than the original measurements, try to get the original
data back. What a PITA! (That one is an example from real life, thus my
vehemence.) It gets worse if the sample rates aren't commensurate.

> I actually made an "educated guess" that compilers are
> information-conservative, because if you randomly removed, say, a line
> of code, in the source, it will likely not work....


You are picking isolated examples from a *VERY* small set. That is *NOT*
the way to prove a theorem or even make much of a guess. I might as well
say that all functions are probably continuous because I can show you
millions of cases of different kinds of functions that I can write that
are continuous. Sorry, but unless I make at least some attempt to argue
that the functions I tried are representative of the set of all
functions, that wouldn't even count as an educated guess (and it would
be majorly wrong too).

> BTW, are the named constants you are talking about the one with the
> Parameter statement? I don't see how this is related to information
> loss.


Yes. If you don't see how it is related, then there is a communication
problem here because it is an absolutely trivial and direct
demonstration of information loss in the particular case at hand. The
information about what the original name was has been lost. That
original name was part of the source code and might have been important
for human understanding of the code.

> Sorry for coming across as thick! I've often thought to myself that my
> research topic and my eventual "career/job goals" in life would have
> been better served if I did an undergrad degree in programming...


I didn't. And I doubt I would have done as well if I had. The
programming I could pick up later.... and later still, I went back and
picked up some of the more theoretical programming-related matters. The
aero engineering was what I needed form undergrad school. (Well... what
I mostly needed from undergrad school was a few years to grow up a
little and to be exposed to a broader cross-section of people than the
ones I ran into in my neighborhood and school at home, but that's a bit
of diversion from comp.lang.fortran topics, though perhaps not that
awfully big a diversion from previous topics in this thread).

In my opinion, if you are going to do programming in an engineering
field, you need to concentrate first on the engineering education, and
later on the programming. It doesn't separate 100%; you certainly need
some programming early in engineering work. But the more advanced
aspects of programming can be added later. I've not generally been
impressed at the results of people who come out of undergrad school with
programming skills but no engineering at all. I've seen them do things
like apply Fahrenheit/Celsius conversions to angular degree
measurements. (Yes, I've seen that exact case. Of course, she was an
unusually bad example of other things as well - not fair to count her as
representative).

--
Richard Maine | Good judgment comes from experience;
email: my first.last at org.domain | experience comes from bad judgment.
org: nasa, domain: gov | -- Mark Twain
Jim Cornwall

2005-08-22, 7:02 pm

James Van Buskirk wrote:
> "Random Programmer" <nonexistent2032@yahoo.co.uk> wrote in message
> news:1124726069.210428.315570@o13g2000cwo.googlegroups.com...
>
>
>
>
> Since he works for NASA, that would seem quite important. Did
> you see the Ming dynasty rocket chair?
>
>
>
>
> I'm pretty sure that he is. The point is that many compiler/
> debugger combinations lose the names of the named constants
> between the time you write your source code and the time you
> run the debugger. Another thing that I have seen happen, which
> I'm pretty sure that Richard didn't mean, is that one can write
> exact mathematical expressions for named constants, but the
> compiler can produce other than the rounded-to-nearest values
> for these expressions because it may round intermediate pieces
> of the expressions, producing more inexact results due to
> multiple rounding. I have seen this happen and the only cure
> was to write out the actual numerical values in the PARAMETER
> statements, perhaps preserving the expressions in comments.
>
>
>
>
> NO! Computer science departments don't teach you anything
> about problem solving, or even what a problem is. It
> amazes me no end to see how pitiful the kids graduating
> with a CS degree are at programming. They are very good
> at denigrating certain programming languages and operating
> systems, but they don't seem to teach numerical solution
> of Schroedinger's equation...


Do any of these solutions manage to involve an enclosed feline?

(sorry, couldn't resist)

Jim C
Rich Townsend

2005-08-22, 7:02 pm

Jim Cornwall wrote:
> James Van Buskirk wrote:
>
>
>
> Do any of these solutions manage to involve an enclosed feline?
>
> (sorry, couldn't resist)
>


Well, on Unix, you just type "cat". I'm not sure how you deal with
Wigner's Friend, however.

cheers,

Rich
Jan Vorbrüggen

2005-08-23, 7:57 am

> I would guess that an inverse function probably exists, because unless
> a compiler destroys information in the compilation process, all the
> information in the source is in the executable, just, as Kevin pointed
> out, scrambled.


Another example: Compiling with feedback from profiling. You wouldn't
expect the executable to contain all of the profiling information, do
you? Given that it doesn't, you can't invert the compilation - indeed,
this is one of the cases where you _expect_ that different compilations
of the same source code might result in different executables, based on
the details of the feedback used.

Jan
Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2009 codecomments.com