Search This Blog

Monday, May 18, 2015

May 11-15

Monday: 12:55-2:30
Tuesday: 12:55-2:30
Wednesday: 1:17-2:30
Thursday: 1:50-2:30
Friday: 1:17-2:30

     This week is my last week in the internship. I have started working on making the app work offline by writing information to a file when connected to a network so it can be used when not connected. However, in order to do that, I need to use PHP because javascript and HTML and python cannot write to files. There have been issues running PHP in Aptana. Once those were solved and PHP began running correctly, our database has stopped working. I have no idea what could have happened to the database. I have even commented out all reference to PHP to see if that was the issue, but nothing has solved it yet. So, I haven't gotten very far with the PHP because I cannot connect to the database, which is required. I've also added some aesthetics like labels for buttons. Currently, though, I am most concerned with the fact that the parts of the app that were working perfectly are no longer working. Until these issues are fixed, I'm not sure where to continue.

May 4-8

Monday: 12:55-2:30
Tuesday: 12:55-2:30
Wednesday: 12:55-2:30
Thursday: 12:55-2:30
Friday: 12:55-2:30

     This week, I started testing and adding aesthetics to the aspects of the app. I have been able to set up a server to test on in school that will allow me to test the app on my phone to make sure that the formatting is done properly for mobile devices. So, most of my time is spent looking over code, testing, and making adjustments. I also finished the notifications area of the app. My newest edition only shows notifications that are still relevant. For example, if notifications are not deleted the day after they were planned for, they will not be shown even though they are detected by the app.


Above is a screenshot of the home screen of the app from the view on a laptop. 


Friday, May 8, 2015

April 27-30

Monday: 12:55-2:30
Tuesday: 12:55-2:30
Thursday: 12:55-2:30

     What an exciting week! The app is really coming along and I think we will be able to have the first version for intensive testing by the end of the school year. I've added the notifications to the app that will show two hour delays and closings. I also started to add some aesthetic effects like color coding for some of the tables, like the list of clubs. My colleague and I decided to manually enter the clubs into the database for the time being because we still do not have control of the high school website to change the formatting of the data we need to scrape and the clubs don't change too drastically from year to year. We have now started to throw around ideas for what to add and what needs to be improved since most of the aspects of the app are finished. We might try to find extraneous issues of the school newspaper to put online and subsequently be scraped. We also have some issues with logging onto the app, some of the graphics, and viewing pdf's that need to be looked into. My colleague is still finishing the map, but he is making good progress. I am going to start looking into the logic errors we are having listed above and letting others test it. Hopefully we will be able to test using PhoneGap in school in the near future so that it will be easier for others to test.

Saturday, May 2, 2015

April 20-24

Monday: 12:55-2:30
Tuesday: 12:55-2:30
Wednesday: 12:25-2:30
Thursday: 12:55-1:47
Friday: 12:55-2:30

      This week I worked on notifications for two hour delays and school closings in the app. I started with an animation of the icon for notifications on the home screen. I made it so that if there was an unviewed notification, the icon (a bell) would "ring" twice and an exclamation point would appear in the corner of the icon. Then, when all notifications were viewed, but there are still present notifications, the exclamation point stays but the bell does not ring. Next, I worked on adding the lunch menu to the app. I scraped the menu from the district website, stored the data in our database in HTML by day, and then printed each day in weeks of five school days. When making the lunch menu, I had to change some icons around. Previously, I had made the icon for the clubs a club sandwich. However, now that lunch menus are a part of the app, it would make a lot more sense to have the lunches be represented by a sandwich. So, I switched out those images and made a new image for the clubs. While I was at it, I made an icon for the map that my colleague has been working on. Then, I worked on fitting the icon into the home screen along with the existing icons. The bell is the 7th icon to be added to the home screen and since I laid the screen out in two columns, the bell would not fit well into the layout. So, I put it in the top right corner of the home screen and formatted. This brings me very near to the completion of the app. I have to complete the notifications section, but after that, the only thing left to do is add the map and test. That is, unless we want to spend more time making it more aesthetically pleasing. I may eventually start doing that, however since it is not possible to test on a phone in school, it will be hard to do any of that during my internship period.

Saturday, April 25, 2015

April 14-17

Tuesday: 12:55-2:30
Wednesday: 12:25-1:47
Thursday: 12:55-2:30
Friday: 12:55-2:30

     This week I finished the news section of the app. I made a menu out of the previous news page that would condense the school newspaper and school news into one menu that led to those individual pages, thus getting rid of one of the icons in the home menu. This was necessary due to my inability to draw a good icon in MS Paint that represented the school newspaper and because there would be far too many icons if each section of the app had its own on the home page. The school news section is now branched off from the overall news menu, which shows all of the titles of news stories. These titles are all buttons that lead to the full news story. I worked a lot on formatting the stories so that new paragraphs were recognized by the HTML, meaning I had to make a new <p> tag every time a "\n" escape sequence was found in the string of the story. I also worked on some formatting of all of the pages, like the background color and the appearance of tables used to display the different scraped information. Next, I will look at making a place for all of my colleague's code to go. The mapping algorithm will need its own icon and page, so I will make that next week as well as looking into alerts for school closings. Another member of Byte Club had previously made a short program that would allow the superintendent of the school to add entries to our database when a 2 hour delay, early dismissal, or closing occurred. So, I will work on gathering this information from the database, alerting the user, and adding a page to display all of those notifications.

Saturday, April 18, 2015

April 6-9

Monday: 12:55-2:30
Tuesday: 12:55-2:30
Wednesday: 12:25-1:47
Thursday: 12:55-2:30

     This week, I started off by relaying the past week's events to my mentor. Then, the next step in the coding process is the news. I have to decide which news I want to scrape from the high school website: the upcoming events, or the actual news stories. I am leaning towards the actual news stories because I think that those might encompass some of both categories. Next is to scrape the information I want from the website. The issue is that every news story is its own link that leads to a popup instead of a regular webpage. So, not only do I have to scrape to find each link that leads to each story, but I have to deal with the fact that each link is in an odd format due to the fact that they are all popups. Another question I have to ask myself is whether or not I want to store the articles on our database. I don't want our database too become too full, so I'd rather not have to use it for unnecessary items, however if the articles are not stored on the database, then each device will need to scrape and store the information that they need to display. Another factor is that Python, the language I am using to scrape, does not mix well with text files and HTML, the language I'd use to display the articles, does not mix well with Python. Since the it is less efficient to figure out how to locally store the articles, I decided to suck it up and store them online.
     A new problem arose after my first test: the problem with the page not loading before it is scraped has reappeared. Since I am trying to scrape from popups, the information I need is not present when I start scraping. So, I will either have to look for a new way to scrape these articles, figure out how to load the page before scraping it, or use the upcoming events for news instead. The upcoming events would not be hard to scrape, but I'm not sure that they would be as useful for users as the news articles would be.

Thursday, April 9, 2015

March 30- April 1

Monday: 12:55-2:30
Tuesday: 12:55-2:30
Wednesday: 12:25-2:30

     This has been an exciting week! It was cut short because of a trip to RIT, but the time I did have was enough. I've finally finished the athletic calendar section of the app! It was so worthwhile to struggle through the ups and downs of that code because now that it is finished, I am very proud of what I've been able to accomplish. I had to change the scraping algorithm a little bit in the end because the data that I had been getting was not consistent for every event. I also had to put some code in to make sure that every block or every event was filled even if the database did not have the information I needed. I was able to do so by analyzing the times that the data I needed was not present. After that, I have finished! My colleague is still working on troubleshooting the school map and making turn by turn directions to accompany it. My next project will be to work on the news aspect of the app. However, I have decided to integrate the school newspaper into the news portion and differentiate between them in a menu that branches off from the news icon.
     In other news, the last official Byte Club meeting of the year was this Wednesday. During the meeting, our president played a video about Unity 5 and spoke about how he has used previous versions o Unity to program and how Unity is a great way to start designing games. We will still have two other unofficial meetings this month, but I am very sad to see this school year pass me by so quickly. Byte Club has been a huge learning experience for me and I have made many friends that I'll be sad to leave. I will have to keep in touch and make sure it stays alive in the coming years because I think it is a great opportunity for high schoolers and I am so glad I joined.

Sunday, April 5, 2015

March 23-26

Monday: 12:55-2:30
Tuesday: 12:55-2:30
Wednesday: 12:25-2:30
Thursday: 12:55-2:30

     This week, I continued to make the front end for the athletic calendar in the app. I decided to use a month view for the calendar, and create buttons in each day that had events in it so that when the button was clicked, all of the events in that day and their pertinent information are shown. So, first I worked on the buttons, creating them, and formatting them. Surprisingly, it was more difficult than I had initially imagined to get the buttons to be displayed as an image. After that, the other difficulty I faced was that in order to have the events for the particular day shown, I would have to open a new window to show those events. There were other paths I could have gone down to get the effect I wanted, but I figured that opening a new window would be the most straight forward. So, to do this, I would have to pass information from one html file to another, wither by text file or some other means, or get the information from the database in both files. In order to make the app the most efficient, I wanted to pass the information. My options were further cut down when I found out that writing to files in Javascript is impossible.
     Additionally, a new member of Byte Club has started making an easter egg for the app that we are going to call "flappy falcon", which is a version of flappy bird that has our school's mascot as the main character. In other areas of the app building process, the pathfinder is almost completed, but testing is still going on to correct errors in specific cases. After those cases are found and eliminated, my colleague will begin to work on step by step directions between two classrooms. After that project and the athletic calendar are finished, we will work on receiving data from the database that is relevant to students like 2 hour delays and cancellations of school. Another Byte Club member has made a simple program that will upload data to the database regarding this information that we will give to the staff member who calls such occurrences into the news in the morning so that the information will be readily available when needed.

Monday, March 30, 2015

March 19-20

Thursday: 12:55-2:30
Friday: 12:55-2:30

    This week ended with more app work. After finally cracking the code of the athletic calendar scraping, the rest of the backend was not hard to write. I just had to get uploading to the database working correctly, and the Python for that part of the app was done. Then, I started on the HTML. This was also an interesting task. Since the calendar would be viewed on a phone, it would have to be legible on that small of a screen. So, the issue was which format I would display the calendar in. I could display the whole month, which would be easier to code since the data I scrape so far is for the current month only, or a week view, which would be easier to read, but more difficult to code. Instead of deciding this to begin with, I decided to take the code I had put in AppFurnace before the big switch to PhoneGap and transport it, since it's JavaScript, into our new code. So, I spent the rest of the week editing that code to make it compile in ordinary JavaScript. Then, with nothing more to do without making the view decision, I had to make a choice. I ended up deciding on a month view that would create buttons in all of the days that had events in them. These buttons would then lead to a day view that would show all of the events in that particular day.
     I'm very proud of the work I've accomplished this week. It has taken a lot of time, but I finally found a way through the problem I've been having the last few weeks. Finally being able to figure this hardship out mostly on my own has given me an ego boost that will help me through the rest of this project. Additionally, in future projects, this achievement will help me persevere through similar trials.

Saturday, March 21, 2015

March 16-18

Monday: 12:55-2:30
Tuesday: 12:55-2:30
Wednesday: 12:25-2:30

     The beginning of this week was exciting in many ways. To begin with, I was given the opportunity to meet the Governor of Pennsylvania. He had come to visit one of our district's elementary schools to rally support for additional funding for schools. I got to follow his tour through the school, shake his hand, and even have a conversation with him about what I do with regards to technology in the high school and the rest of the district.



     After the Governor had given an interview with our local news station and left the building, I sat down with my mentor to work on the issue of the athletic calendar. As I described the problems I had been facing in the previous week, he and I looked at the site that houses the calendar. I explained the problem with using the URL that Chrome's Developer Tools had led me to and my mentor simply pressed a different button than I had and it worked. This was, of course, a little frazzling because of the amount of time I had spent scouring the internet for answers when my original idea would have worked, but it was also very exciting. The problem had been that the URL given in Developer Tools had an extra path at the end of it that was unnecessary and would not lead me to the actual site. By opening the URL in a new window, the correct URL was used and could be collected. So, now my job should be a lot simpler than it was going to be.
     On Wednesday, I began to implement the solution that we had discovered the day before. I scraped the URL we had found pretty simply, and then just had to find a way to properly parse the information I had found. This would not have been too difficult if I had been familiar with Python, the language we're using to work with scraping and the database. However, after a brief conversation with Google, I found the correct syntax for what I was trying to do. By the end of the day, I had information uploading to the database. The only problem was that not all of the information I wanted was being uploaded. It turns out that for some reason, not all of the tags that I was searching for were being recognized. I found that part of the problem was that some of the words I was searching for were used in multiple pieces of information. For example, one thing I wanted to upload was the "FACILITY". However, there are also sections for "FACILITY_ID", "FACILITY_CITY" etc. So, I just checked to make sure that each section included "FACILITY", but not a hyphen and that worked well. The other problem is yet to be solved. Some of the tags have no reason to not be recognized. The one that I noticed first was "SPORT". There are other sections that include "SPORT", like "TRANSPORT" and "SPORT_ID", but when I printed out every section that got through the if statement ensuring that the section included "SPORT", none of the ones that I actually wanted made it through. So, apparently "SPORT" does not include "SPORT" in it.

Friday, March 20, 2015

March 12-13

Thursday: 12:55-2:30
Friday: 12:55-2:30

     Towards the end of the week, I decided to put the scraping problem aside for a day so that I don't get so frustrated that I don't want to continue. Instead, my colleague and I started planning for a fundraiser we would have on Friday night. We will be hosting another video game tournament during a fair-like event that another club at our school is throwing. So, we had to organize who would be bringing the gaming systems, where we would get the TV's, where we would be holding the tournament, prices, prizes, and who would be able to work the event. On Friday, then, I continued to search for a solution to the elusive problem of scraping the athletic schedule. My colleague finished the drop down menu that will allow students to search for a room name by the last name of the teacher that occupies it.
     This week was a little painful because of all of the times that I had to start over and all of the problems that I encountered before I realized I would have to start over. However, I knew that this was coming when I started this project. Just by looking through the code for the site that houses the athletic schedule when we were planning the app, I knew that it would not be fun to scrape. Yet, it is still aggravating to have to go through all of this trouble. I guess it is good practice for the real world, though.

March 9-11

Monday: 12:55-2:30
Tuesday: 12:55-2:30
Wednesday: 12:25-2:30

     Now, for this week, I'm still looking at different ways to scrape the athletic calendar. So, I found yet another package that might do the trick. I installed that and started working on the syntax of actually coding my solution to load the website and then scrape the code of the loaded page. I spent the entirety of Monday, Tuesday, and Wednesday finding new modules, trying to install them, testing them, and scrapping them. It is getting increasingly frustrating to have to go back to the drawing board after every failed attempt and having to troubleshoot only to find that the module I've found doesn't work. As a small side-project during the week, my mentor and I worked on fixing the software that monitors our students' computers during class. The software is supposed to be able to give demos that show on every computer in the room, but they have not been working. So, when I was taking a break from the frustration of the cycle of searching and scrapping, I was working on making that software work properly and finding the error it was having.

Wednesday, March 11, 2015

March 2-6

Monday: 1:25-2:30
Tuesday: 12:00-1:00
Friday: 1:25-2:30

     This week was very split up because we had two two hour delays, two snow days, and an early dismissal. So, on Monday, I finished entering all of the teachers and their room numbers into the database so they could be used in the app mapping area. Additionally, we worked on the path-finding algorithm to navigate the hallways of the school. We had to first decide which way we wanted to go about winding the path. We decided that we would start in the hallway that the start room is contained in. Then, from that hallway, we would find the hallway that is closest to the target and is perpendicular to the current hallway, because the layout of our school facilitates this method. It would continue moving through perpendicular hallways until it reaches the target hallway. After the method of path-finding was decided, my colleague began coding that while I started to tackle the beast of data scraping: the athletic calendar. When we first started to look into scraping, I found an issue with the site our school uses to host our athletic calendars. The calendar is not hard-coded into the source code, it is input with a javascript. This makes scraping much more difficult because now we have to find a way to collect the data without having direct access to it. My first idea is to see if I can trace the origin of the data with Google's Developer tools. If I can, I'll just be able to manipulate the site URL based on the date and get the data from there. However, after a bit of searching, I found that these origins are not reliable and will not work for my purposes.
     Later, I found a module called Spynner that can load webpages within Python. I worked on downloading and installing the module into Python for part of the period, but then took some time to help with the mapping rocess. On the path-finding side of the app, my colleague was having some logic errors. Currently, the algorithm will find a path to the target room, but it is not the most efficient and sometimes isn't even sensible. So, we had to make the map more accurate regarding a small hallway that is almost connected to a larger hallway. Before, we had had the smaller hallway connected, but this ended in incorrect paths because not ever path required going to the end of both the smaller and larger hallways. So, we had to change it.
     On Friday, I was still troubleshooting the installation of Spynner. So, after downloading and installing it, I tried to work out how to use Spynner to run the javascript on our athletic calendar's site. However, it turns out that Spynner is not capable of running javascript. Instead, it can manipulate inputs on a webpage. So, I was back to the drawing board. After the frustration of another dead-end, I helped to test the working path-finding program. Then, my coleague decided to start on a drop-down menu to list the possible rooms to start and end in, and I continued my quest of scraping the dreaded athletic calendar.

Sunday, March 8, 2015

February 26-27

Thursday: 12:55-2:30
Friday: 12:55-2:30

      During the end of the week, I finished connecting the html of the clubs page to the database, and got the table of clubs formatted. I ran into some issues on Thursday where no data would print from the database, but there were also no alerts as to why the code wasn't working. Even the alerts that I coded in weren't showing up. Eventually, though, my colleague figured out that nothing was printing because the program was trying to execute the code to print the table before the code that gathered the table from the database was finished running. So, I put the formatting code in a function and called that function at the end of the data-gathering code. By Friday, I had finished this code, though it still needs to be tested on a phone to see if the format is accurate. So, now the only thing left to do for the clubs page is find a way to parse the table that we scraped from the high school site into the different kinds of data they represent.
    My colleague and I also decided that we should have a section of the app that helps new students and parents navigate the school. In order to do this, we thought we could create a part of the app that would give people directions from one part of the school to another based on room number. We also plan to create a section that will allow students to enter a teacher's name and find out their room number. So, on Thursday, we started brainstorming the most effective way of implementing this idea. First, we had to decide how we would think of the map of the school on a code level. We created a couple of options: a grid of the school with a classroom, hallway, or intersection in each block, a network of hallways which would store the classrooms in that hallway and the hallways it intersected, or an array of classrooms that would each hold the hallway or hallways they were on. We started with the grid idea on Thursday, but by Friday, we had decided that the most efficient way to do what we wanted was to use the hallway setup. So, we had the hallways of the school being drawn to scale by the end of Friday. After that, my colleague started to assign room numbers to hallways and I started to fill a section of our database with the name and room number of all the teachers in the high school.
     I really think that the mapping system we are starting with the app will be a very useful and exciting tool available to new students. During the first week of school, new students are always wandering the halls with their heads bent over maps, trying to understand where they are supposed to go. With an interactive set of directions, new students will be able to find their way more easily and the situation of other students giving new students the wrong directions will be almost completely solved. Furthermore, if someone needs to get to the room of a teacher they've never had before, they will be able to find that teacher's room number and find where they need to go to get to that room.

February 23-25

Monday: 12:55-2:30
Wednesday: 12:25-2:30

     This week, I started working on displaying and formatting the table of sample data about the school clubs. We had an early dismissal on Tuesday, so I was unable to work on the app then, but on Monday I worked through changing the database code from the newspaper code to work with the club data as well. I also started to look into writing the code to display the take if clubs. On Wednesday, I got to experiment more with networking. My mentor brought a router down and I got to explore all of the different settings and functions that a router has. I also had a long conversation about the possibilities one has to pose a security threat with just a few simple pieces of software and a few different ways to combat such threats. Overall, it was very educational and interesting to get to broaden my understanding of how modern technology works.

Friday, February 27, 2015

February 19-20

Thursday: 12:55-2:30
Friday: 1:23-2:30

     Toward the end of the week, I continued with working on the app. I almost have the Python script uploading data to our database, except that since Python doesn't allow you to declare data types, the script kept giving me errors about using a set when I meant the variable to be a list. After I remedied that problem, I very shortly ran into another. The data that I had scraped from the high school site was impossible to parse the way it was. There is no common format in the information that I received from the online table.  I can't parse by spaces because some of the club names have spaces in them, I can't parse by number because not all of the locations of the clubs are room numbers, some are letters like the auditorium.The entry for byte Club doesn't even have any spaces at all! So, I've decided to try to contact the keeper of the website so that some sort of format can be established by either him or me so that parsing is possible. Without data, I decided to upload test data into the database to make sure that that area of the code was functioning ahead of time. I was able to finish this by the end of the week.
   I think that the app is coming along very nicely. Once I establish a connection with the man who oversees the high school website, I think the rest of the app will be a lot easier. Though there are still some things that we will need to scrape that aren't held in this one location, it will make life a lot easier to be able to make changes for those that are. A lot of the difficulty that we are seeing on the scraping front is simply finding a pattern among the data we collect to make it manageable, usable, and parseable. Being able to edit the code on the other end of the data will cut down the workload on a lot of the areas of the app that we still need to complete. Once all of the scraping is working, we just need to make everything look professional, test, and add in some of our own fun little easter eggs, if we have time.

Thursday, February 26, 2015

February 17-18

Tuesday: 1:25-2:30
Wednesday: 12:25-2:30

    Continuing with my app work, during the start of the week, I worked on uploading the information scraped from the clubs section of the High School website to our database. This wasn't too difficult to do, since I could use much of the code from the previous scraping code for the newspaper articles. However, the newspaper code needed to be a lot more complex than the club code did, so I had to trim unnecessary code out, change the name of the object each entry is stored as, and make sure that there was a club object in the database that had the necessary categories of data to be filled in by each object. My colleague decided to get started on 2-hour delay and no-school notifications. We made a few decisions on how we wanted that to work, and then he went to do some research on how to make it happen. We decided that push notifications would be the route we wanted to go, but we also wanted to have a notification center in the app that kept track of those sorts of things. The notification center might be a whole other battle, though.
     Additionally, on Wednesday, we had a meeting with all of the members of the student tech team that could make it. Unfortunately, all of the people that could make it were the people from Byte Club that already knew most of what would be going on. Nonetheless, we had a good meeting and got the general idea of the tech team down. We are going to try to set up a student help desk during school whenever people have the time, and we are also thinking about taking over the high school website for opportunities to code. The people who did come will make a great addition to the team and hopefully we will be able to get in touch with and meet those who could not attend in the near future.

Friday, February 20, 2015

February 12-13

Thursday: 12:55-2:30
Friday: 12:55-2:30

     For the rest of the week, I worked on the app and some planning for the student tech team. We started to look through the applications we had received for the student tech team. Few though they were, most of the applicants seemed like a great fit for the kind of program we are looking like instituting. We had people who were interested in each area we looked at working with. Also, even though we don't have many people right now, it will probably be better for us to start small in our first year with the team so that we can stay organized and have the start-up run smoothly. So, we scheduled a meeting for next Wednesday with all of the applicants we decided to accept right away.
     On the app front, we finally got our database to work with Python! It turns out that Parse has an API for Python, we just couldn't find it. So, now that we can get Parse to work in the scraping code of the app, we will be able to only scrape every once in a while and allow all of the devices who are accessing the information to do so quickly instead of having to scrape every time a page is viewed. We also worked on viewing PDF's of our school newspaper in an app. So far, we have scraped the links that point to the PDF's of the various issues of the paper. Now, we are working on uploading those links to our database, then collecting them from the database in the HTML of the app, and displaying them on the phone. We are also running into an issue with the site we are scraping from, however. The high school's website does not have links to a PDF of every issue of the newspaper. Instead, there are a few consecutive years in which there are no links at all. Additionally, the ones that do have links store them in separate ways. So, we have to figure out how to scrape consistently when the links are in different places and some times aren't there at all. For those that do not appear at all, we have contacted the staff member who supervises the making of the school newspaper to see if he has copies of the missing issues. He has responded that he does have the issues we need, so we will have to scan those issues into PDF format and then give them to the staff member who runs the school website to have them put up.
     This week was very productive for me. I worked on various different projects and I think that they are all coming along nicely. We are making leaps and bounds with the app, which is well on it's way to being functional, and we are starting to turn theory into action with the tech team. Hopefully, we will be able to make enough of a dent in both projects that the future groups will have an easy ride finishing what we've started.

Wednesday, February 18, 2015

February 9-11

Monday: 12:55-2:30
Tuesday: 1:25-2:30
Wednesday: 12:25-1:47

     The majority of the beginning of this week has been dedicated to app work. We are now starting to integrate the data scraping algorithms with the database we have set up to facilitate the app. This way, the scraping doesn't need to be done every time the app runs, which will cut down on loading time for users. We are also continuing the scraping code itself. We have started to scrape the information for which clubs are during which weeks, and are making sure that the information we collect via beautifulSoup is indeed the information we want and will continue to be the correct information every time we run the Python code. The difficult situation we are facing now is that the database we are using may not be integrable with Python. It has API's for multiple languages, but we are not sure that Python is one of them. There are a few interesting ways around this issue. For example, we are toying with the idea of embedding other languages within our Python code so that those languages can run the necessary code to instantiate the database and upload new data to it. The next step will be integrating the data we scraped and stored into the HTML we have for each page in the app.
     On Wednesday, my colleague, my mentor and I got together to talk about some of our future plans. The student tech team will be starting up shortly, and we have to get an idea of everyone's schedules in order to do so. We also talked about the different things that the tech team could do. The idea of allowing students to run a help desk during school hours was thrown out, and will likely be implemented in following years. Another school in the area has an already-established student help desk that we can pull ideas from. I, unfortunately, will not be able to participate in that, but I will get to pave the way for it to be possible. With my time left in high school running surprisingly short, I hope that I will be able to see some of these exciting changes come about before my time is up.

Wednesday, February 11, 2015

February 5-6

Thursday: 12:55-2:30
Friday: 12:25-2:30

     On Thursday, I continued my work on the app. I found a much simpler and more efficient way to code what we needed to have done that also tied up all of the loose ends we had left when trying to code before. I discovered this method by doing a lot of research on BeautifulSoup and all of its many functions. So, I turned what had been tens of lines of code into about 9 that did the same thing, only better. This only further proves the theory that thought and work in the preparation stages of a project can save exponential amounts of time and work when actually doing the project. So, now that we have figured out a way to scrape for this kind of data that we need, we can use the same process to scrape for some of the other necessary data. Not all of the data will be this simple to scrape, but I figured that it would work better if we learned by scraping the simple data, and then once we are more confident in how the scraping process works, we can start to tackle the more difficult items.
     Friday marked the February meeting of Byte Club, which was not any ordinary meeting. This week, we welcomed all of the new students who would be joining Byte Club in the new semester. These students are those who completed Computer Science Fundamentals 2 satisfactorily and have an interest in being involved in the club. So, we started the meeting and got all of the new students into existing teams so that they could make their own teams and projects in the coming years. We also made some decisions based on an upcoming fundraiser at the Aevidum lock-in. We were requested to set up a video game tournament similar to the one we hosted at the school fair at the beginning of the year. So, we decided that we would host a tournament, and that we would want to charge for the service. However, depending on how money for Aevidum will be made during the night, we will either charge a flat rate to the Aevidum, or will charge per-game or per-entrance to the tournament. I will get in touch with the adviser of Aevidum next week so that I can figure out their situation and come to an agreement on price etc.
     This week, I have seen some exciting strides happening in Byte Club and with the app development. Within Byte Club, the incoming members have a lot of energy and motivation to get started on projects and I think that they will help to push the existing members to work on their projects and make exciting things. Furthermore, we have an opportunity to get our name out once again, while making a bit of money for future use and maybe even scholarships, if we eventually get enough income. For the app, I was correct in saying that having another person to work with while in school would be great for development. My colleague and I push each other to do better and to get more done in the app, so we have done more this week than we have in the past few combined. If our progress continues, I think that we have a good chance of being able to test and maybe even finish the app before the year is over.

February 2-4

Monday: 1:25-2:30
Tuesday: 12:55-2:00
Wednesday: 12:23-2:30

     On Monday of this week, I had a meeting with the instructional tech staff about the use of Office 365 and the continued planning of the student tech team. Office 365 will be implemented for students so that they can use Microsoft Word and other applications at home even if they have not bought it for their own computers. This way, the quality of work from students will not depend on their ability to purchase software. Office 365 will also allow students to easily transfer documents from their home computers to their school computers and back. Finally, Office 365 will soon be able to link with the Moodle accounts of students, which will make all of the software teachers are encouraged to use more smoothly integrated. Additionally, an advertisement for applications to the tech team was aired on the announcements, and the application deadline will be extended because of it. After the meeting, I returned to my adviser's room to finish up the remaining issues with the italc software-mainly the two computers that the software did not download onto properly.
     For the next two days, my colleague and I worked on the app development and the data scraping for the background of the app. We started with deciding upon and downloading the necessary software to easily data scrape. We are planning on using BeautifulSoup with Python to make our scraping algorithms. Next, we had to find the patterns in the sites we wanted to scrape so that we could consistently scrape all of the necessary data in future years. We came upon a problem here: the first thing we decided to scrape was the school newspaper. The PDF's of the paper were all stored in one place, but the sequence of the url's that led to each issue had no pattern at all. So, we had to find another way to get the issues without knowing the url that led to it, but we also had to make sure that we got every available issue every year.

Saturday, February 7, 2015

January 29-30

Thursday: 12:55-2:30
Friday: 12:55-2:30

     Toward the end of the week, we started installing the software onto the machines in our club advisor's lab and getting it to work! It was a little tedious to get the software and keys onto each machine, but after that was finished and a little troubleshooting, I was able to use the software to its full capacity and monitor all of the computers in the lab. Now, we just need to configure the master computer in the lab, and fix two problem computers and the job will be done. This will be a huge improvement for the lab because the computers in this particular room are on their own network and are given more privileges than other computers in the school. So, it is very necessary to make sure all of the kids on these computers aren't getting into anything they shouldn't be. Additionally, it is always good to make sure students are on task, and this will allow our advisor to do so better. I also got to sit in on a meeting with my mentor, a counselor, and one of the app group members to see if a student internship with some of the tech team would fit into his schedule for the new semester. If this would be possible, a lot more work could be done during the time that I am interning and he is student assisting, and the app could progress much quicker. He will also get a chance to help out with the tech team once it gets kicked off.
     This week was a lesson in persistence. It took a lot more time to iron out the problems with the new software we were installing than I had originally thought it would. Yes, we would be working around classes, but I thought that the hardest part of the process would be downloading the software onto all of the machines without kicking any students off of their computers. Instead, the trouble was with figuring out the software and getting everything to work correctly. However, I am glad that it is done now. I'm sure there is more to learn about the software before the year is over, but at least it runs correctly on the machines that have it.

Wednesday, February 4, 2015

January 26-28

Monday: 1:25-2:30
Tuesday: 1:25-2:30
Wednesday: 12:25-2:30

     This week, I started to work on some scheduling with Microsoft Project. during 7th period, I got some time to try and make a tentative schedule for the remaining components of the app. I am hopeful that we will finish before the end of the school year. This kind of scheduling is difficult for me because I'm not necessarily certain how long each section of the creation should take, so it is even harder for me to decide how long I should let them take. This is good practice, though, so that in the future it might not be quite as difficult to accomplish.
     I was also able to work on the app with one of the app group members who has begun a student assistantship with some of the instructional technology staff. We began to take on the task of data scraping for the app. We decided that Python had the tools that would make it best to use for scraping, and began research and download of the necessary software to make it possible to begin coding in Python. The most important tool we are going to be using is called BeautifulSoup, which is a Python library that makes parsing source code very simple. This is very important because a lot of the resources we are going to need to scrape are inconsistent in their labeling, or would simply not be fun to have to scrape on our own, especially since we are not very familiar with Python yet.

Sunday, January 25, 2015

January 22

Thursday: 12:25-1:47

     With only one day of regular classes this week, there wasn't a whole lot of work to be done. However, I got to introduce myself to three new computer classes, including the AP computer Science class, that I will be around for the rest of the semester and help them start the new semester. This included fixing software issues on some computers, helping students make accounts, and simple advice for the AP test in the future. Additionally, I worked on getting my school laptop up to date on the new software we will be using to code the app, so I can work on it in school.

Tuesday, January 20, 2015

January 12-15

Monday: 12:55-2:15
Tuesday: 12:55-2:40
Wednesday: 12:23-1:47
Thursday: 12:55-2:30

     I'm starting new projects this week! First of all, I got the Visio and Microsoft Project software, so once I have my scenarios, I can start to dig into some of that. This will give me experience with organizing a network and with organizing people. Whether or not I will end up needing project management skills, they can still be helpful with organizing my own affairs and projects. I have also been given the opportunity to look at some software that our club advisor will be getting for her classroom to make sure that none of her students are misusing their computers during class. This may not be immediately helpful, but the process of connecting all of the machines in her lab to the master computer will be a good experience in remote control of another machine. Also, I started to learn about networking, which is baffling yet infinitely interesting. In the next few weeks, I hope I will be able to continue learning this subject, because I think that no matter the major I end up choosing, it will be handy to understand the workings of networks.
     Since it is the week of midterm exams, I will be switching classes next week. I will not be changing my internship, but I will be adding a student assistantship with the advisor of Byte Club. I will get a chance to help the AP Computer Science students in their studies, help our advisor with grading, and hopefully be able to work on a few of my own projects as well during this period. As the new semester begins, I am really excited about some of the opportunities that are ahead of me. The applications for the student tech team will be advertised next week, and we will start interviewing applicants around the end of the month. This, along with my current projects and my exploration of new software, will keep me busy but will also give me a great chance to get experience and learn.

Tuesday, January 13, 2015

January 5-9

Monday: 12:55-3:30
Thursday: 12:55-2:30
Friday: 12:55-2:30

   
   On Monday of this week, I sat in on a meeting with the Instructional Tech Staff of our school. It was the first meeting of its kind, and I got to act as a staff member of the school, which was really cool. We had a lot of conversations about how to encourage students and teachers to use technology in the classroom and which way is the best way to approach doing so. It is often difficult to get teachers to feel comfortable with teaching with new technology that they might not even be comfortable using on their own. So, we brainstormed some ways to motivate teachers to assign work to students that uses the technology that is available to them. We also took a look at some of the statistics we received from a survey we hosted for all of the students and staff in the school about their technology use at home and at school. Some of these statistics were surprising in respect to who has access to technology or the internet at their homes, but those stats are important for us to know how much we can require students use technology at their homes if not all of them are capable of doing so.
     We also took some time to talk about places the technology in the school can be improved and the future of a student tech team in our high school. It was decided that some of our information systems need to by synced better to make it more convenient for all of those using them. Additionally, there are some aspects used by the library and the offices that should be automated because of their inefficiency. For example, students are alerted of library fines via inch-long slips of paper, which are easily lost and almost never get home to parents. Slips for counseling appointments are similar and are often only given out days after the appointment was scheduled for. Also, when students are called to the office, they can only be called in between class periods so class is not disturbed, but no one can hear the announcements in the hallway because everyone is talking. All of these things could be helped by sending alerts out via student email, or through our grade and attendance reporting system. We also talked a bit about the up and coming student tech team that I will help to run after school. The team will be a group of individuals that are interested in computers in any capacity, hardware or software, that will get together after school to help take care of some easy tickets that tech staff gets, and explore some new ideas in robotics, software, hardware, and anything else we might be interested in. The main idea is to get some experience and have a place where students can learn the things about computers that they might not be learning otherwise in school. We will have an application for interested students to fill out, and there will be an interview process to ensure that the students involved are genuine so that no one will be held back, but also that they can be trusted with the information they will be learning. The meeting was very informational for me, and I felt that we made some important decisions while we met. I felt that my opinion was valued as a student, because getting all sides of an issue is the best way to find an appropriate answer. We have decided to meet once or twice a month from now on to keep up with our progress.
     After Monday, I was sick for the next two days, so I could not make it to school, let alone my internship. On Thursday, however, my mentor met with me to discuss the next steps that we will be taking. The app group is getting smaller as some of our team members want to branch off and do their own projects in addition to the app, and we have begun to use PhoneGap and it is working well. We have hooked PhoneGap to GitHub, which is running smoothly, and we have also decided to encourage all of the teams in Byte Club to use GitHub with their projects. This way, the officers and all of the other teams can keep up with everyone's progress and maybe even get ideas from others' work. GitHub is also a powerful tool to learn to use, so it would be good for all members of Byte Club to understand it for the future. I was also informed that In the next few weeks, I will be starting to get some experience with software like visio and microsoft project to see the professional project management side of things. I will mostly be making diagrams to allocate responsibility among teams, and start looking into network diagrams and how a network consultant would set up networks based on the scenario.
     Despite the shortness of the week for me, a lot has happened. I am glad for the chance to get some work done and continue moving forward. I am very optimistic of all of the projects I have begun thus far, despite the roadblock of dwindling help with the app. If the student tech team works out the way I would like it to, I think it will be an awesome opportunity to encourage technological education in the community. I think we will be able to kindle interest within the school, and I am also just excited for the projects we will be able to do and the things I, myself, will be able to learn. Being able to participate in staff discussions is also exciting for me. Despite the fact that most, if not all, of my teachers treat me as an equal, there is always the age factor in conversation among school staff. So, it was really nice to be able to provide a valued opinion in the meeting despite the fact that I'm still in high school.

Sunday, January 4, 2015

December 15-19

Monday: 12:25-1:47
Tuesday: 12:25-1:47
Wednesday: 12:25-1:47
Thursday: 12:55-2:30
Friday: 12:55-2:15

   The first half of the week consisted of all activity period schedules. So, on Monday, I went to a meeting with Dr. Murray to explore one of the possible options the school has for re-wiring the school's wifi hotspots. Due to the approaching holiday season, Byte Club held a Christmas party this week as well. Then, later in the week, I could finally start to look at our options for restarting the app and doing some research on cyber security. I am leaning towards using PhoneGap, because it is only an API, therefore you can use any IDE it is compatible with. It is also open source, so we won't run into the price issue that we might have with other IDE's. Finally, PhoneGap is based in HTML, which most of our team is familiar with, and is easy to learn more about to boot. Of course, I will have to run it by the rest of the team before we get started, but I think it is our best option. Hopefully over break, we can have a meeting to decide what to use to code the app, and begin to do so.
     This week reflects the attitude of the holidays for me. As it is the last full week before Christmas break, teachers are starting to slow the flow of work. I took some time this week to tie up some loose ends before the holiday. There was not too much work done, but this week serves as a reminder that breaks are a necessary evil. They may be bad for production, but they are good to take so you can return to the job with a fresh perspective and attitude.