Page 4 of 4

Re: FoldWatcher is out!!! (The ULTIMATE Monitoring Environment..

Posted: Fri May 23, 2008 5:52 am
by smoking2000
codysluder wrote:
smoking2000 wrote:I saw that your app is using code from qd, so it's good courtesy to give credit where credit is due. :eugeek:
Credit is a funny issue. It ASSUMES that you know the origin of the data. He said in his first post that he used the FAH documentation. He just assumed that the documentation came from Stanford rather than from Dick Howell. That's a easy mistake to make.

If we assume that Dick did get his documentation from Stanford rather than writing it himself then there's no need for a credit. (I'm sure the assumption is false, but it does explain the following: )
drkameleon wrote:FoldWatcher is entirely written in C++ using Qt libraries, so I couldn't actually use any existing F@H monitor's code. I just had a look at F@H documentation... (queue.dat structure, wuinfo_0X.dat, etc)
You're making wrong assumption too. I know which documentation he used, I wrote most of it. Start by reading Dick Howell website again (which I cleary didn't write):
http://rph.linuxminded.nl/fah.html wrote:The programs described on this web page, and available here for download, work with data from the Folding@home client. They are a set of independent tools which can be used to monitor and examine client data, to help diagnose problems, and to recover from several cases when the client queue has lost track of current work. This software is not part of the Folding@home client distributed by the Pande Group at Stanford University, nor has it in any way been developed by them. They are aware of it, however, and have neither approved nor disapproved of its use.
I know drkameleon visited that webpage too, I saw his greek IP address in my webserver access_logs often :)

He checked out Dick Howell website,and made extensive use of the queue.dat documentation that I wrote based on Dick Howells work on qd.c, and which is shipped as part of qd-tools in which Dick Howell and other peoples work in credited. The wuinfo.dat documentation comes from the Wiki page I wrote, which mentions Dick Howells wuinfo in the first section.

There likely should be some credit for Andrew (Uncle_Fungus) too, as the queue.dat C++ structure looks like it was the code from FahMon that was reused. It's not the struct that I documented anywhere outside the qd.c source code.

In the Open Source/Free Software world we don't ask much, as our license permits most use cases. But give credit were credit is due, drkameleon should know better. But as it looks like it's his first GPL licensed project I'll give him some slack as the GPL is not the easiest license to read and understand. That's why I'm showing him the correct way. It's OK to use other peoples GPLed code (assuming the code reuse is OK, e.g. GPLv2+ into GPLv3 project, whereas GPLv3 code can't be used in a GPLv2 project due to the additional restrictions in GPLv3), but respect their (C) and the license by perserving their copyright statements and give credit to these original authors in your project.

Re: FoldWatcher is out!!! (The ULTIMATE Monitoring Environment..

Posted: Fri May 23, 2008 2:47 pm
by drkameleon
These last 3 posts were really interesting...
smoking2000 wrote: I've had a look at your app and its code, as it looked like the "InCrease for Linux" app is here now :

Overall your foldwatcher feels like a fusion between FahMon and InCrease, not bad at all. The UI is bit busy for the eyes, but all in all it's quite nice. Image
Well, from the very first time I saw some InCrease screenshots - compared to that ultimate "simplicity" of FahMon - I loved it. However, FoldWatcher is by no means an attempt to become an InCrease port for Linux, thus some sort of imitation.
smoking2000 wrote:I recognize the struct Dick Howell wrote with my eyes closed, also because some of that code and comments are (C) me. 8-)

It turns out you've taken an approach similar to what Uncle_Fungus did with FahMon. He also used the queue.dat struct, some datatypes and some of qds logic, basically rewrote most of qds functionality in C++. You could have reused some of that code, as it's GPLv2+ :D

I also saw that you used code from Dick Howells wuinfo.c.
At first, I want to make clear that I just read a few lines out of FahMon code. Of course, I admit that queue.dat's struct format and wuinfo.dat's struct format were copied from linuxminded.nl (I think...). However, I was not at all sure that it wasn' t work made by the Stanford team itself.
codysluder wrote: Credit is a funny issue. It ASSUMES that you know the origin of the data. He said in his first post that he used the FAH documentation. He just assumed that the documentation came from Stanford rather than from Dick Howell. That's a easy mistake to make.

If we assume that Dick did get his documentation from Stanford rather than writing it himself then there's no need for a credit. (I'm sure the assumption is false, but it does explain the following: )
Well, I think I've already answered to this. I had and actually still have NO IDEA about the origin of the data. As you may have noticed, 1 or 2 months ago, I opened another thread in "3rd party contributed software" to ASK for documentation. Excuse me for not mentioning the origin, as I assumed (false... assumption again) that it was coming from the Stanford team.
smoking2000 wrote:I know drkameleon visited that webpage too, I saw his greek IP address in my webserver access_logs often :)

He checked out Dick Howell website,and made extensive use of the queue.dat documentation that I wrote based on Dick Howells work on qd.c, and which is shipped as part of qd-tools in which Dick Howell and other peoples work in credited. The wuinfo.dat documentation comes from the Wiki page I wrote, which mentions Dick Howells wuinfo in the first section.

There likely should be some credit for Andrew (Uncle_Fungus) too, as the queue.dat C++ structure looks like it was the code from FahMon that was reused. It's not the struct that I documented anywhere outside the qd.c source code.

In the Open Source/Free Software world we don't ask much, as our license permits most use cases. But give credit were credit is due, drkameleon should know better. But as it looks like it's his first GPL licensed project I'll give him some slack as the GPL is not the easiest license to read and understand. That's why I'm showing him the correct way. It's OK to use other peoples GPLed code (assuming the code reuse is OK, e.g. GPLv2+ into GPLv3 project, whereas GPLv3 code can't be used in a GPLv2 project due to the additional restrictions in GPLv3), but respect their (C) and the license by perserving their copyright statements and give credit to these original authors in your project.
R u spying on my IP??? LOL just kidding...

I MUST say that the documentation you pointed me to, was EXTREMELY useful, especially this hexdump of queue.dat. As I have mentioned in the other thread, it is a real TREASURE for programmers. How could I figure out then, what means a zero value - for example - in the third byte??? No way...

Although I've been programming for over 13 years (microkernels, trojans, prog.langs and bioinformatics apps), it's really my FIRST GPL'ed app and the first one as well that was uploaded to Sourceforge. I had absolutely NO INTENTION to steal code, as I admire programmers and their work and it would be really an insult to ignore their contribution. Excuse me for not mentioning the authors, because i had no idea, who they were. As far as some name changes I made in the structs I borrowed, that was just because - apart from functionality - I really think that code must be beautiful and more self-explanatory, thus programming IS indeed an ART.

So, I am listing what I used out of what I thought was general documentation :

1) queue.dat struct + hexdump of queue.dat
2) wuinfo_0X.dat struct

and the following tools (binaries, not code):
*RasMol gtk
*xyz2pdb (by Dick Howell)
*wget

--------------
I suppose that you have read a few of my sources, so you must know by now HOW i tried to "include" the GPL license into my project.

Please, let me know WHAT adjustments I have to make in order to be absolutely faithful to the license I use as well as to the others that (apparently) contributed to my writing this program. Plz be specific.

Thanx in advance!!!!

Re: FoldWatcher is out!!! (The ULTIMATE Monitoring Environment..

Posted: Fri May 23, 2008 3:38 pm
by uncle_fungus
All it technically needs is comments in the source code acknowledging the original authors of any reused code. Note that none of the documentation has been made public domain by Stanford.

As I see it, the following acknowledgements are necessary:
Richard P. Howell IV. Copyright (C) 2002-2005 - wuinfo, queue struct, xyz2pdb
Sebastiaan Couwenberg Copyright (C) 2005-2008 - docs and queue struct
Andrew Schofield Copyright (C) 2008 - queue struct (I say this because the struct you are using appears to have been lifted from FahMon:/src/includes/queue.h. The giveaway is the fact that you've left the doxygen-style comments in, which don't appear anywhere else in your source code, and the queue struct is a number of revs older that the latest version used by qd).
Ivo Sarak Copyright (C) 2003(?)-2008 - finstall

Technically there's no need to acknowledge the copyright of the authors of rasmol or wget unless you (i) include their source code (ii) distribute them with foldwatcher.

Please note we (Bas and myself) are not trying to discourage you from reusing code, that's the whole reason our code is GPL'd, but respecting copyright is important.

Re: FoldWatcher is out!!! (The ULTIMATE Monitoring Environment..

Posted: Sat May 24, 2008 12:39 am
by smartcat99s
FYI, getting the linux source to build under windows was trivial.

I tested this so that you wouldn't have to keep maintaining a "port", but rather a couple of patches.
One thing that might help is that you could "#ifdef WIN32" to keep the paths together in onefile, as the makefile defines this under windows.

(using VS 2005 as the base compiler)

1. Extract Linux source code
2. Replace all of the icons that are symlinks with the real icons (provided in the windows source)
3. qmake
4. nmake
5. enjoy

According to the KDE/Windows site:
Note: Qt's qmake syntax supports console and windows parameters of the CONFIG variable, so CONSOLE subsystem can be enabled by specifying CONFIG += console in the .pro file, windows subsystem can be enabled with CONFIG += windows.
After I created (by hand) "c:\Documents and Settings\USERNAME\.foldwatcher" and copied in the requisite files, it worked without any problems.

Re: FoldWatcher is out!!! (The ULTIMATE Monitoring Environment..

Posted: Sat May 24, 2008 1:15 am
by drkameleon
All it technically needs is comments in the source code acknowledging the original authors of any reused code. Note that none of the documentation has been made public domain by Stanford.

As I see it, the following acknowledgements are necessary:
Richard P. Howell IV. Copyright (C) 2002-2005 - wuinfo, queue struct, xyz2pdb
Sebastiaan Couwenberg Copyright (C) 2005-2008 - docs and queue struct
Andrew Schofield Copyright (C) 2008 - queue struct (I say this because the struct you are using appears to have been lifted from FahMon:/src/includes/queue.h. The giveaway is the fact that you've left the doxygen-style comments in, which don't appear anywhere else in your source code, and the queue struct is a number of revs older that the latest version used by qd).
Ivo Sarak Copyright (C) 2003(?)-2008 - finstall

Technically there's no need to acknowledge the copyright of the authors of rasmol or wget unless you (i) include their source code (ii) distribute them with foldwatcher.

Please note we (Bas and myself) are not trying to discourage you from reusing code, that's the while reason our code is GPL'd, but respecting copyright is important.
I agree 100% and thank you a lot. My next sources will be more typical... I suppose this "FAHQUEUE.H" will become twice as big after ALL THESE ADDITIONS! :P LOL. Do you know if not having the software copyrighted to your REAL NAME is a problem? 'Coz I really wouldn't like it to appear anywhere...
FYI, getting the linux source to build under windows was trivial.

I tested this so that you wouldn't have to keep maintaining a "port", but rather a couple of patches.
One thing that might help is that you could "#ifdef WIN32" to keep the paths together in onefile, as the makefile defines this under windows.

(using VS 2005 as the base compiler)

1. Extract Linux source code
2. Replace all of the icons that are symlinks with the real icons (provided in the windows source)
3. qmake
4. nmake
5. enjoy

According to the KDE/Windows site:

Note: Qt's qmake syntax supports console and windows parameters of the CONFIG variable, so CONSOLE subsystem can be enabled by specifying CONFIG += console in the .pro file, windows subsystem can be enabled with CONFIG += windows.



After I created (by hand) "c:\Documents and Settings\USERNAME\.foldwatcher" and copied in the requisite files, it worked without any problems.
Well, your idea is exactly what I was thinking of. However for a... "first" release, I hadn't really thought too much about code optimization. Of course, it's really annoying to turn ALL THOSE "/" to backslashes and minor other differences, every time the code is going to be ported. Yes, you're probably right. Working with "ifdef"s and "ifndef"s will work definitely. And of course a separate "path management" .cpp MUST be written.

THANX A LOT GUYS!I'm sure you know PROGRAMMING IS REAL FUN, and you've already proven it! :D

Re: FoldWatcher is out!!! (The ULTIMATE Monitoring Environment..

Posted: Sat May 24, 2008 5:55 pm
by smoking2000
drkameleon wrote:Well, from the very first time I saw some InCrease screenshots - compared to that ultimate "simplicity" of FahMon - I loved it. However, FoldWatcher is by no means an attempt to become an InCrease port for Linux, thus some sort of imitation.
There has been a need for a FAH client monitor/managing GUI on Linux for some time. That's why I wrote my own webbased FAH client monitor FCI. While FahMon is very nice, it's doesn't show as much information as I'd like, and it doesn't use a client/server model :)

FoldWatcher fills that gap quite nicely, using finstall the most popular tool to easily install FAH on Linux as I've seen in my webserver logs too. Every day I see a couple of people using finstall to install FAH, qd and fpd, FoldWather does something similiar to what InCrease adds to monitoring only functionality, the ease of use to install the FAH client. :egeek:
drkameleon wrote:At first, I want to make clear that I just read a few lines out of FahMon code. Of course, I admit that queue.dat's struct format and wuinfo.dat's struct format were copied from linuxminded.nl (I think...). However, I was not at all sure that it wasn' t work made by the Stanford team itself.
[...]
Well, I think I've already answered to this. I had and actually still have NO IDEA about the origin of the data. As you may have noticed, 1 or 2 months ago, I opened another thread in "3rd party contributed software" to ASK for documentation. Excuse me for not mentioning the origin, as I assumed (false... assumption again) that it was coming from the Stanford team.
[...]
I MUST say that the documentation you pointed me to, was EXTREMELY useful, especially this hexdump of queue.dat. As I have mentioned in the other thread, it is a real TREASURE for programmers. How could I figure out then, what means a zero value - for example - in the third byte??? No way...

Although I've been programming for over 13 years (microkernels, trojans, prog.langs and bioinformatics apps), it's really my FIRST GPL'ed app and the first one as well that was uploaded to Sourceforge. I had absolutely NO INTENTION to steal code, as I admire programmers and their work and it would be really an insult to ignore their contribution. Excuse me for not mentioning the authors, because i had no idea, who they were. As far as some name changes I made in the structs I borrowed, that was just because - apart from functionality - I really think that code must be beautiful and more self-explanatory, thus programming IS indeed an ART.
The biggest mistake you made in the process was to not read the postings we made in the F@H Monitor creation & Info from F@H files... topic and the documentation we linked well enough. I can't blame you for that too much, as its clear that your not a native English speaker, language may have been a barrier here too.

But if you would have checked who wrote the Wiki pages and who the website belongs to that were linked, you would have a good idea who the authors were and what their relation to the F@H project is. We've been in this community for a couple years now, so we know the way around and the who's who, so we show you the way too. :wink:

If you make the changes as suggested by Uncle_Fungus, I'm perfectly happy about your use of our work. Although I must note that your license choice is a bit ackward, as I wrote before:
smoking2000 wrote:It's OK to use other peoples GPLed code (assuming the code reuse is OK, e.g. GPLv2+ into GPLv3 project, whereas GPLv3 code can't be used in a GPLv2 project due to the additional restrictions in GPLv3), but respect their (C) and the license by perserving their copyright statements and give credit to these original authors in your project.
Because your code is licensed under the GPLv3 we cannot benefit from your code, because we cannot use it in our GPLv2+ licensed code for the reason mentioned above. The BSD license has the same problem versus the GPL, the additional restrictions in the GPL that are not in the BSD license make it impossible to use GPL code in a BSD licensed project. The other way around is possible though, you can use BSD code in a GPL project because the BSD license allows you use the code as long as you preserve the Copyright notice, those are not additionals restrictions which the GPL explicitly forbids. This is one major gripe the BSD community has with Linux community, the Linux community can profit from the work of the BSD projects by incorporating their code, but the BSD projects can't use the GPLed code of the Linux community. Many Flamewars have been fought over this, this problem was also not to long ago highlighted by the relicensing of OpenBSD wifi drivers written based on reverse engineering work of an OpenBSD developer in the Linux kernel, see:
OpenBSD: Stealing Versus Sharing Code on Kerneltrap (Kernel development news).
Linux Driver Copyright Violation on Undeadly (OpenBSD development news).

If you truly want to share you code so that others in the community may use (parts of) it in their FAH apps, relicensing under GPLv2+ would be better because we all use this version of the license (except InCrease, which used to be Public Domain, but is now BSD licensed which makes sense for a Mac app since OSX is based on FreeBSD). If you explicitly chose the GPLv3 for its patent protections or other v3 specifics, that's fine too, but for collaborations shake the GPLv2 is better in this case.
drkameleon wrote:
smoking2000 wrote:I know drkameleon visited that webpage too, I saw his greek IP address in my webserver access_logs often :)
R u spying on my IP??? LOL just kidding...
No, I only watch the activity on my webserver quite closely as web development is a passion of mine, real-time monitoring via tail -f amongst others :eugeek:

I noticed the new visitor was you because of the pattern in which you visited the various FAH related content that I host, and the greek IP confirmed my suspicion. It's the same way I notice when Ivoshiee is visiting, he's the only frequent visitor of my websites with an Estonian IP :egeek:
drkameleon wrote:
All it technically needs is comments in the source code acknowledging the original authors of any reused code. Note that none of the documentation has been made public domain by Stanford.

As I see it, the following acknowledgements are necessary:
Richard P. Howell IV. Copyright (C) 2002-2005 - wuinfo, queue struct, xyz2pdb
Sebastiaan Couwenberg Copyright (C) 2005-2008 - docs and queue struct
Andrew Schofield Copyright (C) 2008 - queue struct (I say this because the struct you are using appears to have been lifted from FahMon:/src/includes/queue.h. The giveaway is the fact that you've left the doxygen-style comments in, which don't appear anywhere else in your source code, and the queue struct is a number of revs older that the latest version used by qd).
Ivo Sarak Copyright (C) 2003(?)-2008 - finstall

Technically there's no need to acknowledge the copyright of the authors of rasmol or wget unless you (i) include their source code (ii) distribute them with foldwatcher.

Please note we (Bas and myself) are not trying to discourage you from reusing code, that's the while reason our code is GPL'd, but respecting copyright is important.
I agree 100% and thank you a lot. My next sources will be more typical... I suppose this "FAHQUEUE.H" will become twice as big after ALL THESE ADDITIONS! :P LOL. Do you know if not having the software copyrighted to your REAL NAME is a problem? 'Coz I really wouldn't like it to appear anywhere...
You should check out the source code of qd, its size grew immensely when I started adding comments everywhere to help make sense of the code as I wrote recently on the Team Mac OS X forum:
smoking2000 wrote:The changes since Dick Howells last release have been huge:

Code: Select all

 qd.c | 3433 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------
1 file changed, 2810 insertions(+), 623 deletions(-)
68K     mirror/www.boston.quik.com/rph/qd.c
160K    v1.8/source/qd/qd.c
Those insertions are mostly comments and project/credit/preferred deadline data, the percentage of actual code is just a fraction of it.

Regarding using your real name in your copyright statement, that depends on the Copyright law. INAL (I'm Not A Lawyer), but I'm not aware that using an alias for the copyright holder name is forbidden. Current versions of nmap are copyrighted by Insecure.Com LLC, it used to be (C) Fyodor (fyodor@dhp.com, fyodor@insecure.org) in nmap 2.00, Fyodor has always used this as his name whereas his real name is Gordon Lyon. Just like like Solar Designer, who is also well known in the security community only by his nickname.

It's good practice to use your real name in the code you publish though, employers Google their new hires by default now, I even got approached once about prospective job opportunities by a recruiter from Google who found my website and my code. My current employer also Googled me, and because of my Internet footprint they were convinced I was a good choice, most of my web presence is from postings to Free Software project mailing list, and support forums. The many patches I have sent to various projects look good on me as a complement to my resume. 8-)

This is also a reason why giving credit to the authors of work you used and/or build upon is important. It's the only reward we get for our work, the 15 minutes of fame when your name gets mentioned for the efforts you've made for others. It's why I keep an extensive CREDITS file in the qd-tools package, to thank all the people who have made (parts of) the project possible.

I'm looking forward to your next release. :D

Re: FoldWatcher is out!!! (The ULTIMATE Monitoring Environment..

Posted: Sat May 24, 2008 6:10 pm
by uncle_fungus
smoking2000 wrote:While FahMon is very nice, it's doesn't show as much information as I'd like
Waaay OT, but this is changing (albeit slowly at the moment).

Re: FoldWatcher is out!!! (The ULTIMATE Monitoring Environment..

Posted: Sun May 25, 2008 12:28 am
by drkameleon
@smoking2000 :


1) I've already mentioned that all credit will be 100% correct in my next release.

2) The License issue is something I've got to think of.

3) As far as "real name" is concerned, I'm not at all interested in pure programming as a job (probably... a fusion would be better). I'm a wanna-be doctor, i've already been involved in several "ethical" hacking things and I'm a writer/novelist as well. I suppose one of these reasons could explain well WHY i don't want my real name to appear ANYWHERE.

Thnx!

(When I manage to have some spare time, I might add a few lines to my proggy...)