Tuesday, May 31, 2016

5/31

Today was another day spent mostly in the airport and in transit, so unfortunately I didn't get a lot of work done. The code I uploaded to GitHub didn't have a hard coded recipe and instead I tried using a .txt file upload with maven, although that didn't work. Instead of this, I went through and hard coded each step and ingredient and got it running through my Alexa. The only intent that is working is the one that reads each step, but I know that after fiddling with the slots (which hold the ingredients) I'll be able to get the ingredient intents working as well. I've tested these locally and know the logic works, so tomorrow I'll be working with the slots and will hopefully be a few steps closer to a fully working skill!

Monday, May 30, 2016

5/30

First working commit is up! https://github.com/hpedskis/google-summer-of-code

It's pretty rough and most of the methods don't work, but it's the first code that I was able to actually upload to Lambda without receiving an error message. After spending about 8 hours working through the different lambda error messages, I learned that the AWS Java tutorial I was using were actually not using Lambda at all, but setting up a complicated server that I hadn't been implementing. I talked to a co-worker of my brother's who had come across this problem as well. He had created a fix to this problem, though it was outdated. However, this gave me the idea to find things similar. I used this tutorial and after hacking the two together, it finally is runnable and testable!

Tomorrow I will be writing more code and will test what I do have through my Alexa, but I see this as a very important milestone!

Thursday, May 26, 2016

Out of Service 5/27-5/29

I mentioned it earlier, but I wanted to specify again that I'll be camping and will be out of service this weekend and will be unable to blog.

5/26

Got a really good amount done today. I restructured my class structure and things are now well organized and running smoothly. I also finished all the methods for my Alexa Intents and have tested most of them locally. Not everything is operating like I want it to eventually, but I realized that I want to be able to get my skill working through the Alexa before working on any small details. I'm not with my Alexa and won't be able to test it until Tuesday, but I'm pretty sure it should be working on one of the first few tries!

Wednesday, May 25, 2016

5/25

Today, I didn't get a lot of work done because I was preparing to go out of town and had an afternoon flight. Also, the next few days I'll be on vacation and although I have the intent to work on my project, I won't be putting as much time in as usual. I'll be working and blogging tomorrow, but Friday-Monday I will be out of internet range. I'll try to do as much on paper as I can during those days!

Even though I wasn't writing code for my project, I feel like I'm getting more and more of a clear focus on what I need to do to make further progress. I'm not sure I'll get the skill working for one recipe by the end of May, but it's because I'm trying to make things easier for myself down the line (instead of just writing in each ingredient and step, I'm writing the code which will find the recipe, split it up, create ingredient and step objects, etc). Although this is slowing things down right now, I think it'll pay off later in the summer.

Tuesday, May 24, 2016

5/24

More slow but steady progress today on writing my own skill. I created my IntentSchema (all the different things a user could ask for) and started mapping them to methods which would give the proper outputs. I have run into a few problems such as only some of my classes being able to access the Amazon speech output and the simple logistics of how a user would ask something, but I'm sure these will be resolved in the next few days.

Monday, May 23, 2016

5/23

This weekend I fought with the Lambda upload and after trying almost every variation of packaging, I found out the problem was a combination of out dated Java and really slow internet connection. Now that I know I'll be able to package, upload, and test my code, I sat down and started to write out my actual skill. I'll be using a lot of the Java Samples provided by Amazon and am currently working on the layout of my skill. I've written down most of the intents and responses and started overriding the OnLaunch and OnIntent methods that are required by the Alexa Skill Set (pretty much defining what will launch the skill and what will happen depending on what the user says).

Thursday, May 19, 2016

5/18-5/19

The past two days I was working more with connecting my AWS and my Eclipse. It's been taking more time than I initially hoped, but the tutorials haven't been super clear and it's taken me a few attempts with each to get everything connected. Today, I was convinced that I had gotten everything finally working but then got stuck again while creating a "hello world" Alexa skill. Hoping that tonight I can get everything completely synced so that I can finally work on getting my hard coded recipe running through Alexa.

Tuesday, May 17, 2016

5/17/16

Today, I wasn't as productive as I was hoping. I got bogged down with updates and plug in downloads, as well as configuring everything so my Eclipse is in line with AWS. I'm now at the point where (hopefully) everything will run from one to the other seamlessly. I'm not sure how much work I'll be able to get done tomorrow but my next step is using the sample code given and making sure that running it from Eclipse will still produce the correct results from Alexa.

Monday, May 16, 2016

5/16/16

Today's Progress:
-I found one recipe from Epicurious (the recipe database I'll be using) and copied the recipe- as it was formatted on the websit- into a .txt file
-I configured my code to properly split the recipe into both an array list of ingredients and an array list of steps
-I thought about the data structure. I'm thinking of creating a "recipe" object with an array list of ingredients, an array list of directions, and a name. Then, using a hash map to hold all of my recipe objects. This way, it can easily be searched for.
-I watched a walkthrough for creating a new skill
-I walked through a tutorial on fully bringing together Lambda and the AWS Developer portal

I was hoping to get my recipe working in Lambda, but am finding that this is a lot larger of a step than I initially thought. I have to write all of the possible 'utterances' and need to create a list of 'intents' (requests that can be handled) and the 'slots' (or recipe key words) that can trigger this.

Tomorrow I'm hoping to start progress on creating these utterances, intents, and slots as well as play around with my own Alexa, which is still sitting in a box!

Sunday, May 15, 2016

5/15/16

Today, I'm getting my footing and beginning to break down my project into smaller steps. I've hard coded one recipe and was playing around with splitting the strings into different lists, making sure each was correctly trimmed and separated.

I also did the AWS Lambda tutorial (for Python) and started reading the page about creating a Lambda function using Java, which I'll be coding in.(https://docs.aws.amazon.com/lambda/latest/dg/get-started-step4-optional.html)

Tomorrow I'm going to decide which data structure I'll be using and how to organize it into different objects. I'm also going to continue with the Java Lambda tutorials and hope to get my hard coded recipe uploaded into AWS to play with the different inputs, outputs, and events.

Saturday, May 14, 2016

Finally Getting Started!

I completed my last final Thursday and have arrived back home. I'm starting all the preliminary items now such as setting up an AWS account, a GitHub account, and taking notes on the Alexa skills API page.

Goals for the weekend:
-set up all accounts
-create a more detailed plan (such as weekly goals and milestones) for the next weeks
-create a list of questions to email to my mentor

Initial Questions:
Is there any specific repository I should be using on GitHub? I haven't found any mention of this on GSoC's website/FAQ.

Wednesday, May 4, 2016

5/4/16 Update

As I mentioned in my previous post, I've been busy with finals. I just want to make it clear that I won't be starting my project until 5/14 when I'm back home and my semester has ended. Therefor, I won't be blogging unless anything new comes up! (unfortunate but necessary :( )

Yesterday, I had my first phone call with my mentor. It was an exciting first step and we briefly discussed the goals for the summer. Can't wait to get started after finals!

Monday, May 2, 2016

Initial Thoughts

Although I've been busy studying for finals and have had little time to really begin my summer project, I have been thinking about a few initial to-dos.

Luckily, Amazon has made it very easy to create new open source skills! One article I began to read was this one, which is a general overview on starting to create a new skill for the Amazon Echo.

I've also been doing more research into the recipe database I'll be integrating for my skill. Luckily, there seems to be a lot of options (see the first response on this forum). I'll need to take a look closely at each one but http://www.therecipedepository.com/ and http://www.epicurious.com/ both seem straight forward and simple enough to scrape and parse through initially.

That's all I've looked into for now but I'm excited to continue working on this project in the next few weeks.