Tenth Week – Sheet Add-on Modification and Sweet Encouragement (7/24/2015)

I had another meeting with Ms. Pauly and Dr. Heggen early in the morning where we walked through each detail of the project and came up with suggestions for site enhancement. The meeting was productive and efficient, while at the same time encouraging to me. Dr. Heggen and Ms. Pauly were discussing about sending me to the committee to present my work and get it published, and I felt excited about this opportunity. There were a few changes needed to make, and I learned from the meeting how people at the committee would be interested in to see the bigger picture of the sustainability data such as overall recycling per year and total greenhouse gas emission over the course of time, etc.

I receive another round of feedback from the google team regarding my add-on, and worked on improving the code as well as modified the authorization mode. I implemented two more functions in the code: one to remove empty rows and the other to remove empty columns. My initial code would stop looking past the empty rows and columns, and if there were some, only the data before them is replicated to new sheets. There fore I decided to clean the sheet first by removing the blank columns and rows, and then start my major functions: one to replicate rows from parent sheet to children sheets, and the other to replicate columns from parent sheet to children sheets. Dr. Heggen was very helpful during the debugging process, and I learned that a bracket or an indentation has the ultimate power to destroy the data. Because I once misplaced the bracket at the bottom of all the functions, and the code emptied the existing data within. Once again, I mis-indented one line of code under the for loop, and the data was entirely reformatted to unrecognizable patterns. It’s daunting how much power grammatical rules have in coding, and I had the opportunity to learn it personally today. However, at the end of the day, the code was working as intended and I resubmitted it to the google team. I am looking forward to some more feedback before it gets published in the store.

Tenth Week – URCPP Debugging (7/23/2015)

“Big scary things include shark, tiger and enormous files of codes especially written by somebody else.” At least, it was what I used to think before this summer, but my internship has helped me overcome the last of the three stated fear triggers, especially the urcpp project developed by Austen and Leslie two years ago. Since I was waiting for another round of my add-on feedback from the google team, and as well completed the suggested site modifications from last week meeting, I decided that I would help Austen with one of his side projects. He offered his URCPP project which instantly exposed me to my third fear, because apparently the files contain enormous lines of codes. It is a project where faculties digitally uploaded their research proposals with all the required information such as students, funding, location, etc. to the database. He did a good job at explaining his codes and the areas to be debugged to get the desired outputs on the site, so I felt more relaxed and confident as I thoroughly looked into the files.

Dr. Heggen and Austen were very helpful in the process, and at the end of the day, I finished the debugging process. The site was up running again. So, I shifted my gears toward another project “Faculty Annual Report” and we started discussing about the similar processes in four or five projects that our peers have been working on. The day was closing in, and I got to figure out the stuff that I needed to do to initiate the project.

Tenth Week – Front Page, Presentations and Space Discussion (7/22/2015)

The research URCPP students from computer science department presented their work today in Danforth Technology building. Their topics were mainly focused on artificial intelligence, computer vision and sustainability which I found quite engaging and enlightening. After their presentations, we had an approximately two-hour meeting involving the technology team and computer science team emphasizing on how we can improve our experience with work space to be more comfortable and welcoming. We also focused on the assigned names of the spaces related with the two departments (technology department and computer science department) which are located in the same building because the names casually assigned can become a custom in the future, and can possibly lead to exclusion and authorization issues. It was an interesting discussion where I got the opportunity to hear different ideas and perspectives from co-workers sharing the same building.

Regarding my work, I received the feedback regarding the sheet add-on from the google team, and it seemed that they cannot see the menus required to execute my program. I have tried looking into it several times, but the problem cannot be detected on my part. Attached below is the screenshot of the menu “Data Separation” and its sub menus “RowToSheet” and “ColumnToSheet”. Pressing either “RowToSheet” or “ColumnToSheet” will generate new sheets by replicating the parent sheet either row by row or column by column.Screenshot from 2015-07-22 17:48:41Nonetheless, google team cannot access my add-on like I do. Below is the snipped section of the feedback from google team addressing this issue. The major challenge for me in fixing this issue is not being able to detect the problem with my tests in the first place. I will have to research more on it ,and also delve into all the details of the submitted application files to see if the files were correctly updated or not.

Selection_001

On the other hand, I kept working on the front page of the website to obtain a professional and compelling outlook. Since I personally designed all the buttons on my own, the last thing I desired is a shabby first impression as one tries to access the portal.

Selection_003
Previous Front Page
Selection_002
Current Front Page

Above are two versions of the front page: the previous one and the current one. The later is preferred over the former for its consistent transparent background and space, alignment of captions, and adjusted icon proportions. At the end of the day, I achieved a different frontal look which I find more professional and tidy.

Tenth Week – Excel Add-on Results and Republishment (7/20/2015)

A few days after submitting my excel add-on to the google team, I received the results and feedbacks regarding my work. They find my add-on interesting, and they want me to make a few changes before publishing it in the google store. The major modifications are to add the help menu, and upload promotional tile images. The republishing process is as tricky as the initial publishing process, because I constantly received error messages indicating that I still had to accept the terms and services, but I was redirected to a different location every time I attempted to get to that destination. I was required to upload an application zip file containing  a “manifest.json” which includes the information regarding the add-on in programming format. After working on all the suggestions, I resubmitted my work, and geared back to site modifications.

As I was tackling the site title to be linked to the official berea sustainability website, I accidentally broke the whole site today again by including an incorrect syntax in theme-functions.php. Dr. Heggen and Dr. Jadud helped me debug the program, and we found that the error stemmed from using a different single quote than the rest in the file. So, we had to copy paste that symbol and embed our link in the appropriate line of the functions. The same thing happened last friday when I tried to add a hyperlink to the site title, and the site broke down. Dr. Jadud and Matt helped me recover the site by granting me access to the wordpress host files with filezilla. Luckily, I was lucidly aware of how and where I broke it, so it was an easy fix. The only challenge was that my account was denied access because my password contained illegal characters such as %,#. So, Matt created another account for me to access the host files.

My epiphany as of these days was the realization of how important the syntax is in programming, because a simple semicolon or an extra letter can entirely break down the site in one click, and possibly cause a fledgling programmer a minor heart attack.

Ninth Week – Excel Add-on Publishing Attempts and WordPress Modifications (7/16/2015)

The meeting with Ms. Pauly yesterday was encouraging.

Unlike the last meeting, I was not asked to change my workspace platform, but instead, she commended my work with the new wordpress site. There were some minor changes to be made in menu and items arrangement, term consistencies, and types of graph utilized. We discussed about the site modifications for an hour and a half, and a wonderful thing happened during that time frame; for I was offered a job to maintain the website for my remaining year at Berea College. Since I already have a primary labor position as a chemistry teaching assistant, I may be able to take it as my secondary labor position (0-5 hours) per week. I cherish that opportunity because I am devoted to all details of the website, especially those related with front-end, back-end, functionalities of data mapping and graph presentations.

I ran into a few more challenges as I worked on those modifications in the later half of the day. For example, the sub menus were cut off when their widths exceeded the internal page width, which I initially did not encounter before. One button from the front page had to be removed and I had to tackle designing and rearranging the odd pair number of buttons on the front page. I could not manually edit the space between the buttons because they were prone to get deformed in a different browser or on a device. Furthermore, the theme utilized for the website is user-friendly, but not tech-friendly in terms of programming so I have to explore more about it to embed an external link in the site title.

Moving onto the excel add-on, I managed to submit my work to the google team after a few hours of exploration and experimenting with the publishing process, and it was currently under review.

Today has been productive and satisfactory.

Ninth Week – Excel Add-on Enhancement (7/15/2015)

My excel add-on “Data Separation” has two major functions called RowToSheet and ColumnToSheet. The former generates new sheets for each row together with the header row. For example, imagine that the table below is the master sheet.

Sheet 0. Master Sheet

Month All Paper Cardboard Metal Glass Plastic/Cans
Jul, 2014 13294 6307 7882 0 577.5
Aug, 2014 7120 12444 6080 500 1000
Sep, 2014 8655 10923 5358 500 1519
Oct, 2014 10848 6748 812 670 1543

So, if we choose the menu “RowToColumn”, each row starting from “July, 2014” will be replicated to new sheets together with the header row, and the names of the sheet are assigned the month and the year. Technically, the cell in the first column in the chosen row becomes the name of the sheet for this function. In this example, four new sheets will be generated.

Sheet 1. “July, 14”

Month All Paper Cardboard Metal Glass Plastic/Cans
Jul, 14 13294 6307 7882 0 577.5

Sheet 2. “Aug, 14”

Month All Paper Cardboard Metal Glass Plastic/Cans
Aug, 14 7120 12444 6080 500 1000

Sheet 3. “Sep, 14”

Month All Paper Cardboard Metal Glass Plastic/Cans
Sep, 14 8655 10923 5358 500 1519

Sheet 4. “Oct, 14”

Month All Paper Cardboard Metal Glass Plastic/Cans
Oct, 14 10848 6748 812 670 1543

If the sheet already exists, the data will be cleared within that child sheet, and related data from master sheet will be imported. Only the master sheet needs to be modified. One inconvenient aspect of the initial design involved clicking the button “RowToSheet” in order for the changes to take effect in children sheets.

“ColumnToSheet” works similarly. The only difference is that it replicates the data from master sheet column by column to child sheets. For example, using the same master sheet as in Sheet 0, five child sheets will be generated because there are six columns, and the header column doesn’t need to have a separate sheet of its own. Instead it is copied to every child sheet. The title of the sheet is assigned the column header of the replicated column, i.e., technically, the name of the sheet is assigned the value from the cell in the first row in the chosen column.

From the example Sheet 0, these are the output sheets by applying “ColumnToSheet” in DataSeparation.

Sheet 1. “All Paper”

Month All Paper
Jul, 14 13294
Aug, 14 7120
Sep, 14 8655
Oct, 14 10848

Sheet 2. “Cardboard”

Month Cardboard
Jul, 14 6307
Aug, 14 12444
Sep, 14 10923
Oct, 14 6748

Sheet 3. “Metal”

Month Metal
Jul, 14 7882
Aug, 14 6080
Sep, 14 5358
Oct, 14 812

Sheet 4. “Glass”

Month Glass
Jul, 14 0
Aug, 14 500
Sep, 14 500
Oct, 14 670

Sheet 5. “Plastic/Cans”

Month Plastic/Cans
Jul, 14 577.5
Aug, 14 1000
Sep, 14 1519
Oct, 14 1543

After several modifications, the add-on has been improved further so that the parent sheet is directly connected to children sheets, thus the button doesn’t need to be clicked every time the data requires update. All the data is now automatically updated simply by modifying the parent sheet.

Ninth Week – Excel Add-on Completion (7/14/2015)

A week off from my internship was quite rewarding since I regained a sense of serenity apart from my work and academic life with two of my closest friends at a place I have long desired to be, while on the other hand, I had a chance to develop my photography skills. I might never have mentioned before that photography is one of my passions which I have been actively pursuing since 2013. Below are the links to some of my work together with one other photography partner: Arthuzi Photography (Flickr)WordPress LinkFacebook Link.

Now that I was back to work, I felt replenished to work on my uncompleted goal, excel add-on. The work space felt a little bigger than usual because some of the students have completed their eight-week research.

Regarding my excel add-on objective, I am determine to accomplish it, partly because it could be extremely beneficial to my project, and mainly because I want to test my limits and find out what level of a programmer I am. It was only about six months ago in the second semester of my junior year that I started learning to program and decided to become a computer scientist. I only have a year left in Berea College, and I want to finish my undergrad studies as an excellent student in both my majors: Chemistry and Computer Science. Firstly, I need to prove to myself that I am fit for graduate schools, and I want to be fully confident about my capabilities and my potential. For these reasons, I need to polish my skills and learn as much as possible by exploiting all the opportunities provided by my summer internship, and my academic college life. So, there was no wonder how I got consumed with the excitement of programming this add-on.

At the end of the day, I found myself smiling satisfactorily for I managed to finish my program which had been tested and verified to be working the way that I had wanted it to work. However, I still need to finalize it and figure out possibly better algorithms to enhance its functionalities.

Eighth Week – Connect Sheet & Contemplations (7/3/2015)

Today is the last day of my official internship period, which is probably why I find myself contemplating on my work of previous two months. In terms of technical experience, I commenced with the minimal level of skills and knowledge required to tackle the project on the first day of internship. I remember my wobbly confidence, and contrastingly, hopeful expectations and excitement at the imagination of being able to accomplish this project, and acquire the experience and skills demanded from it. in terms of technical experience, I have constructed the entire portal in two different platforms: wordpress and drupal, while at the same time, I have learned different languages of php, css and html. I familiarized myself with operating terminal and constructing drupal modules and organizations of the platform in general. Though it was not anything to be headily impressive about, I felt satisfied about completing the portal with wordpress in two days. Yet, it seemed that I unconsciously expected more of myself along the way, because today, I know for a fact that I would keep hanging onto this project until I finish constructing the excel add-on for effective data mapping in google drive, and until I am fully satisfied with every little aspect of the portal including visual appearance and internal data update and modification convenience, even if Ms. Pauly and Ms. Dangerfield are happy with it. Currently, regarding the excel add-on, I am in the process of designing an algorithm and debugging my program while learning Java on the other hand.

As of now, the portal has been linked to the parent Berea Office of Sustainability and released live. I manually designed the front page icons, but I am convinced that they can be perfected more. I might still keep working on it during my free time, but meanwhile, I will prioritize the excel add-on programming. Since I am going to be off for one week, I am convinced my brain will be replenished,( and hopefully not atrophied) and ready to get back to completing the dwelling task.

Eighth Week – WordPress Portal Completed (7/1/2015)

Strange but true.

The other day, I was determined to accomplish the migration of the entire portal from Drupal to WordPress within this official last week of my internship. However, it still surprised me a little bit when I actually completed building the whole portal in wordpress within two days. I was not exposed to wordpress web development before, but it seems that drupal has helped me to become more experienced with site building, module functions and data importing. The site can be accessed at the link here: Berea College Office of Sustainability.

I also managed to put up the slideshow of icons with internal links on all pages. I informed Ms. Pauly about this new site, and asked her for any changes and data that she would like to see on the site. Seconds after my email, I was contacted by Ms. Dangerfield, project associate of Berea College Office of Sustainability, to make a few changes on the previous drupal portal which she already linked to the parent Berea College website. Hence, I communicated with her about the new wordpress portal, and she efficiently responded to me with some suggested changes, which I complied promptly. 

The backend of data warehouse in wordpress can be imported directly from either google drive or local files. The advantage of syncing google spreadsheet and charts is that the data can be automatically updated if changes are to be made within google drive. For the local file option, updated files need to be uploaded to the server to implant any changes for the charts. This is a very convenient way of data importing, but the downside is that each chart needs to be generated from one spreadsheet. Therefore, a summary page will be meaningless if the chart is to generate data specifically for one month or for one type of recycle or solid waste. It implies that all data needs to be dispersed in spreadsheets in order to make individual graphs. Unless all data are connected to parent data which can be modified and updated, it will be cumbersome for the administrator to go in each sheet and modify the scattered spreadsheets. I can manually connect each cell of one sheet to the parent page, but it is tedious for me to repeat the same procedure for all the sheets. After consulting Dr. Heggen, he suggested that I could write a plug-in for google drive, which will generate a linked spreadsheet for each row within the parent page, which I believe could be of tremendous use for massive data.

I have decided to work on that during the rest of the week while at the same time working on the suggestions from Ms. Pauly and Ms. Dangerfield. Completing the wordpress portal in two days is encouraging and splendid, but on the other hand, it is a little gloomy to consider that it took me about two weeks to paddle within Drupal and figure out all that I needed to do. Apparently, in terms of site development, drupal is more arduous than wordpress, because one needs to be familiar with crucial concepts such as content types, views, fields, etc. I spent some time working on features such as slideshow for both platforms but they were removed to not distract the users from accessing the data. As I was surfing through drupal, I was also learning and attempting to develop a module on my own, which I later disregarded since I figured out an alternative way to achieve what I intended.

All I could say at the end of today was that my journeys with both drupal and wordpress have been most marvelous, and I appreciated their differences in terms of technical management and user-friendliness. Nonetheless, choosing one over another for my personal preference is yet a difficult decision to make.

Drupal Site

WordPress

Eighth Week – Web Development with WordPress (6/29/2015)

The first day of our last official week of internship – I was finishing up the last piece of feature on my drupal site, slideshow arrows. This morning, though I was nervously aware of the possibility that my site might not be approved because it is entirely built on drupal platform than on wordpress which is supported by Berea College, I was partly holding onto the slim chance of its approval; hence, I kept working on the slideshow feature until the meeting with Mr. Charlie. From this meeting, I learned the hard way that consistency is much appreciated, even at the sacrifice of an internist’s devoted work of seven weeks.

It has now become official that I, much to my dismay, have to reconstruct all my work of two-month internship on wordpress. The efficacy of the features within my drupal site were acknowledged, and my objective now is to implement the similar ones using wordpress platform. No one that I have consulted are wordpress experts, so I am behooved to figured things out and see for myself how much functionality is supported in wordpress. I was certainly not happy at the thought of my work being dumped this way, but there was something about this tribulation that kept me excited. In contrary to my previous assumptions, I am quite excited to switch to a new platform and learn about its features. I have wanted to personally experience both of them and compare, contrast their extensive functionalities as a web developer. I have enjoyed exploring one of the major web platforms, drupal, and now I am blessed with a chance to dive into the other rivaling major web platform, wordpress. I see this opportunity as a means to learning, collecting bits and bits of knowledge in my bucket of skills, and like a hopeful fool, I am eternally convinced that things will work out well in the end. I believe that the entire web transformation can be accomplished within this week, though I am eligible to work for four more extra weeks.

Mark helped me set up wordpress, and I started exploring its features, which I find very convenient and user friendly. Just like in drupal, wordpress functions with modules installed as plugins which are designed individually to achieve specific objectives.  I applied visualization module to sync google spreadsheet to display data in my preferred charts. I finished importing data on recycle & compost, and solid waste, and illustrating them in charts. Below is a screenshot of one of the graphs created on wordpress.

Chart on WordPress
Chart on WordPress

At the end of the day, I find myself more convinced about accomplishing all the work within this week.