Official YURT Design Thread (Development Discussion ONLY)

Well, the beta's ready. But I want to reset the stats, and the database admin tool at 1and1 is down. So we'll have to wait ...
 
The new beta has been sent out. I've also reset the database.
 
Amazingly, even though there's less than a dozen people using the program, there's a problem with older clients floating around. If an older client has a bug (like the 100 updates issue), and someone continues to run it, it will of cousre continue to add corrupted data to the database. I've added a feature that locks out older clients.
 
alright installed and running yurt on 3 comps atm

Will be 5 in the next hour prob.

Are we goign to have a beta thread?
 
one thing in the pdf with the beta you misspelled yurtmonitor

pdf said:
Running as a Service
To install YURTMonitor as a service, execute the program and provide the argument
“install” on the command line, like this:
Yurtmoitor install

 
There already is a beta thread.

Thanks for letting me know about the typo; I'll go and fix it.
 
I get this when I select the http://beta.blaszczak.com/ShowRatesByProteinVendor.asp link.

Code:
Microsoft VBScript runtime  error '800a000d'

Type mismatch: 'FormatNumber'

/ShowRatesByProteinVendor.asp, line 136

It's at the top of the page. only displays three protiens this way.

I am using Firefox, latest version.
Windows XP Pro.
With the ICE_9 specs

Also, clicking on the teams page. The link provided http://vspx27.stanford.edu/cgi-bin/main.py?qtype=userpage&username=[H]ardOCP&teamnum=33
is pointing to some user data for the person [H}ardOCP. The link to the team page is http://fah-web.stanford.edu/cgi-bin/main.py?qtype=teampage&teamnum=33.

I know they did a server name switch. The details are on the news page but here is the info:

10/19/2005 Web server name switch
We are switching some of our web services to a new address. All pages which start with vspx27.stanford.edu will switch to fah-web.stanford.edu. For now, both addresses are available, although the vspx27 will go away. For example, the serverstat page can now be found at http://fah-web.stanford.edu/serverstat.html.
Edit 1: more data added
Edit 2: correction on new data
 
Yeah, it was the Team List page. That's fixed; I'll see if I can fix the rest of the links to point at that new server.
 
I fixed the links so everyhting points at the new server. I've also found a couple of other places where NULLs were screwing up the reports so I've fixed those.
 
well... I have run into a problem this morning.

Was trying to install on a comp at work but ran into error HTTP status code 403. I assume this is the error for when you do not have internet on that comp. So were is Yurt trying to send its info?

 
Duster said:
well... I have run into a problem this morning.

Was trying to install on a comp at work but ran into error HTTP status code 403. I assume this is the error for when you do not have internet on that comp. So were is Yurt trying to send its info?
I looked at the web service logs for the last three days, and I see no 403 responses from my server -- for any of my websites. That indicates the problem is with your proxy or your client.

But if you can provide a complete bug report, I can look into the matter.
 
The monitor doesn't appear to be saving state properly. Here's the log, at DEBUG level:
Code:
[2006-04-30 15:27:11] Service is shutting down...
[2006-04-30 15:27:11] Wrote 492 items to YURTMonitorState.dat
[2006-04-30 15:27:11] Wrote 1 directory state to YURTMonitorState.dat
[2006-04-30 16:14:27] YURTMonitor Version 0.0.9.0 started.
[2006-04-30 16:14:27] Logging mode is DEBUG
[2006-04-30 16:14:27] C:\Program Files\YURT
[2006-04-30 16:14:27] Monitoring directory "C:\Program Files\Folding@Home"
[2006-04-30 16:14:27] File version 333 detected
[2006-04-30 16:14:27] The YURTMonitorState.DAT file was corrupt. Starting cold.
I shut down on Sunday at 3:30ish, started up at 4:15 (as you can see) and nothing should have touched that file in between. There were quite a few queue items because I'm behind a proxy at home (Squid, to be specific) and YURT doesn't send through it. I'm not concerned with that, especially, but the corruption sounds problematic. I don't have the original file, since YURT overwrote it, and FAH has renamed the log file to -Prev. I can send you the log file if you like, from either or both applications.

 
no it is def on my side. I block all web traffic at the cleaners so no one can use net

I just need to know were Yurt is pointing so I can let it thru.

 
unhappy_mage said:
The monitor doesn't appear to be saving state properly. Here's the log, at DEBUG level:

Thanks for the report; I'll look into it. I might need you to nab a *.DAT file if I can't repro it.

LATER: Yeah, not repro for me. This code changed last night when I decided to add some addition info to the persisted state. That is, it'll be different code in 0.92 than it was in 0.90. We can either just wait to see if you can repro it in 0.92, or you can email a *.DAT file if you can repro the problem here.

unhappy_mage said:
There were quite a few queue items because I'm behind a proxy at home (Squid, to be specific) and YURT doesn't send through it.
YURT is just doing a HTTP POST to port 80 on a web server. I would be surprised that your proxy doesn't allow this out of the box.
 
Duster said:
no it is def on my side. I block all web traffic at the cleaners so no one can use net

I just need to know were Yurt is pointing so I can let it thru.

beta.blaszczak.com, which will become yurt.blaszczak.com once we go live.
 
mikeblas said:
LATER: Yeah, not repro for me. This code changed last night when I decided to add some addition info to the persisted state. That is, it'll be different code in 0.92 than it was in 0.90. We can either just wait to see if you can repro it in 0.92, or you can email a *.DAT file if you can repro the problem here.
I can't get a .dat file from what I imagine would have been the logs. What validation does YURT do on its .dat file? Could the FAHlog changing (restarting) from YURT closing to reopening cause this?
mikeblas said:
YURT is just doing a HTTP POST to port 80 on a web server. I would be surprised that your proxy doesn't allow this out of the box.
I was too, to be honest. I set the proxy in Internet Explorer; I know a lot of things use this, is YURT one of them or is there something else I should have set?

 
I guess the moderators can't decide if this thread is sticky or not.

unhappy_mage said:
I can't get a .dat file from what I imagine would have been the logs.
Huh?

The validation is pretty weak; the error essentially means that the file said it had more data than it did. It's more likely the result of a mismatch between the code that writes the file and the code that reads the file than any real corruption.

unhappy_mage said:
I was too, to be honest. I set the proxy in Internet Explorer; I know a lot of things use this, is YURT one of them or is there something else I should have set?

YURT uses WinHTTP, which you configure with the WinHTTP Proxy Configuration Utility.

YURTInstaller uses WinINet, which is what IE uses. Maybe I should make YURTInstaller use WinHTTP, as well, so that it gives a quick indication of whether the proxy settings are correct.
 
I've updated the docs with instructions about setting up YURT with a proxy. YurtInstaller now uses the same WinHTTP library that YurtMonitor uses; that way, you can see quickly if your proxy config is workin' or not.

I think I have Unhappy's bug fixed.

And that's it. If this runs without complaint for a couple weeks, we'll call it good.

Let me know what you find.

Also, this is your last chance; if you want your real name (or something other than your HardForum handle) in the docs, please let me know right now.
 
On pages 5 and 6, Yurtmonitor is misspelled "Yurtmoitor" on the command line examples.

Not sure if this is a bug or my misunderstanding, but here's a snippet of logfile:
Code:
[2006-05-10 07:58:41]  Line 289: frame 100 took 3924 seconds
[2006-05-10 07:58:41]  Queued frame on protein 2106 for time 3924
[2006-05-10 07:58:41]  Queue has 100 items and 0 locked items
[2006-05-10 07:58:41]  Line 304: finished unit that started at -186315, took 254381
[2006-05-10 07:58:41] 100 items removed from queue
[2006-05-10 07:58:41]  Queued work unit on protein 2106 for time 254381
[2006-05-10 07:58:41]  Queue has 1 items and 1 locked items
And I have work units submitted, but no frames submitted. The whole work unit log was parsed in one swoop (because I had just started the new version for the first time) and it didn't send any frames, just the work unit. Is this expected behavior? It happened twice, in any case. Thanks for any input.

 
I've done some work on the website:

Work Rate by Processor Name now has totals and averages.
There's a bad proteins report I can use to find proteins that aren't loaded yet.

The details page that's shown when you click on a machine count in the "machines by processor" list doesn't show machines if they haven't reported any work, but I'm too tired to fix the query right now.

Very very occasionally, some clients report work units complete for ProteinID -1, which isn't right. It finally happened on one of my own machines, so maybe I can figure out exactly what's causing it.

That's the only bug I know about.
 
First of all, the application is great. Even if it never gets another update, it will provide great information. Here are few comments after playing with it for an hour or so. It's been 10 years since I've done any SQL Server work, so who knows how hard any of these will be.

Some ideas for updates and/or reports:

1. All Reports - Tighten up the Time, Time Per, Work Time columns by abbrievating days with d (1d means 1 day). Basically any column using the format "XX days HH:MM:SS", tighten it up to "XXd HH:MM:SS".

2. ShowMachinesbyOwner

I'm probably too focused on this report right now because I'm super curious about my machines. In the Machine summary section (top section), I would prefer to see my processor name in that list - I know it's a wide field. Possibly remove CSD Version (redundant with Version, I believe). Add PPD for frames and Work Units. Tighten up the "Processor Count / Directories" column by renaming it to...Damn that was is tough. Maybe use all three lines. Or rename to "Cores / Directories". Although that's somewhat missleading for hyperthreading. Or rename the column to PC/D and then put a legend at the bottom. :) I know Registry Speed and Measured Speed aren't redundant, but really only measured speed is important on this page (IMHO).

3. ShowRatesByName

Allow this report to be sorted by either "Points Per Day" Column.

4. Do you store the FAH generated benchmark? I know this isn't super reliable depending on what else the machine does, but it might be an interesting metric for comparison and/or normalizing data.

Edit:
5. When you click on a Team/Owner entry it takes you to the stanford site. I typically never go to the stanford site. I would prefer it go to the ShowMachinesByOwner page on your site.

Great work and hopefully this feedback helps.
 
mikeki said:
First of all, the application is great. Even if it never gets another update, it will provide great information.

Thanks for the feedback. There are very few SQL problems; this is a very simple database, and the queries aren't hard at all. Most of what you're asking about has to do with presentation—the ASP and HTML itself.

1) I'll see if I can do that over the weekend. Coming up with the reports was fun, but then I realized all my machines are 1600 x 1200 (even my laptop is 1400 x 1050) and I was worried that I'd scroll for other users.

2) This is good feedback. My plan was to replace "time to complete" with "PPD". Processor Count / Directories is actually going to get even bigger. Once I get the code together to count processors, we'll have physical processors (cores), logical processors (hyperthreading units), and directories monitored. That would get stacked:

Logical Procs /
Physical Procs /
Directories

but even then it's plenty wide, especially over "4 / 4 / 4". What might help here is if I could find code that would let me show a tooltip. The new MyYahoo! custom home page does this for headlines, for instance.

3) I'll slowly be adding sorting to each of the pages. I'm doing the more stable pages first; why bother fooling around with the sorting whne the report is going to change (a lot!) anyway?

4) No. I don't even know what the "FAH generated benchmark" is.

5) Yeah, I'm not sure when I should link to the Stanford site sometimes. I might resolve this someday... but I still want to be able to link to the Stanford site someplace. Perhaps just on the user machine (eg, list of Joe's machines) page.
 
mikeblas said:
What might help here is if I could find code that would let me show a tooltip. The new MyYahoo! custom home page does this for headlines, for instance.
I have some JS that does this here. This can be customized, if you tell me how you want it to work. Right now what it does is take all <a> tags with a "title" attribute and display a popup <table> with four images in the corners (tl, tr, bl, br) and a background image, and the contents of the <a title> and the URL the link is pointing to. For an example of what this looks like, see this page. What the "tooltip" looks like is configurable, as is when it pops up. All you'd need to do is declare the tooltip text as an attribute of a given element (<div tooltip="mytooltiphere">, for example) and include the .js file at the top.

 
unhappy_mage said:
All you'd need to do is declare the tooltip text as an attribute of a given element (<div tooltip="mytooltiphere">, for example) and include the .js file at the top.


Thanks, that looks pretty cool.

Maybe you guys can help me think this thru. My plan was to add a legend at the bottom, and some descriptive text at the top. That is, at the top of the report pages, I'd have text saying what the report did and why it was interesting. The bottom would give legends for the columns—even ones that were not abbreviated, since nothing psises me off more than a graph with no/bad axis labels, or a table with unclear titles.

Do you think I should do both the tooltip and the labels at the bottom? I guess the labels bail out people who don't have Javascript turned on, or who have printed the report.

All three, then? The tool tip and the report description and the column legends?
 
"All three" sounds like a good idea.

If you'll tell me what format you want to use for the tooltips (use <div>s or <td>s or something else? what name for the attribute?) then I'll modify the js to match. The way it works right now only works for links, so it'll take a little messing with.

 
unhappy_mage said:
"All three" sounds like a good idea.

If you'll tell me what format you want to use for the tooltips (use <div>s or <td>s or something else? what name for the attribute?) then I'll modify the js to match. The way it works right now only works for links, so it'll take a little messing with.

Thanks!

<TD>s would be best, I guess. Can I insert formatting in the string? Line breaks?
 
Sure, any kind of html should be fine. All the script does is take the attribute and put some table HTML around it. So don't put </td>s in the attribute ;) I'll probably make it use a <div> though, just because I like <div>s

 
Javascript code and example HTML are up. You'll probably want a different <style> for the divs, but that's embedded in the HTML, it should be easy to change. Embedded <img> tags work, and I imagine anything else you want to throw in should.

 
mikeblas said:
4) No. I don't even know what the "FAH generated benchmark" is.

The easiest way to describe the benchmark is via a log snippet. Below is a snippet of my log. This is run with verbosity 9, which includes the maximum amount of information. Unfortuneatly the default verbosity doesn't print out the benchmark. I have done no research on the benchmark to see what it is measuring, but it does appear to scale based on performance using my machines as a guide.

Code:
Executable: C:\Program Files\FAH\FAH502-Console.exe
Executable: C:\Program Files\FAH\FAH502-Console.exe
Arguments: -local -service -advmethods -verbosity 9 -forceasm 
[21:30:19] - Ask before connecting: No
[21:30:19] - User name: Shermanator (Team 33)
[21:30:19] - User ID: 32A67ED73B35EC94
[21:30:19] - Machine ID: 1
[21:30:19] 
[21:30:19] Loaded queue successfully.
[21:30:19] + Benchmarking ...
[21:30:22] The benchmark result is 2880
[21:30:22] 
[21:30:22] - Autosending finished units...
[21:30:22] Trying to send all finished work units

This snippet is from my laptop. I have other systems in the 5000-6000 range. If you launch folding and then immediately switch to some game, the number is obviously very low. I believe this may be how stanford figures out the type of units your machine can handle. Maybe others can comment on it's validity. It just seems like another core related stat that might be interesting to track.

- Mike

Edited: Various typos, etc.
 
unhappy_mage said:
Javascript code and example HTML are up. You'll probably want a different <style> for the divs, but that's embedded in the HTML, it should be easy to change. Embedded <img> tags work, and I imagine anything else you want to throw in should.

Awesome, that's neat. But I really liked the gray, rounded reactangle much better. Can we go back to that? The red background and the dots is really -- well, pimpy.
 
mikeki said:
The easiest way to describe the benchmark is via a log snippet. Below is a snippet of my log. This is run with verbosity 9, which includes the maximum amount of information. Unfortuneatly the default verbosity doesn't print out the benchmark. I have done no research on the benchmark to see what it is measuring, but it does appear to scale based on performance using my machines as a guide.
Yurt doesn't start (or stop) the client, so it can't fiddle with the verbosity. (Which might be bad; I never tested ay anything other than the default verbosity setting.)

To change the setting, we'd have to stop the client, change the setting, run until we saw the result number, shut down the client, then reset the setting and restsart it. All without breaking anything the user wanted (like other command line options), and so on.

That's a bunch of work, and I'm not sure it's worth taking the number yet.
 
I'm not suggesting changing launch options. Just capturing what is there in the log file.

Many folks put "-verbosity 9" in their standard launch line. I know the services on all my computers use this. Would it make sense to capture the benchmark if it is there? Maybe, maybe not. Your call if you have time and it seems interesting. No matter what, it would be incomplete and possibly inaccurate for many folks.
 
mikeblas said:
Awesome, that's neat. But I really liked the gray, rounded reactangle much better. Can we go back to that? The red background and the dots is really -- well, pimpy.
Sure, I guess. You'll need to put five images on your site, but that shouldn't be a problem.

Also notice that the red and the dots are specified in the HTML; you can change them to something more reasonable fairly easily as compared to changing the layout of the grey blob. But whatever works for you. nicetitle3.js has the grey-blob behavior for TDs with a "tooltip" attribute. You'll also need to put [tl|tr|bl|br|gray].png in an images/ directory.

 
ICE_9 said:
Can the total GHz and memory and such be displayed too?
Why? It doesn't make much sense to sum those quantities.


unhappy_mage said:
Sure, I guess.
Thanks, Unhappy. That'll be a neat addition to the site. Unforuntately, I'm not sure when I'll be able to hook it up 'cause I'm racing this wekeend and then it's back to work ...
 
The teams page it issuing an error.

Microsoft VBScript runtime error '800a000d'

Type mismatch: 'FormatNumber'

/ShowRatesByTeam.asp, line 118

http://yurt.blaszczak.com/ShowMachinesByFrequencyrAnge.asp?RangeName=4.0 GHz and over&RangeIndex=13 is posting this error for the 4GHz+ range.

Microsoft VBScript runtime error '800a005e'

Invalid use of Null: 'CSTR'

/ShowMachinesByFrequencyrAnge.asp, line 125


Also, as a request, is it possible to have the header of the page http://yurt.blaszczak.com/ShowRatesByProteinVendor.asp follow you down as you scroll? I have seen this type of thing where just the column titles will stay in the viewable area as you scroll through a spreadsheet. Again, I don't know what is required, just an idea.
 
Thanks for letting me know about those problems. It's a race weekend, and I'm down here in Portland -- so I can't really spend a lot of time with it.

I fixed the team list problem, but I wasn't able to figure out the machines by frequency problem. I'll have a look on Monday.

I don't know how to have the headers follow the scrolling; if someone has a suggestion on how to implement that, I can give it a whack.
 
Back
Top