Summer 2016

  • August 19th 2016

  • Today was my last day as an Apprentice at Shodor. In the morning I decided that I would present my Forest Fire Model, my MySQL/PHP Calendar, my Library Project, and my PHP Random Hex Code Generator. I reviewed each of them to make sure everything was working. Those four models are some of my favorites in the Apprenticeship Program. My presentation went great, but I think that I could have elaborated on each model a bit more. Overall, it has been a great year as an apprentice.

  • August 18th 2016

  • Today morning I went a link Ernie provided to learn about responsive websites and complete the responsive webdesign project. In the project, we learned about using media queries to make the items on a page resize when the page is resized. I then went and added media query to my Prairie Ecosystem (Group Project 1) Project. Then three sections on that page will now resize according to the size of the user's browser. I also went through my blog and portfolio to make sure the links were working and up to date. I helped Israfil with his PHP Dice Roller program. He needed help using the GET function to get and store the user input.

  • August 17th 2016

  • Today I started working on my logo in Inkscape. I made a circle of the sun and the planets, then I added my name into the circle. After a while, I decided to try a new design, because I thought that having all the planets in a circle was too plain and complex for a logo. I started with a picture of the Earth and the Moon, then I designed a custom spaceship. I put my Chinese name on my spaceship, and I made it look like my spaceship had launched from earth and was traveling away. I also made it look like my nickname (Jim) was following my spaceship. My idea was that the a spaceship launching from the Earth would symbolize an exciting future. I then put my Gimp and Inkscape project onto my portfolio.

  • August 16th 2016

  • I continued working on the Gimp and Inkscape project. I traced the Nike, NBC, and Target logos in Inkscape, while in Gimp, I took a picture of a blimp and I duplicated the blimp multiple times. Then I created a blue background and drew some clouds with the paint tool. I also took a picture of the Taj Mahal and fireworks and combined them so it looked like there were fireworks behind the Taj Mahal. I also took a picture of a forest, and I used Gimp to make it look bleak and haunted. I helped Shawn with his PHP Calendar project. Ernie said that we needed to print out 12 months, instead of letting the user select which month they want to see.

  • August 15th 2016

  • Today I started changing Ernie's picture with Gimp. My plan was to get a picture of army soldiers and replace their faces with Ernie's face (Ernie Army will take over the world). I used to resize and move tool to move the cropped faces to the right place. I also used the pen tool to get rid of some jagged edges. Lastly, I used the blur tool to make the cropped areas look more natural. I helped Ben get the sum of two variables in an array. I also helped Shawn re-order different layers in InkScape. Hamza helped me learn how to use the tools in Gimp.

  • August 12th 2016

  • Today I worked on adding the AgentCubes and Vensim models that I worked on yesterday to my portfolio. I added a description to both of them. I also started reading the tutorials for Gimp and InkScape. This will help me when I start changing the provided pictures in the Gimp and InkScape project. In the afternoon, I helped clean up the Apprentice Lab because the parents of the Shodor Scholarship Program students came in at two o'clock to watch their presentations. The other apprentices and I watched the presentations as well. Their models improved a lot compared to when I was documenting yesterday morning. They perfected the models and added values like scent/smell so the agents would know where to go instead of moving randomly.

  • August 11th 2016

  • Today morning I was documenting the Shodor Scholarships Workshop. In the workshop, the students were collaborating in groups of two or three to write a High Level Design Document and create a working model. One group made a cop and robbers model to show the relationship between cops, robbers and vendors. Another group made a raspberry model to simulate the relationships between raspberries, rabbits, wolves, raspberry buyers, and raspberry sellers. A third group worked on creating a model to simulate the predator-prey relationship between plankton, fish, and sharks. The fourth group made a model to simulate an economy; the amount booty at sea affects the number of pirate ships that are spawned to collect the booty. In the afternoon, I worked on making a Vensim model for my Fashionista Phil project. Shawn showed me how to set the conversion rate as random variables, by using the Random Uniform function. I also helped Anagha make a counter in her "Levi and the Merry Makers" AgentCubes model to count the total number of a shape by using the agents_with_shape("") command.

  • August 10th 2016

  • Today morning I started working on the Fashionista Phil AgentCubes model. It is a simulation about color trends in an area. There will three types of agents: red shirts, green shirts, and blue shirts. When two agents touch, Person A will adopt Person B's color. Person A is more likely to adopt Person B's color if there are more agents with the same color as Person B. If too many agents have the same color, then some of the agents will 'become bored' of their current color and randomly switch to a different color. I helped Anagha with the Vensim on my model, she needed help with the variables and the rates. I also helped Varsha with her PHP Background Selector program; her program wasn't throwing up an error. In the end I discovered that she didn't open the php part of her code correctly. Shawn also helped me in AgentCubes with creating a counter to keep track of the different number of agents who wear each color shirt. Tomorrow I will start working on the Vensim part of the HLD. Albert wanted to use the Javascript library FullPage.js to make new website, so I showed him how to connect FullPage.js to his index.html page and how to customize it.

  • August 9th 2016

  • Today morning the person assigned to documentation wasn't here, so I subbed in for him. The workshop was the Shodor Scholars Program, and in the workshop today Joel was the instructor. He taught the students about designing websites using HTML. He explained how block elements, like the paragraph tag, would take up the entire width of the page. He also explained how inline elements, like anchor tags, would only take as much width as is required to display the tag. The students also learned about how head tags contain information for the page, whereas the body tag contains the content that views see in the window frame. Joel also talked about Header tags, the ID and Class attributes, and style sheets. After the morning break the original person assigned to documentation arrived, so I worked on the HLD from yesterday. Ernie made some comments on it, so I fixed some parts. In the afternoon, I was at reception. While there I found out that my partner for the HLD switch was Anagha. She chose the story Fashionista Phil.

  • August 8th 2016

  • Today was the start of Block 4. We were assigned a new project. Each of us would come up with a story or choose a story provided to us. We would then use that story to create a High Level Design Document. We would then have Ernie check it, and he would distribute the HLDs to other people. Our next job would be to use an HLD that was created by another person to design a system or agent model. We would not be allowed to deviate from the HLD and any changes would have to be approved by the person who wrote the HLD. I created and finished my HLD today, tomorrow I should receive someone else's HLD and use it to create a model. Today I helped Ben create an HTML form to allow his PHP program to store values that the user inputted in variables. I also helped Hamza with creating a Cookie in his PHP Background Selector program to store the user selection. I also helped him with linking a PHP file to a XML file in his PHP XML Blog program.

  • August 5th 2016

  • In the morning I helped Ben with his MySQL project. I taught him how to take the fields from his MySQL table and display them in an HTML table. I also helped Ben with making a PHP form to take user input and store it in a variable. Levi also came and explained how we could apply for intership at Shodor. There were also five presentations today. The people who's last day at Shodor was today had to present four or five of their favorite projects. Most of them presented their MySQL/PHP project, a Vensim project, and an AgentCubes project. I will have to do a similar presentation in two weeks, on my last day at Shodor. After the Apprentice presentations, we watched presentations of the projects made by the students in the Shodor Scholarship Program. They made models based on disease, civilizations, and the game Pokemon Go.

  • August 4th 2016

  • In the morning I decided to use the non-FullPage.js version of my website. I think that it looks a bit better. I still have the FullPage.js version, I moved it into another folder. The FullPage.js version of my website is what I did for the library project, since FullPage.js is a Javascript library. Today I helped Akash with his MySQL/PHP Calendar. He had some trouble with his 'view days with a certain task' button. He used isset() instead of !empty(). isset() worked even if there was a blank space in the form, while !empty() would not. My website had some issues with centering the text, and Shawn helped me center everything by changing the margins in css.

  • August 3rd 2016

  • Today I added some features to my new website. I added some css that would allow the content on my website to resize then the webpage is resized. I helped Shawn with his website. He was having some trouble getting the z-index css command to work. The z-index defines the stacking of an element, or the order of importance when the webpage is loaded. In the afternoon, a previous staff member who now works with resumes came in today to help us write a resume. She provided us with a template we could use. I added my Shodor Apprenticeship and the things I learned and worked on here to my resume. I also added my current high school, and an overall summary to my resume.

  • August 2nd 2016

  • In the morning I started working on researching a Javascript library. I wanted to improve my website even further, so I picked a library that would help me make improvements on my website. I chose fullPage.js, a jQuery based library that would fullscreen scrolling websites. I put my about me, blog, portfolio, and resources pages in vertical slides, and each blog and portfolio entry would be in horizontal slides. I helped Shawn with his website. He wanted to use animate.css to add animations to some of the text on his webpage. I also helped Ben with his PHP Dice Roller program. He needed helped with making his program print the results of his dice rolls. I also helped Hamza with his Dice Roller program; he needed help creating a form to let the user input the number of rolls.

  • August 1st 2016

  • In the morning Ernie introduced us to what we would be working on this week. The first thing we had to work on was to learn about form validation and add it to our php projects that had input boxes. This would insure that people would not be able to input code and mess up my programs. I had some trouble getting the form validation to work, but Shawn and Nick helped me a little and shortly after lunch I finished it. The second thing we had to do was to research a Javascript, PHP, or CSS library and either use it in one of our existing projects, or make a new project using that library. I am thinking about using a PHP library to add more functions to my MySQL/PHP Calendar project. Today I also made some changes to my portfolio in my website. I added a small picture to each item, so the user can see the project (or get a small preview) without clicking on the link.

  • July 29th 2016

  • In the morning I reviewed my two Interactivate Applets. All of the apprentices that were assigned this project then presented their applets. I feel like my presentation went ok. I think my presentation was a little short, since the applets I chose, Pattern Generator and Sequencer were very basic and self explanatory. Then we, the apprentices, watched the Advanced Programming Concepts workshop students present their projects. One student made a model that simulated the spread of a disease in a population. Two other students were partners, and they use Javascript, HTMl, and css to make a pacman game. In the afternoon, I was at the reception desk. While there, I added some finished touches to my new website, since I had finished all my projects that were assigned this week.

  • July 28th 2016

  • In the morning I was documenting the Advanced Programing Concepts workshop from 9:00am to 12:00pm. The workshop students worked on their Javascript project. I overhead Ernie in the other room talk about our Applet project. We will teach the class our two applets tomorrow. The workshop students also learned about the redraw function, which forces the page to reload. They also learned about using for loops or while loops to loop through and check each value of an array. One workshop student made a disease model, while another one made a Pacman game. This afternoon I reviewed the two applets that I will teach to the class tomorrow. I also improved my website. There is now a hand pointing to the icon of the page you are currently on.

  • July 27th 2016

  • In the morning I worked on my Website HLD. I decided that I wanted my new website to be simple and easy to use. It would contain much of the same information as my old website (blog, portfolio, etc). Today I helped Shawn with his Calendar project. His GET form was not saving the value into the url. I also tried to help him create a cookie to save the user input, but the cookie did not work. In the afternoon, I worked on creating my new website. I chose a new color scheme, and I put the links to my blog and portfolio at the top of the page, in clickable icons. I finished my new website at home.

  • July 26th 2016

  • Today morning I started working on my Applets project. I reviewed what both of the Applets that I chose were used for. The Pattern Generator creates a random incomplete pattern and lets the user complete the rest of the pattern. The Sequencer allows the user to create their own number pattern by inputting the start number, and what number the start number should be multiplied/divided and/or added/subtracted by each time. I also helped Adithi with the css on her website. I also started on the HLD for the design of my new website. Later, in the afternoon, I helped Shawn with his MySQL/PHP Calendar project. On my MySQL/PHP Calendar project, I also decided to allow the user to select the year; Albert helped me with the PHP date() function.

  • July 25th 2016

  • In the morning Ernie introduced us to a new project. We were to pick two applets from Shodor Interactivate and learn about them. On Thursday or Friday, we will teach the other apprentices about our two applets. This project should help us learn how to teach others, a skill that we will use if we continue as interns. Today, I added some functions to my MySQL/PHP Calendar. I added some code that would stop the program if the user inputs an invalid month. Otherwise, I am finished with my MySQL/PHP Calendar project. I also helped Shawn with making his PHP delete a row from his MySQL table. I also helped Akash make his Calendar display certain events from his MySQL table when the user clicks on certain days.

  • July 22nd 2016

  • In the morning we used an applet to simulate the buoyancy of an object. An object can float when their density is less than the density of the water. If the density of the object goes up past the density of water, then the object sinks. This is what allows certain objects to float. Our experiment was to get into groups. Each group would have $1000 dollars to buy certain materials (cardboard, tape, styrofoam cups, etc.) to make a miniature ship that could hold the most marbles. My partner was Nick. We bought seven cups and 15 inches of duct tape, for $470. We put four cups facing up, and three cups upside down, and we taped them together. Our idea was to use the four cups facing up to hold the marbles. Then the three cups that were facing down would hold air and keep the ship from sinking from the weight of the marbles. We tried to predict how many marbles our ship could hold, but we could not calculate the effect that the trapped air inside our cups would have. We predicted that our ship could hold 200 marbles. In the end our ship held 400 marbles (all the marbles that were available). Since our prediction was not the most accurate one, we did not win. I have done all of the Engineering things that we did this week, since I attended the Explorations in Engineering workshop last year. In the afternoon, I was at the reception desk. I finished my MySQL/PHP Calendar project, and I added it to my portfolio.

  • July 21st 2016

  • In the morning we used plastic straws and pipe cleaners to build a structure. Our job was to place a cup on the structure and see which structure could hold the most marbles without toppling. My partner was Mikayla. We built a triangular pyramid. Our structure got in 2nd place, but our structure was able to hold the most marbles (168 marbles). The group in 1st place held less marbles, but they had a taller structure, so they had more points (points = marbles * height). In the afternoon I worked on my MySQL and PHP Calendar project. I added features so that the user could click on a day and it would show them the event on that day. The user can also add a task directly to the MySQL table. The user can also view all the days with a certain task. Tomorrow, I hope to finish my Calendar project.

  • July 20th 2016

  • In the morning we worked on creating structures with Legos to see which ones stood and which ones toppled. The ones with their center of mass passing through the base tended to stand. We also used an applet to simulate the trusses in a bridge. Our job was to use a certain amount of nodes and members to hold a predetermined amount of weight with the least strain on our trusses as possible. I won the competition, with my biggest number being 29. In the afternoon, Keith helped us set up our PageRender pages. After that I worked on the calendar project. I tried to make the events for each day show up when the user clicks on the day in the calendar, but it is not working at the moment.

  • July 19th 2016

  • In the morning we worked on electrical circuits. We were given a small circuit board with a 9-volt battery, capacitors, resistors, LEDs, and wires. We used an applet that simulated electrical circuits. On the applet, we built a simple loop with a battery that powered an LED light. Then we built the same thing using our real materials. Then, we used a 555 timer chip with a capacitor to make a circuit that had an LED light that flashed on when the capacitor emptied, and off when the capacitor was refilling. Next, we used added another LED light that flashed on when the other LED was off. We got to keep our circuits. Next, Ernie updated our MySQL and PHP project. We could still do the calendar project, but we were to have a MySQl table with at least six fields. We also had to use PHP to allow the user to add more items to the MySQL table. In the afternoon, I documented the Web Design workshop. They learned how to make divs in html and set the background image of a page using css.

  • July 18th 2016

  • Today morning we did a project from the Explorations in Engineering workshop. We got into groups of three. Albert and Shawn were in my group. We put a chair on a table and put a half tube running down it as a ramp. Our job was to measure the ramp and use a formula to calculate how high we had to roll the marble down to land at a certain spot. This afternoon we learned how to use PHP to connect to a MySQL database and display the fields of a table in HTML. I ran into no errors while writing the program. Tomorrow we should continue testing our marble ramp.

  • July 15th 2016

  • Today I worked on the MySQL calendar project. I created a table in MySQL with dates of important holidays. I was able to connect the table to a PHP file. The next thing I have to do is to make the calendar show the holidays. I also learned about how Subversion can keep track of your files and the changes you made. This makes it easier to revert to an older version something goes wrong. Subversion can also keep older versions of web pages and documentation. After the afternoon break, we acted as the jury in the Forensics workshop. They were conducting a 'fake' trial to determine who was the culprit of a particular crime.

  • July 14th 2016

  • Today, the first thing I did was write a report of the Explorations in Engineering workshop that I documented yesterday. I asked my peers about what they learned yesterday afternoon, and they said they learned about MySQL tables. Then, I added my completed PHP programs into my portfolio. Then, because I was finished with my PHP project, I worked on my website. I tried using a different color scheme, but it did not look good. I then simplified the navigation menu. I also linked all of my PHP programs onto one page. We were then assigned a project. We have to use PHP and mysql to make a program that has a calendar with events on it.

  • July 13th 2016

  • In the morning, we worked on our PHP projects. I made a program that would take an inputted first and last name, and it would switch the first letters of both names. For example, the name Dane Joe would become Jane Doe. Next, I helped Albert with making a cookie in his program that would allow the user to select a background color. After that, Albert helped me with creating a program that would display blog entries from an XML file. I had trouble linking the XML file to the PHP file. After lunch, I was assigned to the job of documenting the Explorations in Engineering workshop. I took notes and took pictures about what the workshop students were learning. They built and ramp and rolled a marble down and used a formula to try and predict where the marble would land. Formulas that can predict trajectories are used in many real life situations such as space travel and military operations.

  • July 12th 2016

  • Today, as part of our "Other Duties as Assigned", I was at the front desk. There were no calls, so I worked on my php project until lunch. I worked on a program that could roll dice and show you the sum of each output. After lunch, I continued to work on my project. I made a PHP file that could dynamically load content. I used to $_GET variable to link to each page that I wanted to show. I also made a program that can let the user select the background of the page. I added a cookie that would save their selection and show the background they selected when they reload the page.

  • July 11th 2016

  • Today was the first day of Summer Block 2. I was not able to attend Block 1. We were introduced to the server side language PHP. We learned about variables, arrays, loops, about how concatenating can combine two arguments, and about writing if/else conditional statements. We learned about how PHP could generate HTML by using the echo tag. After we were introduced to PHP, we were assigned five exercises to practice what we learned. I created loops that could count to certain numbers while skipping the odds or skipping certain numbers. While trying to put the results from the loop into a table, Albert helped me with some of the code. After lunch, we were given a project with many different exercises to complete. With some help from an intern (I'll add his name later), I was able to make a function that could let the user type in a month. The function would then take the user input and generate a calendar for that month.


Spring 2016

  • April 16th 2016

  • Today was the last class of the Spring Module. We continued to learn about parallel computing. We ran bccd on each of our computers. Every computer acted as a node in a cluster. We used some basic Linx to combile and run a model that showed an expanding galaxy. When we increased the number of stars, the model ran slower because we were only running it on our own computer. We then linked all of our nodes together and ran the model. We could put more stars and run the model faster since we had multiple nodes working together to run the model.

  • April 9th 2016

  • Today we learned about parallel computing. Dr. Panoff gave us a lesson talking about parallel interactions in nature; how many different life 'functions' can at the same time. We learned about the difference between Single Instruction Multiple Data and Multiple Instruction Multiple Data. We also learned about the different supercomputers in use today.

  • April 2nd 2016

  • Today was presentation day. We had until 12:30pm to finish our Forest Fire project. My partner Nikkhil was not present today. I added a wind variable onto our model. The user can choose to have the wind blow from the North, East, South, or West. The wind affects which way the fire spreads from tree to tree. I presented the project by myself. I think the presentation went well. I got a lot of feedback of more variables I can add to my model. I can add a fire intensity; the stronger the fire is the farther and faster it spreads.

  • March 19th 2016

  • Today Nikkhil and I worked on our Forest Fire model together. We were able to get trees to catch on fire. Our fire can also spread from a burning tree to a healthy tree. We ran into a lot of errors today, but Ian and Ernie helped us when we needed help. Next class, we plan to improve our model so that once our trees burn for a certain amount of time, they turn black, to show that they have burned out. I really enjoyed succesfully making the fire spread from tree to tree after we had fixed our errors.

  • March 12th 2016

  • Today Ernie checked our High Level Design document. Nikkhil and I started on the code for our model. We created a website to display our model, and we also made a tree array to hold the details of all of our trees in our model. We created a loop for our program to create and display every tree in a random spot on our website. Next class, I hope that we are able to work on our model so that we can get fire to spread from tree to tree.

  • March 5th 2016

  • I came at 11am today because I had a test at Chinese School that I had to take. Ernie got me caught up with our new group project. My partner for this project is Nikkhil. Our project will be simulating a forest fire. We have to create a plan for our program, then we have to get it approved before we can start coding. So far, Nikkhil and I are almost done with the planning stage. Next class, we plan to start working on our website and the code.

  • Feb. 20th 2016

  • Today we expanded our knowledge Javascript. Aaron taught us about arrays, objects, and the canvas. We modified two programs. In a program where large fish ate small fish, I added a reset button. I also made an addiction function that could take two inputted numbers and add them together. Near the end of class, we practiced effective ways of commenting code, so that it will be easier for people to understand.

  • Feb. 13th 2016

  • Today we learned about if/else statements, for/while loops, and arrays. We worked on two Javascript functions: one program uses if/else statements to tell the user what letter grade he recieved and if he is eligible to vote. Another program using loops to be able to find the factorial of an inputted number.

  • Feb. 8th 2016

  • Today was our first class of 2016. We learned about Javascript conditionals, variables, and the "getElementById" command. We also made a function that can convert inches to centimeters.


Fall 2015

  • Dec. 19th 2015

  • Today everyone had three hours to work on completeing their project. Ernie helped us with our project website, and we added the links, downloads, and descriptions to each model. We also presented our project today. I think everything went well, but our Excel model would not download so we had to present our Excel model using our screenshots on our website.

  • Dec. 12th 2015

  • I was not able to attend today so I communicated with my partners of my group and I also worked on my part of the project (Vensim and AgentCubes) during the week.

  • Dec. 5th 2015

  • Today we received the instructions to our first group project. Each group had to choose a topic and create a High Level Design document, an AgentCubes, Excel, and Vensim models. I was decided to be in a group with Ben and Joseph. At first we were thinking about choosing the rise and fall of the economy as our topic, but we decided that modeling a predator vs. prey relationship suited us better. We create our High Level Design document for our project, and each of us got to work on our parts.

  • Nov. 21st 2015

  • In class today we learned how AgentCubesOnline worked, and how to create a simple sickness model. Since I had already learned the basics of Agent Modeling in the Shodor Scholars Program, I was able to expand my simulation. In addition to sick and healthy people, I added a doctor who could cure sick people, and a soldier who could kill sick people. In addition, I also helped my peers in my pod with if/else commands in their AgentCubes model.

  • Nov. 14th 2015

  • We learned about creating models in Vensim. Dr. Panoff walked us through the process of creating a model to simulate how sickness spreads. Near the end of class I added more funtions to my model, so it could count the number of dead and immune people. This class was mostly review for me since I already learned how to create models in a workshop.

  • Nov. 7th 2015

  • Today we learned about the different types of models that we can use. As a class, we used a Interactivate Fire Model. Each of us was assigned a burn probability and we ran through the model and averaged our results. Then we plotted all of our data onto a graph.

  • Oct. 24th 2015

  • Today everyone was allowed to bring their own laptop, because Joel walked us through how to access our public_html folder at home. That way, we could work on our websites or any future projects from home. Since I didn’t bring my own laptop today, I took notes instead.

  • Oct. 17th 2015

  • Today Dr. Panoff gave us an interesting lecture about how a lot of the sources in websites like google and Wikipedia are either misleading or wrong. Some citations say that a source says a certain fact, but when you check the source, the fact isn’t there. Other websites just source themselves, or their own database. I also started working on my personal website today. I studied the HTML tutorial and I typed the basic HTML for my website.

  • Oct. 10th 2015

  • Today we read the Apprentice Handbook together, and we introduced ourselves to every other apprentice. Dr. Panoff also explained how and why the work we do at Shodor affects people and organizations globally.