Closed Kyle-Falconer closed 10 years ago
Given the input file he provided in the email, I've noticed that there are several columns which are not in the template. Even after removing these columns, I get:
Court Scheduler
============================================================
ERROR: Time 22:00 is after the end time.
ERROR: Time 23:59 is after the end time.
ERROR: Time 22:00 is after the end time.
ERROR: Time 23:59 is after the end time.
ERROR: Time 22:00 is after the end time.
ERROR: Time 23:59 is after the end time.
ERROR: Time 22:00 is after the end time.
ERROR: Time 23:59 is after the end time.
ERROR: Time 22:00 is after the end time.
ERROR: Time 23:59 is after the end time.
ERROR: Time 22:00 is after the end time.
ERROR: Time 23:59 is after the end time.
ERROR: Time 22:00 is after the end time.
ERROR: Time 23:59 is after the end time.
12:42:09.501 [main] INFO o.d.c.k.b.impl.KieRepositoryImpl - KieModule was added:MemoryKieModule[ ReleaseId=org.default:artifact:1.0.0-SNAPSHOT]
12:42:09.640 [main] DEBUG o.drools.core.reteoo.ReteooRuleBase - Starting Engine in PHREAK mode
Input file location is at: C:/Users/Kyle/Downloads/2013 Fall Session for Program.xlsx
Output folder location is at: C:\Users\Kyle\Downloads\
Main output file location is at: C:\Users\Kyle\Downloads\output.xlsx
Fri Dec 06 12:42:12 CST 2013[INFO] Worksheet Name: 2013 Fall
Fri Dec 06 12:42:12 CST 2013[INFO] Worksheet has 463 lines of data.
Unknown constraint:after 5:30
Unknown constraint:10/26/13
Unknown constraint:11/16/13
java.lang.IllegalArgumentException: Invalid format: "12/8/13 saturday" is malformed at " saturday"
at org.joda.time.format.DateTimeFormatter.parseLocalDateTime(DateTimeFormatter.java:828)
at org.joda.time.format.DateTimeFormatter.parseLocalDate(DateTimeFormatter.java:772)
at org.joda.time.LocalDate.parse(LocalDate.java:179)
at courtscheduler.domain.DateConstraint.findDateRange(DateConstraint.java:217)
at courtscheduler.persistence.CourtScheduleIO.requestDate(CourtScheduleIO.java:484)
at courtscheduler.persistence.CourtScheduleIO.parseDateConstraints(CourtScheduleIO.java:445)
at courtscheduler.persistence.CourtScheduleIO.processRequestConstraints(CourtScheduleIO.java:375)
at courtscheduler.persistence.CourtScheduleIO.processRow(CourtScheduleIO.java:320)
at courtscheduler.persistence.CourtScheduleIO.readXlsx(CourtScheduleIO.java:74)
at courtscheduler.Main.main(Main.java:106)
...The config file isn't generating correctly. The one he attached is entirely blank. Should we have him send us a spec for what he wants, and then write a config file for him as kind of a stopgap measure while we figure out what's going on with the GUI?
I also noticed he's trying to work on a network share. I don't know why that'd break the paths... I say for now, let's get him that temp config.ini. Can you do that? We should have had more useful error messages for things like this.
Remember that when he uses a different config, he needs to close the configuration utility when it opens so that it doesn't overwrite it.
I looked at the input he was trying to put through and there were several problems with it. This isn't what is causing it not to work for him, but it looks like the scheduler didn't get far enough for this to be an issue yet (but it would have at some point). It wasn't in the correct format and he made some mistakes writing his constraints. There was also another weird error when I was fixing his input so it could run. In the xlsx document I made, when the parser went through the team codes, it was finding a team code that was not there. The program threw a string index out of range error when searching for "." in the team code. This was happening after it had already parsed through all visible team codes so I don't know where it was finding the extra code. I'll push up the document that was having this error (2013 Fall Season.xlsx) and the file that does not have this error any more (Book3.xlsx). There's no visible changes in the two documents (I just copied all the info from the problem document and pasted it into a new document). I'll also push the config.ini file I'm using so you guys can see what I've been working with.
Yeah, the problem is that grade is an int, and he has grades like JH in it. I converted grade to a string-- I'll push that momentarily.
On Fri, Dec 6, 2013 at 2:45 PM, Charles Eswine notifications@github.comwrote:
I looked at the input he was trying to put through and there were several problems with it. This isn't what is causing it not to work for him, but it looks like the scheduler didn't get far enough for this to be an issue yet (but it would have at some point). It wasn't in the correct format and he made some mistakes writing his constraints. There was also another weird error when I was fixing his input so it could run. In the xlsx document I made, when the parser went through the team codes, it was finding a team code that was not there. The program threw a string index out of range error when searching for "." in the team code. This was happening after it had already parsed through all visible team codes so I don't know where it was finding the extra code. I'll push up the document that was having this error (2013 Fall Season.xlsx) and the file that does not have this error any more (Book3.xlsx). There's no visible changes in the two documents (I just copied all the info from the problem document and pasted it into a new document). I'll also push the config.ini file I'm using so you guys can see what I've been working with.
— Reply to this email directly or view it on GitHubhttps://github.com/netinept/Court-Scheduler/issues/25#issuecomment-30027861 .
Pushed. I'm working on 2013fall.xlsx, trying to fix all the issues in it... There are a lot, not in the least that he didn't have the constraints column in the right place.
On Fri, Dec 6, 2013 at 2:53 PM, Matthew Swinney sonicsatellite@gmail.comwrote:
Yeah, the problem is that grade is an int, and he has grades like JH in it. I converted grade to a string-- I'll push that momentarily.
On Fri, Dec 6, 2013 at 2:45 PM, Charles Eswine notifications@github.comwrote:
I looked at the input he was trying to put through and there were several problems with it. This isn't what is causing it not to work for him, but it looks like the scheduler didn't get far enough for this to be an issue yet (but it would have at some point). It wasn't in the correct format and he made some mistakes writing his constraints. There was also another weird error when I was fixing his input so it could run. In the xlsx document I made, when the parser went through the team codes, it was finding a team code that was not there. The program threw a string index out of range error when searching for "." in the team code. This was happening after it had already parsed through all visible team codes so I don't know where it was finding the extra code. I'll push up the document that was having this error (2013 Fall Season.xlsx) and the file that does not have this error any more (Book3.xlsx). There's no visible changes in the two documents (I just copied all the info from the problem document and pasted it into a new document). I'll also push the config.ini file I'm using so you guys can see what I've been working with.
— Reply to this email directly or view it on GitHubhttps://github.com/netinept/Court-Scheduler/issues/25#issuecomment-30027861 .
The grades have to be a number between 1-10 (doesn't really matter if its an int or string) so that's why stuff like JH or JV won't work. When getting primary and secondary dates it looks at the grade of a team and matches that up with a grade from the config file and all grades in the config file are from 1-10.
If this helps you to run the program while testing, I updated the wiki for how to use the (un-exe-ified) python file as the configuration utility.
https://github.com/netinept/Court-Scheduler/wiki/Using-IntelliJ
I also made the program write out any information received by the configuration utility to a log file configuration_log.txt
so that the next time he tries to run it, we might be able to see more about what is going on. I'll package this all up into a zip, test, then upload for you guys to test.
What do you guys think about having him run something like this in a .bat or .cmd script and then give us the output of both log.txt and configure_log.txt ?
@echo off
echo Court Scheduler is running, please do not close this window
"Court Scheduler.exe" > "log.txt"
notepad log.txt
That sounds perfect-- test it and shoot it to him. Also, 23 minutes for the test run, final score 0 hard / -985460 soft. It's scheduled pretty much solid-- I wonder if that's because the schedule looks like it's supposed to start Oct 1, but he's starting it late in October?
On Fri, Dec 6, 2013 at 4:02 PM, Kyle Falconer notifications@github.comwrote:
What do you guys think about having him run something like this in a .bat or .cmd script and then give us the output of both log.txt and configure_log.txt ?
@echo off echo Court Scheduler is running, please do not close this window "Court Scheduler.exe" > "log.txt" notepad log.txt
— Reply to this email directly or view it on GitHubhttps://github.com/netinept/Court-Scheduler/issues/25#issuecomment-30033449 .
Before I do, can you sanity run it? The latest version, with the .cmd file is up.
You need one line telling him to enter the path of the file-- it won't autorun without input, just idle there waiting.
It's dangerous to go alone: take these.
On Fri, Dec 6, 2013 at 4:19 PM, Kyle Falconer notifications@github.comwrote:
Before I do, can you sanity run it? The latest version, with the .cmd file is up.
— Reply to this email directly or view it on GitHubhttps://github.com/netinept/Court-Scheduler/issues/25#issuecomment-30034633 .
isn't the input file name given by the config.ini?
Aha, so it is. In that case, just put this config and the 2013fall.xlsx book in the same folder as the EXE, quit the config when it pops up and bam, it'll run.
However, it's really tight on time, I think. I'm gonna run it with a little more space and see if it can optimize itself a little better.
On Fri, Dec 6, 2013 at 4:33 PM, Kyle Falconer notifications@github.comwrote:
isn't the input file name given by the config.ini?
— Reply to this email directly or view it on GitHubhttps://github.com/netinept/Court-Scheduler/issues/25#issuecomment-30035492 .
Shane just sent me this:
I had been clicking on the scheduler.exe to run it. I tried the run.cmd and here’s what I got. It didn’t really do anything either… http://gyazo.com/4c9f2803f4c9d3a9d2ef6684ef8d773a
Uh, guys? Any idea what could be causing it to just... not run?
It's the .cmd file; I thought that relative paths would work, but apparently that's also out of the question. He's going to have to run this on his local machine (I sent an email about it).
He probably thinks he has on his local computer but his my documents folder is on a share, probably a network drive. He should try moving the whole thing to a different directory like maybe right under C:
Sent from my iPhone
On Dec 9, 2013, at 3:28 PM, "Kyle Falconer" notifications@github.com wrote:
It's the .cmd file; I thought that relative paths would work, but apparently that's also out of the question. He's going to have to run this on his local machine (I sent an email about it).
— Reply to this email directly or view it on GitHub.
The other option would be for him to leave it where it is but to map the drive to it, then it would appear as if it was a local drive on his machine
Sent from my iPhone
On Dec 9, 2013, at 3:28 PM, "Kyle Falconer" notifications@github.com wrote:
It's the .cmd file; I thought that relative paths would work, but apparently that's also out of the question. He's going to have to run this on his local machine (I sent an email about it).
— Reply to this email directly or view it on GitHub.
Drive mapping is very possible but the problem with that is that we don't know the exact path, and if he tries to change the location of all this, then it will break again. The best solution is to have him run it on his local machine. I don't think he's ignorant of this being on a network drive.
Moving the folder to C:\ would work, but I don't like having things live on the drive root for a few reasons. It would be best if he put it in Program Files or in his My Documents folder (which I don't think is on the network share).
If you look at the command window in the screen shot he sent, it looks like his my documents is shared and part of a UNC path
Sent from my iPhone
On Dec 9, 2013, at 3:38 PM, "Kyle Falconer" notifications@github.com wrote:
Drive mapping is very possible but the problem with that is that we don't know the exact path, and if he tries to change the location of all this, then it will break again. The best solution is to have him run it on his local machine. I don't think he's ignorant of this being on a network drive.
Moving the folder to C:\ would work, but I don't like having things live on the drive root for a few reasons. It would be best if he put it in Program Files or in his My Documents folder (which I don't think is on the network share).
— Reply to this email directly or view it on GitHub.
No, the path he's using is \\Main\my documents shared\The Courts\Scheduler\Court Scheduler
. In Windows XP, the My Documents is located in \Documents and Settings\$USER$\My Documents
, (see this page).
Of course this is all just speculation. None of the screenshots I've seen have indicated that his primary My Documents folder is a network share. I'm considering offering to go over there and take a look at the machine myself to figure out what is going on and why we can get it to work on our computers, but not his.
I just got back from visiting Shane in his office and discovered that his main My Documents folder was not on the network share. The issue ended up being spaces in the file name. As a temporary fix, I moved the program folder to C:\ and ran it against an Excel file which didn't have any spaces in the name. After I did this, it was running properly. I plan on working on the project further to make sure that spaces are allowed in filenames.
Here we can put all the information we know about the problem and try to find the solution.
First issue:
The config.ini that he sent us has a size of 0 bytes (!!). The configuration must be breaking somewhere.
Second issue:
When running his input file (and not his configuration), the output is: