Page 3 of 4

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

Posted: Wed May 21, 2008 12:49 am
by drkameleon
Sorry guys! I have fixed and uploaded again the corrected package WITH the libraries/DLLs!!! Please inform me IF it works now...

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

Posted: Wed May 21, 2008 3:33 pm
by Kenelm
Loaded it up on windows and runs fine. It does have a dos window that stays open that is sorta irritating but I can live with that :).

The only suggestion I see is perhaps making the clients columns sortable perhaps?

Other then that it looks great!

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

Posted: Wed May 21, 2008 3:38 pm
by drkameleon
Loaded it up on windows and runs fine. It does have a dos window that stays open that is sorta irritating but I can live with that :).

The only suggestion I see is perhaps making the clients columns sortable perhaps?

Other then that it looks great!
Yes, this DOS windows is really irritating. But I have now to find out WHY it opens, 'coz in the genuine Linux version, it simply doesn't exist. However, after porting and modifying the code a bit for Windows, it opens...

Does anybody know WHY this happens, so I can fix more easily????

Sortable columns! Another easy and nice idea! It' ll definetly be implemented....

Thnx guys!!!!!! Keep testing....

I'm totally open for comments, suggestions and bug reporting...

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

Posted: Wed May 21, 2008 3:42 pm
by drkameleon
Another important thing (maybe for the following release...)

Can anybody help - someone of course who has managed to compile this thing - to create some Packages (.rpm, .deb, etc)???

I have completely no idea how I can do it and even though I tried to, my efforts were futile... :(

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

Posted: Wed May 21, 2008 5:18 pm
by alan2308
Unless I'm missing something, it doesn't appear to be able to update it's WU database on the fly. New projects are released often enough that it should be able to.

I also can do without having it remind me that I don't have /etc/init.d/folding every time it starts up. I already know this.

Other than that, it looks like you have the makings of a great little program here and I'm looking forward to seeing what's in store with future upgrades. Thanks!

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

Posted: Wed May 21, 2008 6:45 pm
by drkameleon
Unless I'm missing something, it doesn't appear to be able to update it's WU database on the fly. New projects are released often enough that it should be able to.
Yes, this is a somewhat a problem. I'm currently trying to fix it by downloading the psummary. It' s just a parsing issue, nothing complex. :wink:
I also can do without having it remind me that I don't have /etc/init.d/folding every time it starts up. I already know this.
Well, I understand that. However, when you are programming, it' s inevitable that - at least for the first time - you are thinking of your OWN pc, which means that you take for granted what exists in YOUR installation. I myself DO HAVE /etc/init.d/folding installed, so this message played a somehow "debugging" role.Of course, it is annoying and I' ll remove it, by saving the status in some file (that... "it doesn't exist") so that the message box doesn't pop up each time at start-up.
Other than that, it looks like you have the makings of a great little program here and I'm looking forward to seeing what's in store with future upgrades. Thanks!
Thanks a lot! :D

-----------------------------------
P.s. I read your post in [H]ard|Forum but I was unable to register.

---------------------------

Keep testing and... folding!!! :lol:

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

Posted: Wed May 21, 2008 11:15 pm
by joeyg
Doesn't work with Gentoo / Xfce4. I get three errors: 1) Configuartion file (foldwatcher.cfg) was not found; 2)/etc/init.d/folding script not found! Either no F@H client is installed or clients where not installed using the 'finstall' script; 3) I couldn't detect any system tray on this system. After acknowledging all three messages, the application closes.

I'd really like to use it, but I won't use 'finstall' and won't use anything but Xfce4. Any workaround?

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

Posted: Thu May 22, 2008 12:21 am
by alan2308
And I forgot to add my most important thought. Thank you for thinking of us Linux users, a lot of the 3rd party tools don't.

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

Posted: Thu May 22, 2008 12:52 am
by mmonnin
Windows Client:

Every time the preferences window is opened it loads the default settings instead of the user defined options so the animation always wants to come back on.

Can it monitor a PS3 by chance? I have no idea if other clients can even do that either.

Is the folderwatcher.exe in a command window necessary??

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

Posted: Thu May 22, 2008 1:00 am
by smartcat99s
mmonnin wrote:Can it monitor a PS3 by chance? I have no idea if other clients can even do that either.

Is the folderwatcher.exe in a command window necessary??
No third party client can monitor the PS3 because there is no way to get at the WU progress without using something ugly like screen scraping.

The command window is a compile issue (IIRC, using WinMain on windows instead of main)

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

Posted: Thu May 22, 2008 1:04 am
by drkameleon
Doesn't work with Gentoo / Xfce4. I get three errors: 1) Configuartion file (foldwatcher.cfg) was not found; 2)/etc/init.d/folding script not found! Either no F@H client is installed or clients where not installed using the 'finstall' script; 3) I couldn't detect any system tray on this system. After acknowledging all three messages, the application closes.

I'd really like to use it, but I won't use 'finstall' and won't use anything but Xfce4. Any workaround?
1) means just that it's the first time you' re running the program (sort of a "start-up screen"). It's not an error.

2) means just that start/stop actions will be disabled... Just that. Nothing to worry about...

3) means that I have to worry about bugs... Just kidding... However, I'm sure the third one makes the system crash. Therefore, in the next release I'm going to set this "system tray" possibility optional and catch any exceptions... So, just wait a bit....

Did the compilation work properly??? Where the instructions complete, or did u add anything? Please tell me.
And I forgot to add my most important thought. Thank you for thinking of us Linux users, a lot of the 3rd party tools don't.
You' re welcome, my friend. However, I suppose Windows users should thank me first for making (although a BETA one) release for their OS. Just joking :P I myself am a Linux user too, who after a lot of years playing with Microsoft's toy, decided to make the full conversion. I'm really NOT sure WHY it took me so long to throw away all this crap. Yes, you' re right, most apps don't really think of Linux users. On the other hand, the power I loved in Linux was that I could really change and create whatever I wanted. Of course, I don't consider myself not even an intermediate Linux user but the more I'm playing with it, the more I'm getting addicted to it. So - no matter what happens - the Linux audience is my first PRIORITY.

:D
Windows Client:

Every time the preferences window is opened it loads the default settings instead of the user defined options so the animation always wants to come back on.

Can it monitor a PS3 by chance? I have no idea if other clients can even do that either.

Is the folderwatcher.exe in a command window necessary??
Yep, this is something I didn't notice. It doesn't actually APPLY the settings, but what you see when opening the preferences window is unfortunately the default ones. TO BE FIXED.

As far as PS3 is concerned... What to say? Even the simple Linux and Windows versionI have released seem to be having more bugs than I had expected or experienced on my PC. However, I think smartcat is probably right on that.

No, it's not. And I have ABSOLUTELY NO IDEA why it pops up, as the original Linux version does NOT include that. I hope I' ll find out soon the buggy part.

----------------------------------


Thank you all!!! :D

Keep testing.... (I'm tired enough to go for a little sleep...)

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

Posted: Thu May 22, 2008 3:46 am
by smartcat99s
drkameleon wrote:
Windows Client:
Is the folderwatcher.exe in a command window necessary??
No, it's not. And I have ABSOLUTELY NO IDEA why it pops up, as the original Linux version does NOT include that. I hope I' ll find out soon the buggy part.
What you need to do is add this to the CFLAGS when you compile the windows version: (source)

Code: Select all

-Wl,-subsystem,windows
That should remove that console window.

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

Posted: Thu May 22, 2008 8:22 am
by drkameleon
What you need to do is add this to the CFLAGS when you compile the windows version: (source)

Code: Select all
-Wl,-subsystem,windows



That should remove that console window.
I' ll test it as soon as possible (when I reboot in my windows partition...)

Thnx a lot!!!

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

Posted: Thu May 22, 2008 8:04 pm
by smoking2000
drkameleon wrote:
Ivoshiee wrote:Interesting.
Do you parse the logs, WU data, ... with your own code or use the qd for that?
Can you monitor remote clients?
Yes, EVERYTHING is parsed... and ALL code is genuine (written by me...)! Moreover 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)
[...]
Have you tested it? I really look forward to hear your comments...
I've had a look at your app and its code, as it looked like the "InCrease for Linux" app is here now :)

I saw that your app is using code from qd, so it's good courtesy to give credit where credit is due. :eugeek:

foldwatcher-0.1.0/src/fahQueue.h:

Code: Select all

  1 // FoldWatcher
  2 // ---------------------
  3 // Coded by Dr.K@meleon <drkameleon@hotmail.com>
  4 //
  5 // homepage : http://kameleon-nest.blogspot.com
  6 //            http://sourceforge.net/projects/foldwatcher/
  7 // ============================
  8 // Filename : fahQueue.h
  9 // Last Update : 17/05/2008
 10 //
 11 // -----------------------------------------------------------------
 12 // This program is free software: you can redistribute it and/or modify
 13 // it under the terms of the GNU General Public License as published by
 14 // the Free Software Foundation, either version 3 of the License, or
 15 // (at your option) any later version.
 16 //
 17 // This program is distributed in the hope that it will be useful,
 18 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 20 // GNU General Public License for more details.
 21 //
 22 // You should have received a copy of the GNU General Public License
 23 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 24 //
 25 // Copyright (C) 2008 by Dr.K@meleon
 26 // ========================================================
 27
 28 #ifndef __FAHQUEUE_H__
 29 #define __FAHQUEUE_H__
 30
 31 #define le2(x)  ((((x)[1]&0xFF)<<8)|((x)[0]&0xFF))
 32 #define le4(x)  (((x)[3]<<24)|(((x)[2]&0xFF)<<16)|(((x)[1]&0xFF)<<8)|((x)[0]&0xFF))
 33 #define be4(x)  (((x)[0]<<24)|(((x)[1]&0xFF)<<16)|(((x)[2]&0xFF)<<8)|((x)[3]&0xFF))
 34
 35 struct queueformat
 36 {
 37         quint32 version; /**< 0000 Queue (client) version (v2.17 and above) */
 38         quint32 current; /**< 0004 Current index number */
 39         struct qs
 40         {
 41                 quint32  stat;      /**< 000 Status */
 42                 char z004[4];           /**< 004 Pad for Windows, others as of v4.01 */
 43                 quint32  tdata[8];      /**< 008 Time data (epoch 0000 1jan00 UTC) */
 44                 quint32  svr1;      /**< 040 Server IP address (until v3.0) */
 45                 quint32  ustat;     /**< 044 Upload status */
 46                 char url[128];      /**< 048 Web address for core downloads */
 47                 quint32  m176;      /**< 176 Misc1a */
 48                 quint32  core;      /**< 180 Core_xx number (hex) */
 49                 quint32  m184;      /**< 184 Misc1b */
 50                 quint32  dsiz;      /**< 188 wudata_xx.dat file size */
 51                 char z192[16];
 52                 union
 53                 {
 54                         struct
 55                         {
 56                                 char proj[2];     /**< 208 Project number (LE) */
 57                                 char run[2];      /**< 210 Run (LE) */
 58                                 char clone[2];    /**< 212 Clone (LE) */
 59                                 char gen[2];      /**< 214 Generation (LE) */
 60                                 char issue[2][4]; /**< 216 WU issue time (LE) */
 61                         } f;                              /**< Folding@home data */
 62                         struct
 63                         {
 64                                 char proj[2];     /**< 208 Project number (LE) */
 65                                 quint16  miscg1;  /**< 210 Miscg1 */
 66                                 char issue[2][4]; /**< 212 WU issue time (LE) */
 67                                 quint16  miscg2;  /**< 220 Miscg2 */
 68                                 quint16  miscg3;  /**< 222 Miscg3 */
 69                         } g;                              /**< Genome@home data */
 70                 } wuid;                                   /**< 208 Work unit ID path information */
 71                 char z224[36];
 72                 char mid[4];                    /**< 260 Machine ID (LE) */
 73                 unsigned char svr2[4];  /**< 264 Server IP address */
 74                 quint32  port;          /**< 268 Server port number */
 75                 char type[64];                  /**< 272 Work unit type */
 76                 char uname[64];                 /**< 336 User Name */
 77                 char teamn[64];                 /**< 400 Team Number */
 78                 char uid[8];                    /**< 464 Stored ID for unit (UserID + MachineID) (LE or BE, usually BE) */
 79                 char bench[4];                  /**< 472 Benchmark (as of v3.24) (LE) */
 80                 char m476[4];                   /**< 476 Misc3b (unused as of v3.24) (LE) */
 81                 quint32  cpu_type;      /**< 480 CPU type (LE or BE, sometimes 0) */
 82                 quint32  os_type;       /**< 484 OS type (LE or BE, sometimes 0) */
 83                 quint32  cpu_spec;      /**< 488 CPU species (LE or BE, sometimes 0) */
 84                 quint32  os_spec;       /**< 492 OS species (LE or BE, sometimes 0) */
 85                 quint32  expire;                /**< 496 Allowed time to return (seconds) */
 86                 char z500[8];
 87                 char aiflag[4];                 /**< 508 Assignment info present flag (LE or BE) */
 88                 char aitime[4];                 /**< 512 Assignment timestamp (LE or BE) */
 89                 char aidata[4];                 /**< 516 Assignment info (LE or BE) */
 90                 char csip[4];                   /**< 520 Collection server IP address (as of v5.00) (LE) */
 91                 char dstart[4];                 /**< 524 Download started time (as of v5.00) (BE) */
 92                 char z528[16];
 93                 char cores[4];                  /**< 544 Number of SMP cores (as of v5.91) (BE) */
 94                 char tag[16];                   /**< 548 Tag of Work Unit (as of v5.00) */
 95                 char z564[52];
 96                 char memory[4];                 /**< 616 Available memory (as of v6.00) (BE) */
 97                 char z620[68];
 98                 quint32  due[4];        /**< 688 WU expiration time */
 99                 quint32  plimit;        /**< 704 Packet size limit (as of v5.00) */
100                 quint32  uploads;       /**< 708 Number of upload failures (as of v5.00) */
101         } entry[10];                            /**< 0008 Array of ten queue entries */
102         quint32  pfract;    /**< 7128 Performance fraction (as of v3.24) */
103         quint32  punits;    /**< 7132 Performance fraction unit weight (as of v3.24) */
104         quint32  drate;     /**< 7136 Download rate sliding average (as of v4.00) */
105         quint32  dunits;    /**< 7140 Download rate unit weight (as of v4.00) */
106         quint32  urate;     /**< 7144 Upload rate sliding average (as of v4.00) */
107         quint32  uunits;    /**< 7148 Upload rate unit weight (as of v4.00) */
108         char z7152[16];         /**< 7152 (as of v5.00) ...all zeros after queue conversion... */
109 };
I recognize the struct Dick Howell wrote with my eyes closed, also because some of that code and comments are (C) me. 8-)

qd-tools-1.9/source/qd/qd.c:

Code: Select all

   1 /* <qd.c> 9jun05
   2 **
   3 ** Program to dump data from Folding@home <queue.dat> file.
   4 ** It will poke around at other files too, if it can find them.
   5 **
   6 ** Copyright (C) 2002-2005 Richard P. Howell IV.
   7 ** Copyright (C) 2005-2008 Sebastiaan Couwenberg
   8 ** This is free software; you can distribute it and/or modify it under
   9 ** the terms of the GNU General Public License.  There is no warranty
  10 ** whatsoever.
[...]
  98 #define be4(x)  (((x)[0]<<24)|(((x)[1]&0xFF)<<16)|(((x)[2]&0xFF)<<8)|((x)[3]&0xFF))
  99 #define le4(x)  (((x)[3]<<24)|(((x)[2]&0xFF)<<16)|(((x)[1]&0xFF)<<8)|((x)[0]&0xFF))
 100 #define le2(x)  ((((x)[1]&0xFF)<<8)|((x)[0]&0xFF))
 101 #define exch(x, y, t)   {t=x;x=y;y=t;}
[...]
 135 /* Structure of <queue.dat> file */
 136
 137 typedef unsigned int u32;
 138 typedef unsigned short u16;
 139
 140 struct qf
 141 {       u32             version;         /* 0000 Queue (client) version (v2.17 and above) */
 142         u32             current;         /* 0004 Current index number */
 143         struct qs
 144         {       u32     stat;            /* 000 Status */
 145                 char    use_cores[4];    /* 004 Pad for Windows, others as of v4.01, as of v6.01 number of SMP Cores to use (LE) */
 146                 u32     tdata[8];        /* 008 Time data (epoch 0000 1jan00 UTC) */
 147                 u32     svr1;            /* 040 Server IP address (until v3.0) */
 148                 u32     ustat;           /* 044 Upload status */
 149                 char    url[128];        /* 048 Web address for core downloads */
 150                 u32     m176;            /* 176 Misc1a */
 151                 u32     core;            /* 180 Core_xx number (hex) */
 152                 u32     m184;            /* 184 Misc1b */
 153                 u32     dsiz;            /* 188 wudata_xx.dat file size */
 154                 char    z192[16];
 155                 union
 156                 {       struct
 157                         {       char    proj[2];        /* 208 Project number (LE) */
 158                                 char    run[2];         /* 210 Run (LE) */
 159                                 char    clone[2];       /* 212 Clone (LE) */
 160                                 char    gen[2];         /* 214 Generation (LE) */
 161                                 char    issue[2][4];    /* 216 WU issue time (LE) */
 162                         }       f;                      /* Folding@home data */
 163                         struct
 164                         {       char    proj[2];        /* 208 Project number (LE) */
 165                                 u16     miscg1;         /* 210 Miscg1 */
 166                                 char    issue[2][4];    /* 212 WU issue time (LE) */
 167                                 u16     miscg2;         /* 220 Miscg2 */
 168                                 u16     miscg3;         /* 222 Miscg3 */
 169                         }       g;                      /* Genome@home data */
 170                 }       wuid;            /* 208 Work unit ID information */
 171                 char    z224[36];
 172                 char    mid[4];          /* 260 Machine ID (LE) */
 173                 u32     svr2;            /* 264 Server IP address */
 174                 u32     port;            /* 268 Server port number */
 175                 char    type[64];        /* 272 Work unit type */
 176                 char    uname[64];       /* 336 User Name */
 177                 char    teamn[64];       /* 400 Team Number */
 178                 char    uid[8];          /* 464 Stored ID for unit (UserID + MachineID) (LE or BE, usually BE) */
 179                 char    bench[4];        /* 472 Benchmark (as of v3.24) (LE) */
 180                 char    m476[4];         /* 476 Misc3b (unused as of v3.24) (LE); Benchmark (as of v5.00) (BE) */
 181                 u32     cpu_type;        /* 480 CPU type (LE or BE, sometimes 0) */
 182                 u32     os_type;         /* 484 OS type (LE or BE, sometimes 0) */
 183                 u32     cpu_spec;        /* 488 CPU species (LE or BE, sometimes 0) */
 184                 u32     os_spec;         /* 492 OS species (LE or BE, sometimes 0) */
 185                 u32     expire;          /* 496 Allowed time to return (seconds) */
 186                 char    z500[8];
 187                 char    aiflag[4];       /* 508 Assignment info present flag (LE or BE) */
 188                 char    aitime[4];       /* 512 Assignment timestamp (LE or BE) */
 189                 char    aidata[4];       /* 516 Assignment info (LE or BE) */
 190                 char    csip[4];         /* 520 Collection server IP address (as of v5.00) (LE) */
 191                 char    dstart[4];       /* 524 Download started time (as of v5.00) (BE) */
 192                 char    z528[16];
 193                 char    cores[4];        /* 544 Number of SMP cores (as of v5.91) (BE) */
 194                 char    tag[16];         /* 548 Tag of Work Unit (as of v5.00) */
 195                 char    z564[16];
 196                 char    passkey[32];     /* 580 Passkey (as of v6.00) */
 197                 char    flops[4];        /* 612 Flops per CPU (core) (as of v6.00) (BE) */
 198                 char    memory[4];       /* 616 Available memory (as of v6.00) (BE) */
 199                 char    z620[68];
 200                 u32     due[4];          /* 688 WU expiration time */
 201                 u32     plimit;          /* 704 Packet size limit (as of v5.00) */
 202                 u32     uploads;         /* 708 Number of upload failures (as of v5.00) */
 203         }               entry[10];       /* 0008 Array of ten queue entries */
 204         u32             pfract;          /* 7128 Performance fraction (as of v3.24) */
 205         u32             punits;          /* 7132 Performance fraction unit weight (as of v3.24) */
 206         u32             drate;           /* 7136 Download rate sliding average (as of v4.00) */
 207         u32             dunits;          /* 7140 Download rate unit weight (as of v4.00) */
 208         u32             urate;           /* 7144 Upload rate sliding average (as of v4.00) */
 209         u32             uunits;          /* 7148 Upload rate unit weight (as of v4.00) */
 210         char            results_sent[4]; /* 7152 Results successfully sent (after upload failures) (as of v5.00) (LE) */
 211         char            z7156[12];       /* 7156 (as of v5.00) ...all zeros after queue conversion... */
 212 } qbuf;
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.

foldwatcher-0.1.0/src/fahWuinfo.h:

Code: Select all

  1 // FoldWatcher
  2 // ---------------------
  3 // Coded by Dr.K@meleon <drkameleon@hotmail.com>
  4 //
  5 // homepage : http://kameleon-nest.blogspot.com
  6 //            http://sourceforge.net/projects/foldwatcher/
  7 // ============================
  8 // Filename : fahWuinfo.h
  9 // Last Update : 17/05/2008
 10 //
 11 // -----------------------------------------------------------------
 12 // This program is free software: you can redistribute it and/or modify
 13 // it under the terms of the GNU General Public License as published by
 14 // the Free Software Foundation, either version 3 of the License, or
 15 // (at your option) any later version.
 16 //
 17 // This program is distributed in the hope that it will be useful,
 18 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 20 // GNU General Public License for more details.
 21 //
 22 // You should have received a copy of the GNU General Public License
 23 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
 24 //
 25 // Copyright (C) 2008 by Dr.K@meleon
 26 // ========================================================
 27
 28 #ifndef __FAHWUINFO_H__
 29 #define __FAHWUINFO_H__
 30
 31 struct wuformat
 32 {       quint32     core;                   /* 000 Core number */
 33         char        pname[80];              /* 004 Project (protein) name */
 34         quint32     tsteps;                 /* 084 Total steps */
 35         quint32     csteps;                 /* 088 Completed steps */
 36         char        z092[420];              /* 092 */
 37 };
wuinfo.c:

Code: Select all

 20 struct wif
 21 {       u32     core;           /* 000 Core number */
 22         char    pname[80];      /* 004 Project (protein) name */
 23         u32     tsteps;         /* 084 Total steps */
 24         u32     csteps;         /* 088 Completed steps */
 25         char    z092[420];      /* 092 */
 26 };
The wuinfo.c has no license information in the source code itself, but it's stated quite clearly at the top of Dick Howells website:
http://rph.linuxminded.nl/fah.html wrote:This is free software; you can distribute it and/or modify it under the terms of the GNU Public License. There is no warranty. If it breaks, as they say, you get to keep the pieces.
May this be a kind request to give credit to the original authors, especially Dick Howell, as all other developers have done who are using (parts of) his code. InCrease did it, FahMon did it, finstall did it, Gkrellfah2 did it, kfolding did it, you get the point. It's very rude to claim credit for other peoples work, and to disrespect their copyright by leaving out their name.

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

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

Posted: Fri May 23, 2008 4:47 am
by codysluder
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)