Validate input for customer name
Summer session is slowly coming to an end. The projects are proceeding along -The students are working on their projects. All but one group had their presentations. They are also anxious to bring their projects to completion. I suspect that we will get at least (our usual) 30% success rate .I hope the students learnt about working on open source projects this summer. Loking forward to thir "completed" projects soon.
temp.h is the code from servo.h, which does not work with my board. I plan on porting it so the code does work with my board. I need a copy of the file as reference.
As the summer winds down we have begun to think about what we need to do to get where we want to be. Making the site hosted on the server has proven to be more problematic that we first thought so that is priority number one. Mongoose and Visual Studio don't seem to be playing well with each other for the search feature but we hope to push through our issues as this is the main feature we need to get working. The final goal is a sorted "Leader Board" for trade-able items based on our ranking system. It's going to be tough to get everything done in time for the summer but we think we can do it.
The game is ripening nicely!
Up to now, I had been working on a way to display from 13 to 52 cards simultaneously. This now works, both in the card-creation screen (so that you know which cards already have a mnemonic device) and in the game part of the app. While this is a huge step forward, a greater challenge awaits: allowing two cards to be selected when choosing correct cards. Since the point of the app is to train a user to use mnemonic devices efficiently, this is what makes Memory Mason, well, Memory Mason. I expect this will be tricky to implement, but once a 2-card-difficulty has been implemented, it should be easy to modify into a 3-card-difficulty. With that, the most difficult parts of the app will come to an end. From there, I need to add attempts, a timer, and revise the color scheme/design of the app considerably.
I am also getting an error about the board not liking the library I am using so I will need to look into that.
Defined some variable names, read analog signal, and used a map function to convert. However the map is for hypothetical values, this will be updated soon.
I did more soldering last night. I fixed the soldering I did on Friday. My current task is to solder solid wire to spindle wire. The reason I am doing this is that the manufactures attached spindle wire to their parts and I need solid wire because it is very difficult to put spindle wire into a breadboard. Also their parts are not color coded when they talk about how they are color coded which makes it very difficult to solder things correctly. It makes me paranoid about soldering the wrong wires together. I have soldered three items last night and I need to solder five more.
Since only restaurants need accounts and not customers, I removed the "register" option from the navigation bar, since this option shouldn't be easily available for everyone. Should a restaurant want to register, they would have to contact us for a unique access code. This is to confirm that the restaurant exists.
When the restaurant logs in for the first time, I created a few pages to help the restaurant setup its account. First, the user enters basic restaurant information (name, address, phone number, etc.) and then show them how to modify the table layout to match the restaurant's.
Once setup, the restaurant will be redirected to a main panel. I've added a restriction where each account can only manage a single restaurant. The panel was created so that the restaurant owner wouldn't have to go to the main restaurants page and search through a long list of restaurants. Also, I removed the customer interaface from the restaurant interface, since the restaurant should only be focused on managing tables and customers.
I found the Servo library and will use this the future code.
-Try to help restaurants get started with our site -Remove customer interface -Modifying important data is all done in a separate navbar
On Friday I made a lot of progress on the build. I have attached all the esc to their mostly correct position and have soldered most of esc's to their motors. I made a mistake while soldering and soldered two wires the wrong way. I don't believe this is my fault because the company did not stick with industrial standard of coloring for electronics. One company colored all their cables black and in their manual only talked about the wires by color (such as red, blue, and black) and not by position. The second company has their colors in the following order: red, black, yellow. This makes me believe that yellow is the signal. If you thought that, you are wrong. Yellow is ground for that brand of motor. So I need to fix that.
Here is a link to the album: http://imgur.com/a/gIjNJ#0
The usage of a wooden clothespin (you can see it in the album) was needed to hold two wires together so they were close enough to solder together. The last picture of it in the car is the most accurate picture of it with the esc on the top side of the arms. They are like this now so the wires are tighter and will not cause problems later on.
During a break during the hackathon two days ago I went to the tech dumps and found a computer power supply. With a little help form my friends, we were able to power it up by 'hotwiring' it; the power supply has two pins on the plug head to the motherboard that need to be connected for it to start up correctly. This is used when you are pressing the power button of the computer. So I cut the wires and soldered them together because I planned on using the power supply as equipment for test voltages for my drone hardware.
I used the power supply to test my TxRx output voltage to make sure it would not fry my arduino. The arduino zero can only handle up to 3.3V . The receiver takes a voltage between 4v and 6.5v so I used the power supply to give it 5v. The 6 channels would output between .2V and .4V. That is a little disappointing because I hoped for a larger range of values to mess with for the drone but I think I can deal.
I am trying to figure out the placement of my arduino on the body of the drone. There does not seem to be enough room for it on the middle section of the drone and I don't want to place it on the top because it might get hit. So the bottom seems like a good place. The problem is that I do not have a way to attach it to it there. I might have to use some CAD software and ask one of my friends with a 3D printer to print it out for me. I'd then have the breadboard in the middle of it and then the Tx on the top of the drone.
Goals this week are more wiring, fixing the drone soldering, and modeling. I should get some more goodies this Monday and Tuesday.
Questions and comments? Email me at gardnm (at) rpi (dot) edu
Summer Hackathon July 17, 2015 (with Princess)
I got here a bit late but at least I have all my stuff now. I am trying to get my environment set up but the Arduino IDE seems to be fighting back a bit. I looked it up on the forums and there seems to be a bad mix of using Arduino Zero Pro with the OSX version of the 1.6.5 version of the IDE. After searching the forum for awhile, I found a solution: the default bootloader for the board, ArdiunoISP or something like that, does not work with this board. The correct bootloader is Atmel EDBG and I have to 'burn the bootloader' which I guess means to delete the old one and refresh it with the new version. I am currently writing this blog post while it finishes because it takes a bit.
Fixed the background image as well as the opaque layer by making both full screen.
adding reset for filters, incomplete most of spell lists is set up visually on the front end
This makes management much easier and makes the system safer.
Include information on what this site does and how it works
Don't display the register option since most people don't need to
This past week I've gotten the account settings page working. There aren't many settings yet because there aren't that many features yet, but the settings page is ready for more.
In the coming week I need to get username retrieval and a password reset hooked up for when users forget how to log in. I also need to get email verification working so I can move on to the cool features!
For the username retrieval and password reset, as well as email verification, I will be using the mailgun API. I have used it previously to set up a mailing list with a signup on the site (which we are no longer using because reddit seemed like a better option), so hopefully getting the emails sent won't be the hard part for this week.
Our team has, again, gone in circles trying to work with Android Studio. We have done almost as much work as we can without Android Studio, but now we are still trying to make a functional app. I have found that it should not be too hard to create animations on Android Studio, but I, as well as other team members, run into errors such as Android Studio but being able to find files, gradle issues, and the ActionBar not being found (Even though we are trying not to use it.) I've spent hours trying to research these issues, but nothing online seems to work, or just brings up different errors. We are debating switching to Eclipse, though we are hesitant because it would mean starting from scratch and possibly dealing with different errors.
Getting used to Arduino. Cannot test build because I need another cable, but will push none the less.
Building has been fun. I'll attach an album of pictures from the parts and from the build progress.
The following are the parts I have:
Glass Fiber Quadcopter frame
Turnigy B4 Compact 35W 4A Automatic balance Charger
Propeller Driver (these hold the propellers in place so they actually work)
Low voltage Alarm (it's a buzzer with lights)
LiPo battery pack
Turnigy controller/transmitter and 6 channel receiver
Brushless DC motors, 28-26A 1200kv / 286w
ESC for controlling the motors.
Here an an album of the parts: http://imgur.com/a/4WNfM#0
I am currently working on the build of the drone. I have assembled the body and discovered that I still need a few more parts to fully build it. What's more frustrating is that the microcontroller did not come with a power supple for testing nor a cable to connect it to my compute for me to download the code on to. Here is a link to the current physical build of it. I will be adding pictures as time goes on; Imgur is not working properly on my phone so there is a bit of a delay with pictures being added. http://imgur.com/a/Aq7Pi#0
When adding/managing reservations, the user should not be able to see any parameters in the url.
The project has been progressing well through the summer semester (though no one would know because I don't write blog posts).
Currently, the app serves its purpose (most of the time) up to a 12-card difficulty. Since the screen gets way too crowded when there are more than 12 cards on the screen, an entirely new layout had to be implemented for 13+ cards. This layout has the user pick both a suit and a card-type when choosing the correct card, so I won't have to worry about implementing different layouts from 13 to 52 cards when this layout becomes functional (thereby saving me A LOT of time).
However, getting the layout to work is proving to be tricky, to say the least. First, the user might not have an even number of cards for each suit, not to mention that each suit may have completely different card-types. In other words, each time a different suit is selected, the cards that can be chosen from need to be updated. This wouldn't be as annoying if Unity allowed 2D textures to be stored in arrays. Alas, a round-a-bout method for finding, checking, and displaying the correct cards for each suit must be used. In addition, I've decided that (for now), correctly chosen cards should become un-selectable. Eventually, it'd be nice for correctly chosen cards to disappear altogether, but the app isn't there yet so that doesn't really matter.
After completing this layout, I'll be able to move on to making the app more game-like. This means that I'll have to implement attempts, hints whose function changes with difficulty (currently, you see the hint no mater how many cards there are), and maybe even a timed setting for harder difficulties. In addition, the card-maker menu needs to become a "card-editor" menu, so that current cards can have their hints changed and hints can be re-assigned to new cards. It would also be nice to see the hint of every card that has one.
Another thing that I've had to keep in mind is that, when a higher difficulty is reached, two or three cards will need to be selected each time. In other words, two/three hints (for two/three cards) will be displayed each time, and the correct cards need to be selected in the correct order (in addition to being the correct cards). This will likely be a pain in the ass to implement.
Eventually, I'd like to add even more features, as well as updating some menus to increase the app's usability. For now, though, I'll be focusing on getting the actual "game" part of the game working... and on writing blog posts more often.
When managing tables, the layout matches the actual restaurant layout more closely.
If the customer is in a rush, then this feature will show the important information upfront
I got registration hooked up without a hitch! Pretty exciting but expected after having so many issues with login. A user could now register with their email, a username, and a password (provided nobody is using their email or preferred username yet). Upon registering you would be automatically logged in a redirected to your account page, similar to after logging in.
The next step from here is to get all of the super important user stuff setup, like retrieving a forgotten username and password. verifying an email.
Then comes custom spell lists...
I have a ton of plans for the future including moving this blog to one on the site that I'll create a new role (admin is an example) for those who should be able to post to it. Probably blogger or social media administrator or something catchy. SMA isn't too bad.
Also the issue of user profile images can be solved easily with Gravatar. I was worried about storage until I remembered that that exists.
So yeah, that's a lot of stuff I guess but I think it encompasses my goals for the remainder of the summer. Here's to hoping for a legitimate official release by the end.
RCOS is progressing along well. Thanks to Robert Rouhani who is also helping with mentoring and generally helping students. He posted his last weeks talk http://slides.com/robertrouhani/dll-distribution#/I briefly talked about the nine prisoners problem and how I modified Sudoku backtracking code to solve this problem. https://www.quantamagazine.org/20150609-a-design-dilemma-solved-minus-designs/ My comment appears toward the end (and my code is here https://www....
One of the big draws to RCOS for me was the opportunity to make use of both of my disciplines. With our analysis tool a lot of whether we are able to make any useful suggestions depends on how we weigh our various statistics. Most of the meat will be comprised of the Donchian Channel, differences in highs and lows relative to the price, and historic information about price fluctuations. Donchian channel is a region between two lines, the top line is the highest price seen in the last x (5,16,30) days while the bottom is then the lowest in that same period. The percentage difference in highs and lows allows us to see what possible margins exist. With Eve's trading system there are fees on transactions based on the value of the transaction so the general rule of thumb is a 10% margin will leave you with an acceptable profit after taxes and other shenanigans involving players. The historic data on items will let us discover cyclic changes in price and weigh items that are historically about to hit an upswing much higher, perhaps with an indicator saying sell in x days. We want to be as transparent with our info as possible so users can understand and learn from our work!
Added the updated dyGraph, made an opaque background for readability, and made the farthest background static
Errors upon errors hindered me from making significant progress this week. I spent a lot of time resolving an angular injection issue that was not at all related to what I was doing at the time making it difficult to track down, then had issues with my middle ware functions. I finally fixed those and the login seems like it's working reasonably, although I haven't fully tested it yet so I'm not quite sure yet.
Hopefully tomorrow brings plenty of good progress with testing the login and getting registration working, then I need to build a page for users to edit their account.
I learned this week that error messages may not tell you exactly where you're problem is, and even if they seem utterly useless, they probably provide enough information to pinpoint the problem relatively quickly, you just need to know where to look. Experience helps.
After a lot of fiddling with Android Studio, we are making more progress on the app. I have created the main "buddy" that will be used along with an animation of him breathing for the homepage. I am still unable to push to the repository, so updating the project may take a while. Meanwhile, I am doing as much work as I can outside of Android Studio. I found that Android has its own drawable animator, so it may be easier to integrate animations into the project using this rather than Unity, so I may recreate it that way.
The first half of the summer has been pretty busy for the team, with classes and work. Now that summer session one of classes is done, we should be able to get more done on the project for the rest of the summer. Josh and I will spend the next week or so revamping and adding the final touches to the HTML and CSS code that we worked on during the spring session of RCOS. One suggestion that Rob brought up was looking into whether we should use WebRTC or Flash for the website, so we'll be looking in to that for the next few days.
The site has been going through major changes. I had to separate the site into two parts: the customer side and the restaurant side. The customer side has been greatly simplified because they just need to know if there are any tables available (if so, then how many 2-person tables, 3-person tables, etc...) and how many people are waiting in line, which the site calls the "priority queue".
Restaurants on the other hand need to manage much more. For the reservation system, the site will ask for the customer's name. This is to prevent ambiguity, especially if multiple parties reserve tables all at the same time, i.e. all at 6pm. Once every party begins to check in, the restaurant owner can differentiate between the tables. Without a name attached to the reservation, the owner won't know where to seat customers.
Also, the restaurant layout uses a grid system instead of a long list. A list is difficult to manage especially if there are a large number of tables, since the restaurant owner would have to go through each item one by one. In the future, the site should display the actual restaurant layout for not only accuracy, but also for convenience, since each restaurant should understand its own layout very well.
Sometimes, the site would edit the wrong table, or no table at all.
The edit window for tables is broken though.
So I found a replacement microcontroller. Finally. I picked the Arduino Zero and it will be at my house by this Tuesday (two days). I was hoping for something a bit different but this will work I think. I'll update with more info on the controller soon. The driving for for picking it was that it had i2c and pwm. It lacks other things compared to the multiwii controller but I think we can manage.
The restaurant owner can reserve spots for every half an hour instead of just once per hour (i.e. the restaurant can reserve a table at 11:30 instead of just 11:00 or 12:00)
Summer 2015 RCOS StudentsThanks to Dr. Goldschmidt for holding the fort for three weeks when I was way in India. He also changed the format - with the group being small we could afford to do it. Essentially our group meeting is like a small, we asked each group to update on their projects.To start of Rob Rouhani talked about his game playing software (DLL libraries) and how to make a systematic method of generating DLL libraries for various operating systems. His software is being used bya numbe...
Everything has shipped. Awesomeness. Still looking for a micro controller. If anyone has any ideas, I'd love to hear them. gardnm4 (at) rpi (dot) edu. thanks!
-Tables are displayed in a grid format -The restaurant owner can apply a filter to display reservations for only a certain day
I have resolved my issue with Hobbyking.com with parts. They are processing the order and will be shipping it soon. The microcontroller was backordered so I cancelled it and am looking for a replacement. I'll post when I find one.
403 error on /user/me route
Put all the 2 person tables in one group, the 3 person in another, etc. since there are cases where we need to find a table of a certain size, but we don't care which table
Much easier to manage tables that way, especially if there are a lot of tables
Created a completely separate webpage just for customers. They should only be able to see the number of available tables and number of people in line.
The back-end that the user system is being built on is now functional! The registering works, as well as logging in, and I set up the admin routes middle-ware that determines whether a user can access the admin functionality based on their access token.
The next step is connecting the front-end login / register page with the back-end system. Getting spell lists working after that should be relatively easy as I already have a solid idea of how the back-end needs to work for that to be functional.
Sorry about the lack of posts. I've been waiting on parts still. On Friday, three days ago, I decided that it's been long enough and that I need to complain to the supplier because the parts should have arrived. I contacted Hobbyking.com and the following became clear: my order did not go through, they did not tell me that it did not go through, and the order failed in such a way that I couldn't just reorder it.
On Friday night I got the credit through to them so they have the payment. However they needed a bank statement to confirm it to prevent fraud. I tried to log into my bank account and it was marked for fraud because I logged on in an odd way and was locked out. It told me to contact costumer service to resolve it. They are not open on the weekend.
Today, I called the the bank and sorted it out. I have access to my account and the history of transactions. I contact hobbyking through their costumer service 24-hour chat service and tell them the good news. I send them the transaction statement and they tell me it does not work because it is not a 'bank statement'. I tell them it is. They say it is not. I ask what information is missing so I can identify the right statement they are looking for. They tell me to fill out a ticket because my problem is more difficult than they thought. I filled out the ticket and am now waiting.
What they problem meant by bank statement is the statement I get at the end of the month. However it is not the end of the month yet so I cannot give that to them.
Hopefully I will get this resolved soon.
Added instructions on how to get started with the website.
Used ViewData to greatly reduce the number of variables.
Changed the appearance of a few webpages