Trey Wiedmann's Portfolio Website

Blog

Last Day as an Apprentice

8/3/18

Today was my last day at Shodor working as an apprentice. In the morning, I made sure that my website was perfect enough to present to everyone. I fixed quite a few bugs and inconsistencies. After that, I practiced my presentation with some of the other apprentices to get some feedback.

After lunch, I got to present my website to all the apprentices and some of the staff. My presentation went fairly well, and I'm really proud of my website. I put a lot of work into all my projects, and I hope it shows. I learned a lot from the apprenticeship program, such as web design, modeling, graphic design, databases, and office ethics. I'm glad that I joined the apprenticeship program, and it's been an awesome year as one.

Website Rehaul

8/2/18

Today, I started rehauling my website design. I added the Bootstrap library to my website which makes it really simple to make my website responsive and mobile-friendly. I redesigned my index, and it looks a lot more professional now. Also, because most of my website is on a single page, I only had to edit that one page to make changes to my entire website.

Now that I have Bootstrap CSS on my website, it works on almost any device. Now I am making sure everything on my website works well and looks nice. Hopefully I can get everything ready so that I can present my website and my projects tomorrow. I am excited to share my projects with everyone. Some of my favorite include my Gimp and Inkscape designs, and my background selector.

Mock Interview

8/1/18

Today, I finished up my dice database project. I used PHP to query the database to display statistics about the database. I wrote some very long queries to accomplish this. For example, SQL has a built in average function, but no mode function, so I had to write extra SQL to find the mode of a dataset.

After that, I had my mock interview with Kristen. I was nervous at first, but as time went on I got less nervous. I was able to apply a lot of the things I learned during the interviewing skills presentation. I tried to keep eye contact without being awkward, and I was prepared to answer common questions. I also had questions that I had for them already written down on my notepad so that I was prepared. I think my interview went pretty well, but I always have room to improve.

Interview Skills

7/31/18

Today, I got a lot more work done on my database project. I created a webpage that displays your inputs to the database, and creates a table that displays everyone's inputs. This uses PHP to query the database, and then display the results in a table. I had to alter my website CSS a bit to add borders to my table.

After I worked on my database project, Jennifer presented about interviewing skills. I learned a lot from this presentation. One of the things that I learned is that you should send a thank you email or card after the interview to the interviewer. This shows that you are interested in the position and thankful for their time. I also got to practice my handshake, and I improved upon it. Tomorrow I have a mock interview and I am excited for it.

Implementing Planning

7/30/18

Today was my first day back, which means that I got to implement all the planning that I had done. I checked over my planning for my database to make sure it all made sense. Then I typed up the SQL queries to implement my planning and created the tables I needed. This was simple to do because I had already planned all my tables in my notebook.

After I implemented the tables, I started working on the webpages to interact with the database. First, I created an HTML form to take the input data. Once submitted, the input data is thoroughly sanitized to prevent any malicious code being executed in my database. Then, the data is added to the database and the user is redirected to another page that will eventually display the info in the database. This all uses PHP to handle the form input, sanitize it, and query the database using SQL queries.

More Planning

7/27/18

I was also absent this day. I was able to get some more planning done for my dice rolling project. Once I get back to Shodor I will be able to implement my database and start working on the website to input data and to display the database results. I will use PHP to connect to the mySQL database and query the database so the users can input data and see the data in the database.

Planning Things Out

7/26/18

I was absent this day. However, I still got some work done while away. I started doing the planning for my dice rolling database project. I brought my notebook and started working on the plan for all the tables in my database. This includes the tables to store names, colors, shoe sizes, shoe brands, and dice rolls.

Miscellaneous Tasks

7/25/18

I did a lot of miscellaneous work today. First I wrapped up the relational database example that we had started working together. Next, I worked on and finished the SQL syntax guide. This taught me a lot about SQL, which I am going to use in the dice rolling database project.

I also did a lot of website maintenance. Because I changed my website to embed PHP onto one page, I had to make sure all of my old projects were updated for this. I changed the old project such the Project Euler problem to embed into my website. The only projects that don't embed into my website are ones with their own dedicated website, or ones that link to Google Docs. This will make creating my final portfolio website a lot easier because I can change only one page and end up making that change for the entire website. This will make the CSS really easy to redesign.

More Relational Databases

7/24/18

Today, we continued with our learning about mySQL and databases. We started off by working as a group to plan out part of a relational database with multiple interconnected tables. Then we worked on our own to plan out of the rest of the database. Once we finished our plans, Ernie approved them and we started creating these databases. The database consisted of four tables, with three of the tables all connected to the fourth database that contained all the people.

After that, I worked on and finished most of my SQL syntax guide. I learned some helpful tools, such as how to join the info between multiple tables, and how to group information by different methods. Relational databases are a very helpful and intuitive way of storing data, and I can't wait to apply my knowledge to my projects. I heard that we will use databases to store dice roll data on our website, and I am excited to program this.

mySQL

7/23/18

Today, we had an introduction to mySQL. mySQL is a database management system that allows you to store information on a server. In a relational database, columns specify different fields, and rows represent entries into those fields. We learned how to use Sequel Pro to login to our databases, and how to create and store info in these databases. Then we started learning how to make queries to these databases using mySQL. We started filling out a syntax guide about mySQL.

Then we learned how to use mySQL to make queries to these databases. These queries are similar to both programming languages and spoken language; If you read the queries out loud they would almost sound like English, but they still use similar syntax to other programming languages. These queries are surprisingly intuitive and easy to write. Databases aren't as intimidating as I originally thought. I look forward to implementing databases on my portfolio website to make it more dynamic.

Final Day of Block Two

7/20/18

Today was the last day of summer block 2, so I finally wrapped up all of my projects and put them on my website. I did some quality assurance on my PHP projects, and then added them one by one to my portfolio. Because of how my website works, all I had to do was add a link to them to the list of projects, and when they are clicked on they are embedded into the template. This made it a lot easier to add them to my website. I also made sure that they all contained valid HTML.

After that, I wrapped up my resume. I am very happy with it, and it looks very professional. I made sure to use consistent formatting, visual clarity, and professional fonts. I am glad to be able to write Shodor down on my resume because it is such a great experience. Shodor has taught a lot of things, especially how to act professionally, and how to operate in a work environment. Being an apprentice is such a valuable experience.

Explorations in Engineering

7/19/18

This morning, we had a lesson about engineering to mix things up a bit. We learned how structures fall, how they stand up, and how this relates to center of mass. Then we learned about trusses, and compression and tension. We used this knowledge to create structures to hold up weight in a simulation. Then we used our knowledge in real life to build structures out of straws that held up cups of marbles. I partnered with Aneesh, and we were able to build the best structure by using lots of triangles.

After that, we got to work on our projects. I continued updating my website, and added all my PHP projects to it. These PHP projects are embedded into the page so that I don't have to rewrite the template for each projects. When I get to implement a new template for my updated portfolio website, it will be simple to just change the current template, which will update all of my website.

Projects and Updating my Website

7/18/18

Today I did a few various things. In the morning I worked on converting all my blog entries to XML code. Once I had all my blog entries rewritten with XML tags, I re-wrote my blog page for my website. Now, the blog part of my website simply parses all of the XML file, and iterates through all the data to display my blog entries. This allows me to keep the content in a separate file from the code for the blog page, which makes it a lot easier for me to write my blog entries. I used to have to go into the HTML for my blog and add onto that, but now I just add a new entry in my XML file.

I also started changing the structure of my website a bit. Instead of each file being a whole other HTML file with the template being copy and pasted into that HTML file, I only have one file with the template HTML code in it. Then, that one file loads in the content for the desired page that the user wants to visit through embedded PHP. This makes it so that every page will share the same template HTML and CSS, and when I create a new page I only have to write the content part, not the whole PHP.

Embedding with PHP

7/17/18

Today we learned more about PHP and displaying pages with PHP. We learned how to embed PHP and HTML to create dynamic webpages. This is similar to what we did yesterday, where we don't have to write as much HTML and instead call PHP functions that load in and embed HTML. This also makes it easier to display your projects because you don't have to rewrite the surrounding code, only the actual project.

After that, I started working on a few projects. I finally finished the entire syntax guide, which took a while. I also am done with about half of the PHP projects, and I've started on the rest. I'm looking forward to applying all the stuff I've learned about PHP to my new website when I finally create it.

Rendering with PHP

7/16/18

Today, I learned all about rendering pages with PHP. Basically, you can use PHP functions to generate the HTML code for you so that you don't have to write the HTML code every time you use it. This helps you follow the DRY (don't repeat yourself) principle. It's especially helpful when you are working with a template that you wan't to use across all webpages. This way, you can have the PHP generate the template every time, and you only have to write the content each time.

We used PHP page rendering to create a basic webpage with our basic coin flip demo on it. We used a PHP script to flip the coins and put the data in a table. Another page held the template for the website. Then we collected the coin flip table and the template and displayed them with PHP. Using this method, I could easily create another project page in only a few minutes. This is a lot quicker than having to copy and paste from template code every time I want to create a new page. I also worked on the PHP syntax guide and I am almost finished with it.

Dane Joe

7/13/18

Today I got a lot of work done on PHP projects. I used my knowledge of forms in multiple projects. This included the Dane Joe project, which switches the first letters of the first and last name of a person, as well as switches the last letters of both. I used forms to collect the inputted first and last names, and then validate the information. I also created a simulation that rolls pairs of dice and plots the sums in a small chart. I used forms to collect the amount of rolls that the user wants to do.

Besides the PHP projects, I also finished the Javascript syntax guide, and almost finished the syntax guide for PHP. I learned a lot about functions that I didn't know before, especially string functions. This knowledge of string functions helped me write the PHP code for the Dane Joe project. The Dane Joe project sounds simple, but requires a lot of string manipulation to get the desired end goal.

PHP Forms and Validation

7/12/18

Today, we furthered our knowledge of PHP scripting. We started off with a demonstration that showed us how to create HTML forms, and handle the inputs with PHP. We used this to handle the inputs of basic text and numbers. Then we learned how to validate the inputs. If you simply take the raw inputs, hackers can exploit this to execute malicious code on your website. Therefore you need to make sure that any weird or special characters are either removed or interpreted only as Strings.

After that, we got to work on our PHP projects. I finished the random hex color project, which generates a random hexadecimal color using a random number generator and an array. I also used my newly acquired knowledge of forms to add a new part to my coin flip model. Users can input a number to flip that many coins. After that, I did some more research about different Javascript and PHP syntaxes and Functions.

PHP and Resume Writing

7/11/18

Today, we got to start working on multiple PHP projects. We started off with a project about flipping coins. We used the random number function to generate random numbers, and equated those to coin flips. We then generated some statistics about the coin flips. I look forward to working on some of the other PHP projects, such as generating random hex colors or creating a calendar.

After that, we learned how to write professional resumes. We learned what we should put on our resumes, and what not to put on our resumes. We saw some great examples, and some terrible examples. Then we used a basic template to start writing our very own resumes. We made ours look as professional as possible, and learned different techniques to make our resumes look better. It is vital that your resume makes a great first impression, which is why it should look neat, organized, and easy to read.

Coding, and Engineering

7/10/18

Today I worked more on the programming syntax project. I used the Javascript development environment to write and test my example code and to learn how Javascript works. I learned a lot about functions and loops. I learned a new kind of loop called the "do while" loop, which runs the contents of the loops before it checks if the condition is true. I also learned about functions, such as how to use arguments and how to return things. Functions are very important to programming because they reduce the amount of code you need to write by a lot.

I also helped out with the engineering workshop today. The students were learning about bridges and other types of construction. Then they got to build towers out of straws and pins that held marbles. They learned about tension and compression, and how that affects the building. They also learned that triangles are a very strong and supportive shape for construction. The design that held the most marbles utilized almost exclusively triangles to support it.

Back in Action

7/9/18

Today was the first day of block 2 of my summer apprenticeship. We started off with an introduction for those who weren't here for block one of the apprenticeship. Then we jumped right into our work. We started learning more about programming concepts and some syntax. First, we set up a development environment for us to mess around with Javascript. Then we starting learning Javascript syntax and programming concepts. After that, we set up and environment to work with PHP. PHP is a scripting language like Javascript, but it is run on the server rather than the client.

I learned a lot about different operators today. For example, I learned new assignment operators such as "%=", and comparison operators such as "===" or "!==". I also learned a lot of PHP syntax. For example, variables must start with a "$". I'm excited to learn how to use PHP to make interactive webpages, and interact with servers and databases. I also look forward to researching a programming language of my own. There are lots of interesting programming languages in the world.

Final Day of the Block

6/29/18

Today was the final day of my first two weeks of working the summer as an apprentice. Overall, I think it was a good two weeks. I learned a lot about a lot of different topics. This includes Gimp, Inkscape, and responsive web design. Out of all these things, I think I may have enjoyed working with Gimp the most. I thought that I was a bad artist, but Gimp and Inkscape showed me that I am a better artist than I thought. I especially enjoyed editing photos with Gimp.

I was able to finish all of my projects on time, and without encountering too many errors or problems. I enjoyed the two weeks, and I think I am now acclimated to being an apprentice over the summer. I learned a lot about working at Shodor, such as doing other duties as assigned. I haven't gotten to document a workshop yet, but I will get to the first day of next block. I look forward to helping out with the workshops and doing other stuff around the office.

More Observation and Website Design

6/28/18

Today, I made some more observations about my agent and system models. I scaled my models up to include thousands of people, and down to only include a few dozen people. As long as the density of the people remained roughly the same, changing the scale didn't change much. However, if the density got lower then the disease spread slower, and if the density got higher the disease would spread faster. This means that disease spreads quicker in denser, urban areas. On the other hand, it spreads slower in isolated, rural areas.

After that, I started working on the HLD for my new portfolio website. I made a design in Inkscape to plan out my website, and I think the layout will work well. I look forward to implementing my planning into a new website. I also hope I can make my website more dynamic with the use of scripts and maybe some libraries. I also look forward to creating the CSS for the website and making the website look nice. I hope that my website will look professional and will create a good impression on everyone that visits it.

Making Observations

6/27/18

Today, I spent most of my time playing with my models, taking screenshots, and making observations. I ran through multiple scenarios in my Agent Cubes, and screenshot some of the most interesting ones. I played around with clinic placement, geographical barriers, and vaccination percent. When the vaccination percent was very high, most of the unvaccinated people would still survive to due the herd immunity. However, as I started lowering the vaccination percentage, more and more of the vulnerable people started getting infected and dying. This shows the importance of vaccination and why everyone that can get vaccinated should get vaccinated.

One of the most interesting observations I made was that if I separated populations with a few geographic barriers, and then put clinics in the places where the populations were connected, it was almost impossible for the disease to spread from one population to another. If a sick agent tried to bring the disease from one population to another, it would get cured by the clinic before it could spread the disease. This could be applied to real life. People could be recommended or required to be up to date on their vaccinations and free of dangerous diseases before they can travel. This would be inconvenient, but in a scenario where there is a outbreak of a dangerous disease, it may be necessary.

Responsive Web Design

6/26/18

Today, I learned about responsive web design. Responsive websites are websites that can chance to fit the size of the device that the website is being viewed on. This is a very important concept to learn because mobile phones are becoming more and more popular as devices for browsing the web. Making sure your website will fit onto the screen of a mobile device is a tricky task, but is still very important. I followed along with a tutorial that taught me how to design a website that scales well, and changes to a smaller layout once the screen size gets too small. The website that I build by following along with the tutorial looked very nice, especially when the screen size is shrunken down. However, it did take a lot of time and a lot of CSS to get it to work.

I look forward to using some of the techniques that I learned in the tutorial on my own website. I started working on writing the HLD for my final portfolio website, and I hope I can make it look nice and responsive. Aside from working on the responsive website tutorial, I also finished up with the Gimp projects. I took some of the images I created with Inkscape and scaled them to sizes that are appropriate for the web. I've really enjoyed working with Gimp and Inkscape, and I hope I get to learn more about graphic design. When I create my final portfolio website, I hope that I can use some of the techniques I have learned so that I can make it look very nice.

Learning Gimp

6/25/18

Today, I learned a lot about how to use Gimp for photo editing. I started off by watching last year's video recording of the Gimp demo, where Ernie shows how to use Gimp to make a photo collage. More specifically, he shows how to make it look like turtles are flying in space, hence the name "cosmic turtles". I learned about how all the different tools in Gimp work and how to use them to edit photos and make photo collages with them.

First, I followed along with the tutorial to make the "cosmic turtles" photo collage. Then I made my own collage. I used a picture of someone using a pen to interact with a tablet, and replaced the pen with a photo of a lightsaber. After that, I used an old picture of Ernie and replaced Ernie's face with Aaron's face. Both of these took a lot of time to make, but I am pretty proud of the outcomes. After that, I started using Gimp to scale the images I made in Inkscape to sizes that are suitable for use on the web. Gimp is an extremely powerful tool that takes a lot of time to get used, but once you get used to it you can do almost anything you can imagine. My favorite thing to do with Gimp is to make humorous photo edits like the one I did with Aaron and Ernie.

An "Iconic" Day

6/22/18

Today, I got a lot more time to work on my designs and icons in Inkscape. I made a few more interesting designs to add to my website, and I think I'm almost done with all of the Inkscape projects for the current block. My favorite design that I made today is one where I combined a bunch of gradient effects to create an interesting effect. I put this on the letters of my name to make a cool logo. I also designed a favicon for my website. A favicon is an icon that is displayed in the favorites bar of your browser for your website, and also shows up on the tab name depending on the browser. It was tricky to design it, because it has to be an extremely small image. Some of the designs that I made looked nice, but were too hard to see once I scaled them down.

Besides that, Ernie gave a few demonstrations on certain topics. He showed us how to model diffusion in AgentCubes, and also how to implement hill-climbing in AgentCubes. Hill-climbing is when an Agent moves towards a certain direction based on the values of a certain variables. Basically, it follows the direction that has the highest value for that variable. You can use this to make your Agents move towards a certain location, or follow other Agents around.

Design Time

6/21/18

Today, I got to spend a lot of time working on designs in Inkscape. I really enjoy using Inkscape, especially when I can make whatever I want to make. The main reason that I enjoy Inkscape is because it lets me make interesting designs with interesting geometric shapes and patterns. Because the computer is calculating everything for me, all the shapes and patterns are perfectly drawn. Also, I don't have to worry about making mistakes because I can just undo them. I made few cool logos and designs, my favorite of which being my initials that are designed to look like a lightbulb. I also enjoyed working with the 3-dimensional shapes tool.

Besides working on Inkscape, I also spent a bit of time working on my modeling project. There were a few things that I needed to change about my AgentCubes, one of which was fixing the counter agent. I also worked on the Vensim model a bit. I am getting closer to finishing my modeling project; I only need to finish the Vensim and then put everything on my website. I look forward to getting a better chance to look at and analyze the data I collect from this modeling project. I think that I could learn a lot of interesting things from it.

Inkscape Think Tank

6/20/18

Today, I got to spend a lot of time working on my modeling project. I started implementing my planning today. I started off with implementing my AgentCubes story into a real AgentCubes simulation. It was relatively simple to do this because I had done so much planning. I also started implementing the Vensim model. I ran my AgentCubes model a few times, and I was able to make some interesting observations. I think the most notable thing that I learned was that geographical barriers have a much larger impact on the spread of disease than I thought. I ran a simulation where there were four separate populations that had some barriers between them, and two of the populations had outbreaks of the disease but the other two were mostly protected by geographical features that surrounded them.

After getting a lot of work done on my modeling, Ernie taught us how to use Inkscape to create vector graphics. He taught us how to use it to create basic shapes and images, and how to use those to create interesting pictures. I discovered that I have more artistic talent than I originally thought. I was able to make a very interesting design using some basic shapes and some text. One thing I noticed is that vector graphics are a lot more efficient when it comes to storing images than bitmap. The exported .png file of my design was roughly four times larger than the .svg file.

A Worthwhile Day

6/19/18

Today I got a lot of work done. I finished the high-level design document for my model, so once it gets approved I will be ready to implement my models in AgentCubes and Vensim. I made sure my planning was very thorough and thought out, so hopefully it will be simple to implement the models. I look forward to finishing the models so that I can make observations about what happens and explore why it happens. My topic is vaccination, which is extremely important to the health of everyone on Earth and is why I am passionate about my project.

Besides working on the modeling project, I also learned a bit about graphic design. I learned how to use Gimp to crop images, scale images, and change their quality. All of these are important when making sure images fit correctly on your website and don't take too long to load. Additionally, I learned more about ODAA (other duties as assigned). ODAA are other duties besides our projects that we have to fulfill. For example, that could mean helping clean up after the workshops, or documenting the workshops. Some of these duties aren't as exciting as others, but are still very important to maintaining Shodor. I look forward to helping out with these duties over the summer.

Starting Summer

6/18/18

Today was my first day of the summer working at Shodor. I can't wait for the rest of the summer. When we first came today, we learned about some of the other duties we will have over the summer. This includs working at the front desk, helping out with summer workshops, and cleaning up the office. I look forward to doing some of these things, especially helping out with the workshops. After that we got assigned our first project of the summer: a modeling project. We got to choose our own scenario to model, and I am excited about mine. I have worked on similar modeling projects during the Fall and Spring sessions, so I look forward to using my previous experience on this project.

My project is modeling the spread of a disease through a community, but I have included a variety of factors including immunity, vaccines, clinics, and geographical barriers. It will be interesting to see the effects of all these different factors on a traditional disease model. I am most excited to learn about how vaccines affect the spread of the disease. I did some research, and learned about herd immunity. Herd immunity is where members of a community that can't have immunity still get protection from a disease because other people in the community do have immunity. The people with immunity prevent the disease from getting spread to those without immunity. I think this project could teach us a lot about the real world, especially how refusing to get vaccinated when you are able to get vaccinated affects the overall health of a community.

Parallel is Swell

4/21/18

Today we continued our education about parallel computing. We finally got to run some real programs in parallel, and it was fascinating! We got to run a simulation of a galaxy in parallel. We used a virtual machine to run BCCD, which is an operating system that is used to teach parallel computing. We installed BCCD on the virtual machine, and then ran it. We ran the galaxy simulation a few times to see how it worked. Then we started to run it in parallel.

When we ran it in parallel, we set up a large cluster that included all of our computers. We did this by connecting them with ethernet cables. Then we synced up the computers, and ran the program. At first, we ran into some problems because some of the nodes on the cluster had gotten disconnected. However, we eventually fixed the problems and ran the simulation in parallel across the cluster. I didn't see much of a difference at first, but that must have been because everyone was using the cluster at the same time. However, when less people were running the simulation, I ran the simulation and it was a lot faster than normal. It was awesome to see parallel computing in Action.

Computing Cacophony

4/14/18

Today we continued learning about parallel computing. We used some more analogies to represent parallel computing. My favorite was when we got write instructions for how to do something, and then parallelize it. I wrote about how to eat corn on the cob, and my instructions were 54 steps long. I parallelized it for 3 workers, which made it a lot more efficient. Also, it made me really want to eat corn for some reason. Another activity we did was with separating a forest into different colors, representing how parallel computers divide up work. We learned about dependencies, and how they can really slow down the speed of a parallel computer if there are too many dependencies.

Essentially, dependencies are when the calculation of one thing requires the calculation of another thing on another core to finish first. This creates scenarios where one computer is waiting for another computer to finish its calculations, which causes idle time and slows down the entire system. Then, we learned about the uses of HPC (high performance computing). One of my favorite applications is using it for music and sound design. I enjoy creating and listening to music, and high performance computing could revolutionize the music and sound design industries. We also learned about Blue Waters, which is a research supercomputer. It sounds really interesting, and I hope that I get to work with a supercomputer like it at some point in my life.

Hi Ernie

4/7/18

Today, Seokyoung and I finally presented our project. We put a lot of effort into our project, and I think it showed in our presentation. We didn't have many major hiccups in our presentation. I also enjoyed watching other groups present their own projects. It was interesting to see how the different groups came up with different changes to the forest fire model, and how they tackled some of the common problems. There were some very unique ideas.

After the presentations were finished, Aaron started teaching us parallel computing. It is a very intriguing topic that I hope we get to learn more about. We learned that parallel computing can help a computer get work done faster, get more work done, or get work done better. He showed us some interesting analogies, and I hope that we get to do some parallel computing ourselves. As computers get more powerful, it will be important to know how to make multiple cores work in parallel to accomplish tasks. This will be especially important in large supercomputers, which contain tons of cores all working in parallel. Parallel computing is the future of both commercial and research computing.

Missing in Action

3/17/18

On 3/17/18 I was absent from Shodor because I was competing in a robotics competition. Fortunately, it was a work-day for our projects, and Seokyoung and I had already made a lot of progress on our project. Seokyoung woked on our project while I was at the competitions. Seokyoung was very good at communicating and gave me periodic updates on the status of our project. When I was available I made sure to communicate back with him.

When I was home, I made sure to communicate with Seokyoung and find out if I needed to work anymore on the project. Luckily, Seokyoung fixed some critical bugs while I was gone and made a lot of progress. There are only a few more things to wrap up, and we will be ready to present our project to the class. I am very proud of our project and I think that the modifications we made to the forest fire model were clever. I am also proud that we found ways to fix some common bugs when using AgentCube. I look forward to presenting to the other apprentices.

Insert Witty Blog Title

3/10/18

Today, Seokyoung and I nearly finished our forest fire project. First, we wrapped up our AgentCubes model with the help of Aaron. He showed us how we could fix a problem where the first agent was dying before it could even spread the fire. Now, agents will get a chance to spread their fire before dying. Then, we worked a lot on our website. We added some images, and make it look nice. We also got most of the text on the website done. I think our website will work well for our presentation. Then we decided to start on the javascript code for our Model.

We started off by looking at the documentation for the javascript library that Aaron had created. We taught ourselves how to use the library by looking at the example program, and by using Aaron's documentation. Then we started converting our AgentCubes model to javascript. It wasn't as challenging as we first thought. The library that Aaron created made everything a lot easier. However, when we went to insert a graph to the javascript page, our page stopped working. After speaking to Aaron and Ernie, we realized that we were using an outdate version of the library. We downloaded the new version of the library, and changed our code to match the new library. However, we are still experiencing some problems that we will need to fix before we present. Also, I couldn't think of a witty title for this blog.

Forest Fire Fun

3/3/18

Today, we started a project. The assignment is to create an AgentCubes model and javascript model that represent the spread of a forest fire. My partner is Seokyoung. We started off the day by adding our own twist to a basic story for forest fires. We decided that we are going to add wind to our model. Basically, the fire has a greater chance of spreading in the direction that the wind is blowing than spreading in the opposite direction. Then we started planning out our model. We wrote down the story that we came up with, and then listed all the agents we would need to make our model. Then we came up with our set of if/then statements for our model. It took a while to plan our model, but I think that it was worth the time.

Once we finished planning our model and getting approval from Aaron, we started implementing our model. It was really simple to convert the model from our plan to AgentCubes. We experienced an error with our simulation properties at first, but that was because I messed up the names that I gave them. We got to run our model, and I am happy to say that it ran as expected. All the time spent planning really did pay off. Also, Seokyoung finished the website that we will use to present our project. All we have left to do is convert our AgentCubes model to javascript code, and then present to the class. I am enjoying this project immensely!

Javascripting

2/17/18

Today, we furthered our understanding of programming concepts. It was intriguing! We learned how we can refactor programs, which means that we simplify them without changing the outcome of the program. We refactored our solution to problem 1 of the Euler Project. I was able to use "for" loops as well as other tricks in order to make the program easier to understand and more efficient. I learned a lot about Javascript, such as how you can use "i++" in order to increment the variable "i". Another exciting concept that we learned about was functions and how to use them. Functions allow you to write a block of code a single time, and then call it whenever you need to run that block of code. It helps you not repeat yourself, and simplifies your program a lot.

After that, we learned about how we can use libraries so that we don't have to write code that someone else has already written. Aaron showed us a library that he made that allows us to create models similar to AgentCubes, but using Javascript. The library creates a GUI very similar to AgentCubes, and that functions similarly to AgentCubes. However, we can use JavaScript to program it instead of the language that AgentCubes uses. I heard that we will get to work on a project using this library, and I am very excited to create a model using this library.

A Day of Arrays

2/10/18

Today we learned a ton about programming concepts. Aaron showed us a very interesting problem, and we slowly ran through how you would solve it without a computer, and then how you could simplify that using a computer. We learned all about loops, and how you can use them to eliminate repetition. We also learned more about "if" statements, including how you can use different boolean operators in order to control the logic. He showed us how we could simplify the pure calculations using loops, and walked us through the pseudocode that we would write in order to plan out our code. Then, he showed us an example of real code that would solve the problem. It was amazing how we could use coding to simplify such a complex problem into only about 12 lines of well thought-out code.

Also, we learned a lot about using arrays. Arrays are basically lists of elements that we can access using an index. This index is a number that we use to find a specific element in the array. We used arrays in our pseudocode in order to gather lists of all the multiples of 3 and 5. We then found a simpler solution that didn't use arrays at all, and instead used a single variable that represented the sum of all the multiples. However, we had to use the "else if" statement in order to make sure we didn't count any numbers twice. I thoroughly enjoyed solving the example problem, and I hope that we can learn more programming concepts so that I can solve more problems like it.

Conceptualizing Concepts

2/3/18

Today, we learned all about programming concepts. First, we learned about everything that you would need to code something. This includes a text editor, a computer, documentation, a language to program in, and most importantly, a problem to solve. We then learned the basic flow that you follow to code something. You edit the code, save it, and then run it to see what happens. This is similar to expectation, observation, and reflection. You code your program and expect what is going to happen. Then you save it, run it, and observe what happens. Finally, you reflect on what happened so that you can make more changes to your program. Next, we learned the basic parts of the computer, including the processor, the memory, the output devices, and the input devices.

Then we started using a programming language called javascript. We took an example program about particles bouncing around in a square, and used it to learn as much as we could about programming concepts. We learned about variables and variable types, such as booleans, strings, and numbers. We also learned about operators, and some of them were different than from math class. The modulus operator, %, is the same symbol as a percent sign, but means a completely different thing. I feel like I learned a ton today, and I feel more confident in my coding abilities. The best part was that most of these ideas apply to all programming languages, not just javascript, so it will be a lot easier to learn other languages.

More Presentations!

1/13/18

Today I had the honor of watching more presentations! I arrived in the morning, and met with Ernie to fill out a form that we needed to fill out. To do so, I got to look back at all the work I have done at Shodor so far. It was a lot more than I expected, and I was impressed with how much I learned in such a short period of time. After I finished filling out the form, I got to look at the HTML5 tutorial. I have learned a lot from it already, such as how to plan a website or how to validate HTML5 code. I look forward to finishing the rest of the tutorial and making more websites with HTML5.

After lunch, I got to watch two more apprentices present their projects. Both projects were very interesting. One modeled how contaminated water spreads and how it affects humans. This definitely has a real world impact and is important to learn about. The other presentation was about how different factors affect how many customers and sales a company has. This could be used by the marketing departments of companies to find out the optimal way to market their products to their customers. I enjoyed watching both presentations, and the results that they gathered were interesting. I look forward to coming back to Shodor in February!

Preparation and Presentation

12/16/17

Today was presentation day for our group projects! Albert and I had most of our project done by today, but we still had to work hard in order to finish our project by the time we presented. Thankfully, we got our project done by the end of the morning, and were prepared for our presentation. I am proud of all of our models, and I enjoyed creating them.

After lunch time, Albert and I volunteered to present first. In my opinion, presenting first is better because you can confront your nerves rather than worry about presenting the entire time. I think our presentation went well, despite the fact that we experienced some trouble with Vensim initially. After presenting all of our ideas to the other apprentices, I got to enjoy their presentations. One of my favorites was Rohan and Tyler's project, which was about a fungus that infects ants. I think that everyone did a great job on their projects, and I look forward to the next semester at Shodor.

Getting Stuff Done

12/9/17

I was particularly excited to come to Shodor today. We got the entirety of the day to work on our partner projects. Unfortunately, the start time was delayed by an hour due to the snow. Despite this, my partner Albert and I got a great amount of work done. Being able to work continuously for nearly the entire time we were at Shodor allowed us to stay very productive and focused.

First off, Albert and I worked on the first stage of our Vensim model. There were a few problems to overcome, but we figured them out quickly. After this, Albert started to work on our website for the project. The website looks great in my opinion. Meanwhile, I finished the second stage of our Vensim model. After this, we worked together and were able to finish the first stage of our AgentCubes model. We both felt extremely productive, and with a bit more work we will be able to completely finish our project. I look forward to completing it, and presenting all of our models to the class. I am very proud of our models, and think that they could have use in the real world.

A Productive Day

12/2/17

In the morning, Dr. Panoff gave us an insightful lecture about models, and gave us some new viewpoints on models. He talked to us about different ways to view science, such as the "Onion" view or the "Pearl" view. He also taught us how to convert ideas into parts of our models, which is very helpful for planning out models.

After that, we were assigned a group project. We get to work with a partner, and design models to represent a topic that we are interested in. I am very eager to work with my partner, Albert. I am very proud of our idea. For our model, we decided to model the population of China, and the trends of the growth. Then, we will create another model, where we implement the "one child policy". This policy restricts families to only having one child. We will then observe how this policy affects the growth of the population, and the overall population trend. We got a lot of work done on our project, and finished planning our models. We got them approved by Aaron as well. I felt very productive, and can't wait to work more on this project. I also look forward to presenting our ideas to our fellow apprentices, and getting some new feedback and insight.

Hooray for Predator-Prey!

11/18/17

Today, Dr. Panoff gave us a very in-depth understanding of models. We studied how the behaviour of a model and its change is related. If the change of a model is constant, the trend of the behaviour will be linear. If the change is linear, the behaviour will be quadratic. We learned about this in math class, but we didn't really learn how it tied into real life. It was interesting to see some real world applications.

After that, we used VenSim to model a predator-prey relationship. We had looked at this before in science class, and seeing the relationship from a modeling perspective was fascinating. Modifying the parameters and watching how the graph of the populations changed was intriguing. After this, we learned about AgentCubes. AgentCubes is another modeling program, but focuses more on individual behaviour rather than the behaviour of a whole group. I had learned how to use AgentCubes before, but I can always learn more and improve my models. We used AgentCubes to model the spread of a disease through a population, and counted the amount of sick people. The trend of the amount of sick people was similar to what I discovered using other modeling tools. AgentCubes is a really awesome tool and I can't wait to use it more!

Exploring Vensim

11/11/17

We were given a lot of information today! We started off by continuing our work with models. We discussed more about models, and the equation "HAVE=HAD+CHANGE". Dr. Panoff showed us how we can use this equation to model almost anything that is measurable. We used this formula, and modeled rabbit population in Excel. We started off with modeling the basic reproduction of rabbits, and even added in competition later on.

After modeling with Excel, we learned how to use another tool. This tool is called Vensim. I had worked with it a bit before, but learning about it was still fascinating. If you already have a story about your model, Vensim makes it extremely simple to translate your story into a model. We used this to create a similar model of rabbit population as before, but using Vensim was a lot simpler than using Excel, in my opinion. Vensim makes it really easy to add graphs to your model, and automatically adds in slider bars to control variables. After this, I started working on a model of how disease spreads through a population. The day was very-thought provoking, and I look forward to working more with Vensim.

Diffusion Confusion

11/4/17

Today was a crazy day. We started off with a discussion about modeling. We described what we think of when we think about models. Then we started using Excel again. This time, we learned about the RAND() function, which gives you a random number between 0 and 1. We used this to simulate coin flips, using IF statements to detect whether the flip was heads or tails. After that, we used this technique to model inheritance of certain genetics, which was awesome! Then we started learning about using circular references. Basically, circular references are where one things refers to something that refers back to the first thing. This creates an infinite loop, so we have to go step by step or else the program would never know when to stop. We used this technique to solve an equation that would otherwise require a lot of algebra to solve. This method of solving equations could be very useful when attempting to solve problems that would otherwise require a lot of work to solve. Then, we learned about diffusion. We modeled diffusion with the equation "I am equal to the average of my neighbors". We used diffusion to model the spread of heat through a trailer when heating it with a heating unit. This could definitely have real world applications besides heating, however, and I am inspired to learn more about diffusion. We also used colors as a way of measuring heat, and to be honest, it was mesmerizing just watching the colors spread when we ran our models. I hope that we get to use Excel even more!

Excelling in Excel

10/21/17

Today we learned more about computational thinking, and observations. Dr. Panoff gave us another interesting presentation to us, where he talked about how we represent things, and how we use REpresentation to solve problems. We also learned how to make Excel sheets dynamic with variables. I am proud that I figured out how to create a sheet where you can change variables using slider bars. I hope to learn more about Excel. I also look forward to completing the HTML research guide that we were giving so that I can create a real website. Dr. Panoff also showed us some cool magic tricks that work through the use of algorithms. I thought this was cool, and I want to figure out how the algorithm uses math to work. In Excel, we used cats and dogs to learn about variables. Seokyoung and I also met with our mentor Ernie, which was helpful. It was another great day at Shodor!

Expectation Affects Observation

10/14/17

Today was my second day as an apprentice at Shodor. We started off with a presentation by Ron about office ethics. I learned how we should dress and behave in the office. Ron provided great examples about how to, and how not to, behave in the office. Then, Dr. Panoff talked to us about how our expectations affect what we observe, and made us ask ourselves the question "How do I know?". This showed us that the world isn't always as what it seems. He gave us some problems for us to solve, and I am proud that I was able to solve the problems. After that, Ernie and Aaron got to talk to us, and we wrote blogs and reflections. I hope to learn more about HTML and CSS so that I can make this blog look a lot better. Aaron was very helpful when he answered some of the questions I had about making up work that I missed, and helped me set up my mailbox. Near the end of the day, I helped Seokyoung when he was having some trouble using Cyberduck with Atom.io. It was a great second day, and we got some new interesting assignments to work on.

First Day!

10/07/17

October 7th was my first day at Shodor! We started off with logging in to our accounts, and reading the Apprenticeship Handbook. I learned a lot about conduct in the work environment. Learning some of the "Shodorisms" was fun and interesting. Some of the ideas, such as "Other Duties as Assigned" make a lot of sense. After that, I had to leave Shodor early to go to a marching band competition. However, both Aaron and Joel were very helpful, and helped me make up the work that I missed. Right now, I am most proud of figuring out how to upload my blog page to Shodor using Cyberduck. It is cool that anyone can access this webpage now! I am hoping to learn more about making this webpage look awesome! I also helped some of my friends with logging into their accounts, such as my friend Albert. It was a good first day!