April 22
							
								- 	
									Well, today's the big day! My presentation is in exactly 4 hours, 38 minutes. The projector works
									great, and I tested the program and it works, so fingers crossed! I created some backup video
									just in case.
  
 As for it not working on a phone, I've discovered that it works when I use WiFi as opposed to the phone
									provider's internet. Whew!
 
 Goals for this week:
 - Finish my webite
 - Finish my binder WIP
 
					 
					
				 
				
			 
			
			
				
					
						
							April 19
							
								- 	
									Well, I think I've figured out all the solvable bugs in my code! I had Chris play it without 
									any help from me and he gave me some helpful suggestions that I implemented. Joe and I are 
									going to practice our presentations on Sunday and I'll have him play as well, just as an extra
									precaution. I've finished my presentation, too, so now I just need to practice with the projector.
									I've been working through stuff in the binder, too, so that's almost done!
 
 Something I have discovered, though, is that the program doesn't work on a phone. I think
									the two-way handshaking requires more processing capabilities than a phone browser has. I don't have
									the ability to fix it at this point - it would mean changing the entire way that the handshaking occurs -
									but it just stinks. I was really excited to see it used.
 
 Goals for this week:
 - Finish my webite
 - Finish my binder WIP
 - Finish my presentation Done!
 
					 
					
				 
				
			 
			
			
				
					
						
							April 17
							
								- 	
									Ugh, sometimes I think I belong back in CS 110. I spent the longest time trying to figure
									out why my user-side wasn't going back to the title page when it was supposed to (when they
									won or lost a game). My code looked something like this:
 
 if (input != "")
      do this
 
 else if (input == "|")
       do that
 
 I couldn't figure out why the input never go to "that". I finally realized that
									if input == "|", then it would also != "", and it would never get to "that".
									Silly me. The simple solution was to flip the two statements around, and it worked.
									I also solved another issue I'd been having - I created a 'timer' for the
									user so they only had 10 seconds to answer before the kiosk would check at 11 seconds.
									It turns out that I wasn't realizing that the user browser needed a few seconds
									after the initial 10 in order to write to the file, so when the kiosk checked at 11
									seconds, nothing was written to it yet. But I solved that in a relatively simple way -
									after 5 seconds, the kiosk starts checking the file ever second. Through a parameter 
									pass, it keeps track of how many times it's checked, and after 10 checks, if there is 
									still nothing in the file, it assumes the user hasn't answered. It's worked so far, so
									I'm keping my fingers crossed!
 
 Now that I think I've finished my project (omigod, I can't believe I'm actually
									saying that!) all I need to finish is the wrap-up stuff: presentation, website, binder!
 
 Goals for this week:
 - Set a timer for the user so that they have a limited time to answer Done!
 - Finish my webite
 - Finish my binder
 - Finish my presentation
 
					 
					
				 
				
			 
			
			
				
					
						
							April 12
							
								- 	
									Met with Pankratz and McVey today - they had some good ideas about how to solve the problem I've been
									having with the kiosk browser freezing (we think it's because it's trying to read from a file that is
									at the same time being written to). Their suggestion was to give the user a limited amount of time to 
									answer (with a visual: "10...9...8") and then after that time has elapsed, have the kiosk check the 
									file to get the answer. If nothing is there, the kiosk will read it as a null and move on. This also
									solves the problem of the user closing the browser and quitting the game: nothing will be written to
									the file, so the game will run by itself, getting null answers, until the game is over and it returns
									to the title screen.
 
 They also had a suggestion for another problem I've been having. On the first question, the kiosk-browser
									is supposed to write the answers to a file, and then the user-browser reads from it and displays the possible
									answers. The problem I've been having is that the user-side loads first, and finds data in the file from a previous
									question, regardless of how many times I try and write "" to it so that it is clear. Their suggestion was to have
									a 'lock' on the file: I've created another file, which contains a '0'. The kiosk-broswer writes the possible answers
									to the user_answer file, and then writes a '1' to the lock file. The user_side browser waits until it sees a '1', and
									then reads from the user_answer file. I have the user-side browser also reseting the lock file back to '0' for the
									next turn.
 
 I've already finished the lock file issue, so I'll be working on the timer over the weekend. The end's in sight!
 
 Goals for this week:
 - Set a timer for the user so that they have a limited time to answer
 
					 
					
				 
				
			 
			
			
				
					
						
							April 10
							
								- 	
									Getting closer and closer! The user-side browser now resets after the game is won or lost, and the 
									kiosk-side browser displays a message ("Congratulations, you've won the game!") or ("Game over") and 
									after a certain amount of seconds, resets to its title screen.
 
 I've been having some issues with the handshaking between the browsers, though. Sometimes the kiosk will
									sort of freeze and completely miss when the user presses a button. It's something I'll have to work on this
									week, although I'm not even sure what's causing it- Dr. Pankratz thinks it's because one side will try to read a file 
									when the other side is editing it, but I'd have no idea how to prevent it...
 
 Besides that, the only goal I have to finish is that I want the kiosk to recognize if the user closes the browser
									in the middle of the game and will reset back to the title screen. That's gonna take some work, though - 
									I thought that trying to catch an 'onclose()' event might solve it, but the only event I can find is an 'onunload()', 
									and that would fire every time a page is directed away (for example- the main page directs to another page that
									does the work and then redirects back to the main page too quickly for the user to notice, so the onunload event
									would fire even though the browser itself never closes). So, I've got to figure out another method. Not sure 
									how to proceed.
 
 Goals for this week:
 - Implement a way that gives an answer's explanation after the user guesses Done!
 - Close the game after the user loses three lives Done!
 - Go back to the title screen if the user closes the browser
 
 
					 
					
				 
				
			 
			
			
				
					
						
							April 7
							
								- 	
									Worked some more at it today! Stylized it so that the user side and the kiosk side actually
									look nice and match each other. Also made it so that the possible answers show up on the 
									user side (rather than just numbered buttons) - I found it to be a little difficult to 
									understand, especially when the answer were just numbers (for example: one group of answers
									are "5, 6, 7, 8" and when compared to the user side buttons, which were numbered "1, 2, 3, 4"
									it was hard to understand, even writing it myself. I'm struggling with how to do it, a little,
									though. Technically, the user-side loads first, even though the kiosk-side is the one that
									chooses the question, and, thus, the answer....It's a work in progress.
 
 I've noticed that, although the kiosk connection works, it is a little sporadic and sometimes
									after a few minutes, the browser gives up waiting for a change and just crashes. Although this 
									isn't my main concern right now, this means that something will have to change to potentially use
									it as a kiosk - there will be large amounts of time in between users, so this method as is won't work.
 
 Besides that, I'm very happy with how my project is coming along. I've been documenting as I go, so
									hopefully I won't have that much to do after I actually finish the code itself (which is good, because
									the presentations are in a few weeks!)
 
 Kiosk Side:
  
 User Side:
  
 
 Goals for this week:
 - Re-do the user-side browser: needs a 50/50 button Done!
 - Get a tenative connection going! DONE!!!
 - Take care of what the happens when the user gets an answer incorrect
 - Implement a way that gives an answer's explanation after the user guesses I have one, it just
									doesn't give the correct explanation...
 - Close the game after the user loses three lives
 - Go back to the title screen if the user closes the browser
 
					 
					
				 
				
			 
			
			
				
					
						
							April 5
							
								- 	
									IT WORKED IT WORKED IT WORKED. I was actually able to get a connection working! I'm using 
									AJAX to contiuously reread the user input text file every few seconds, and it was actually
									able to recognize when I clicked a button on the user browser! I'm so excited that I had
									to write a blog - I plan on working more (and making more progress!) today, but I just
									had to tell someone!! 
 
 Remember those magnectic "How Do You Feel Today?" things...?
   
 Updated Kiosk Website
 
 Goals for this week:
 - Re-do the user-side browser: needs a 50/50 button
 - Get a tenative connection going! DONE!!!
 - Take care of what the happens when the user gets an answer incorrect
 - Implement a way that gives an answer's explanation after the user guesses I have one, it just
									doesn't give the correct explanation...
 
					 
					
				 
				
			 
			
			
				
					
						
							March 24
							
								- 	
									Wowza, it's been awhile since I updated. I've been getting a lot accomplished since the walkthrough;
									it gave me confidence in my work - I'm doing something right! So working on it is less tentative
									because I know what I'm doing will work out. I've styled the kiosk-side browser a little more, and 
									a correct answer takes you to the next question (which is chosen randomly from three). I've also created
									a title page giving the user the address of the user-side browser. It also refreshes important information
									in the game_lifelines.txt file (which contains the number of lifelines and lives the user has left as well
									as keeping track of which question the user is on). The title page resets these to three lifelines and
									three lives, and sets the question number to 1. 
 Also, I've created a new text file containing an answer's explanation so that the user understands why
									one answer is incorrect and another isn't. I'd like to have this explanation displayed regardless of whether
									the answer was correct or not (chances are the user will be guessing a good amount of time), but that's a work
									in progress. I'm excited about where my project is - the end is in sight!
 
   
 Updated Kiosk Website
 
 Goals for this week:
 - Re-do the user-side browser: needs a 50/50 button
 - Get a tenative connection going!
 - Take care of what the happens when the user gets an answer incorrect
 - Implement a way that gives an answer's explanation after the user guesses
 
					 
					
				 
				
			 
			
			
				
					
						
							March 7
							
								- 	
									Today, Joe, Danielle, and I met in the JMS lab and worked on our projects. It was 
									nice being able to ask questions and bounce ideas off each other, even though we 
									aren't working on the same thing. I continued working on the kiosk-side browser. It
									now keeps track of how many lifelines the user has, and if one is clicked, it does not
									allow the user to use another one. (He won't be able to until the next question - as of
									right now, I only have the one question showing.) My next goal is that when a lifeline is
									clicked, two of the incorrect answers disappear. I'm not quite sure how I'm going to do
									this yet. I'll probably end up putting an extra character into the text file next to the 
									two answers I want to disappear, but it also means that I'll have to do more work being
									able to print the answers to the screen in the first place.
									
									I hope to get a lot of work done over Spring Break, but I'm still struggling with the idea
									of a socket connection. Hopefully the walkthrough will provide some good ideas.
									
 WIP Kiosk Website
 
 
 Goals for this week:
 - Research connections (WIP)
 - Start creating the kiosk-side webpage (WIP)
 
					 
					
				 
				
			 
			
			
				
					
						
							March 4
							
								- 	
									Yesterday I lookied into sockets. I created a small test socket - I was able to 
									connect to compsci02.snc.edu and recieve header information. Now it's just a 
									matter of figuring what information I'd like to pass to the server! 
									
									Today I started work on the kiosk browser. I'm able to read from the text files
									that contain the questions and answers. I have another file that holds the number
									of lifelines the user has left. I definitely still have work to do with it, but
									I think I'm headed in the right direction!
									
 WIP Kiosk Website
 Game Question Text Files
 
 Goals for this week:
 - Research connections (WIP)
 - Start creating the kiosk-side webpage (WIP)
 
					 
					
				 
				
			 
			
			
				
					
						
							February 22
							
								- 	
									 It's been awhile since my last blog entry, but there's been some pretty drastic
									 changes - I'm no longer using an Android app. Pankratz, McVey, and I have made
									 the decision to use browsers instead. This was unfortunate timing, though, because
									 at our group demonstration last Tuesday, my program was crashing. (I was lucky that
									 the most recent working app was still on the Xoom so I had something to show.) So,
									 I spent a week searching the Internet on how to fix this problem - I know what caused
									 it, and I knew I'd be able to create a new project and just copy all the files over,
									 but I didn't want the error to happen again and have a lot more work under my belt
									 that I would essentially need to start over again to fix. I spent a long time looking
									 for it all, and finally was able to fix it. I did a little more work - starting the
									 game in Android, when I found out that essentially all my work is no longer usable.
									 It was nice learning a little about Android, though. 
 
 Now, though, I've stared with the broswers. Our original idea was to use arrows, but
									 after thinking about it for a little, I've decided to use numbers instead - arrows 
									 might be an issue with creating a tab index on the kiosk. Instead, I think it might 
									 just be easier to number everything and then the user presses the corresponding button.
									 Right now, pressing the buttons writes the pressed number (or in the Enter button case,
									 a new line) into "test.txt" in my public
									 folder.
 The User Website
 The Text File
  
 
 Goals for this week:
 - Research connections
 - Start creating the kiosk-side webpage
 
					 
					
				 
				
			 
			
			
				
					
						
							February 10
							
								- 	
									 I got a little farther today - it was pretty easy to add links to a website,
									 but I only have one to the CS homepage - I'm not sure what else would be good
									 to add. I messed around a little with the layout, too, and was easily able to
									 download a different font in order to make it look more formal. Unfortunately,
									 though, when I started looking at Brian's code and documentation the past few
									 days, there are only snippets of XML that don't really mean anything
									 until they are put in context with the Flash program he used...which doesn't
									 seem to be on the website. I'll have to ask Pankratz about it tomorrow.
									
 Goals for this week:
 - Figure out how to integrate Brian's code
 - Try and find more ways to style the layout (WIP)
 - Create a way to link to necessary websites (ex: CS homepage) (Done)
 - Finish timeline (Done)
 
					 
					
				 
				
			 
			
			
				
					
						
							February 7
							
								- 	
									 So, it turns out that the orientation thing I learned to do on Tuesday
									 has come back to bite me in the butt. I created some stylized butttons
									 that I'm planning on keeping for the final layout, and I wanted them
									 to actually be able to do something once they were pressed. In my
									 previous Hello, World program, I was able to send input from a textbox
									 to a second activity, so having a static message show seemed like it
									 would be even simpler. For almost two hours, I struggled with why 
									 my message, or even my empty second activity, wasn't appearing when
									 I pressed the button. After sifting through many, many online forums,
									 I just happened to shift the tablet so that it changed orientation,
									 and magically the button press worked. It turns out that I only set
									 an onClick event in the portrait orientation, and because I created
									 a different layout for the horizon orientation on Tuesday, there is a
									 completely separate file that needed to be edited - it just so happened 
									 I had propped the tablet up the wrong way. So, I'm feeling a little 
									 defeated... at least the buttons look nice. These are two of 5+ that I 
									 have planned. 
									
 
             
 Goals for this week:
 - Figure out how to integrate Brian's code
 - Try and find more ways to style the layout (WIP)
 - Create a way to link to necessary websites (ex: CS homepage)
 - Finish timeline
 
					 
					
				 
				
			 
			
			
				
					
						
							February 5
							
								- 	
									Got a little farther today - the LinearLayout vs the RelativeLayout 
									was giving me a lot of trouble, but I found that the solution was 
									embarrassingly simple. I got some more work done on a User Interface 
									for the Android part of the Kiosk. I don't think I'm going to stick 
									with the background, but "making things look pretty" at the beginning 
									makes it more likely that I'll come back to it more often - let's be 
									honest, no one wants to spend hours looking at something ugly.
									
 
 So, today, I made some discoveries in how the eclipse program uses 
									resource folders, and I also found out how to change the layout 
									when the user changes the orientation by turning the tablet/phone 
									sideways.
             
 I'm going to start working through Brian's code this week - honestly, 
									I haven't gotten very far into my project and I'd like to have 
									something besides what is basically a fancy Hello, World. I want to be
									working on the slideshow this week, and from the cursory glance I gave 
									his code when I downloaded it, he seems to have figured out how to do
									that.
 
 Goals from last week:
 - Find a more reliable phone/tablet that I can work on - Chris' phone isn't
									going to work for the whole semester. (Done!)
 - Create scope and finalize what I can on the website. (Done!)
 - Try and get a simple UI working so that I can figure out how I'd eventually
									like it to look and understand more about Android (Done!)
 
 Goals for this week:
 - Figure out how to integrate Brian's code
 - Try and find more ways to style the layout
 - Create a way to link to necessary websites (ex: CS homepage)
 - Finish timeline
 
					 
					
				 
				
			 
			
			
				
					
						
							January 31
								
									- 
										Success! Thanks to Joe, I was able to figure out the problem I was having 
										- I was forgetting to look into the Setttings on the Xoom and checking
										"Allow USB Debugging". Silly me...what a headache. Now that I was able to 
										get that done, though, I was able to finish a Hello, World! I found on the
					
										
										Android Developer website: 
										
 Lookit! So pretty! I feel so successful! Sorta. I'm gonna try and keep working
										on a simple User Interface this weekend so I can actually get something for
										my project down.
 
  Goals for the week: Goals for the week:
 - Find a more reliable phone/tablet that I can work on - Chris' phone isn't
										going to work for the whole semester. (Done!)
 - Create scope and finalize what I can on the website. (Done!)
 - Try and get a simple UI working so that I can figure out how I'd eventually
										like it to look and understand more about Android (WIP - I got stuck with
										the Xoom, but after figuring it out, I was able to get a Hello, World going!
 
					 
					
				 
				
			 
			
			
				
					
						
							January 28
								
									- 
										Didn't get any farther working with Android, but I got a lot done today anyway.
										I uploaded my website and spent 10 minutes trying to figure out why it looked 
										so terrible before realizing I was running it off the C:// drive
										instead of compsci02... Continued work on my scope, and saw Pankratz today -
										he gave me a Motorola Xoom tablet to start working with. I spent the rest of 
										the day struggling to download Eclipse onto my computer (I worked on Chris'
										yesterday) and then downloading the Xoom driver, so I could start working with
										it. It didn't work, and I'm pulling  my hair out. 
										
										Goals for the week: 
 - Find a more reliable phone/tablet that I can work on - Chris' phone isn't
										going to work for the whole semester. (WIP - Hopefully I can get the Xoom
										to work.)
 - Create scope and finalize what I can on the website. (WIP - pretty much
										done with the website, but I still need to work on the scope.)
 - Try and get a simple UI working so that I can figure out how I'd eventually
										like it to look and understand more about Android
 
					 
					
				 
				
			 
			
			
				
					
						
							January 27
								
									- 
										Started a little a testing with Eclipse and Chris' Galaxy Nexxus. 
										I was following a tutorial on the Android website, as I've never before 
										worked with android. I didn't get very far - it took awhile to figure 
										out what everything was referring to, but I was eventually able to make
										a simple Hello, World with a text box and button. (As I write this, it 
										doesn't seem like that much...) I'm in the process of trying to raise an
										event when the button is pressed. I do like how similar it is to C# and 
										I think things will start going smoother as I start writing more in Java. 
										(XML is new to me, too.)
										
										Goals for the week: 
 - Find a more reliable phone/tablet that I can work on - Chris' phone isn't
										going to work for the whole semester
 - Create scope and finalize what I can on the website
 - Try and get a simple UI working so that I can figure out how I'd eventually
										like it to look and understand more about Android