Day 1 My trip started out on June 12, 2016 by a morning flight to San Francisco. The Newark TSA line was actually shorter than expected! After some turbulence on the plane, I promptly arrived to San Francisco in the afternoon. My dad, mom, and I spent some time in the hotel and entered the welcome ceremony. I knew some of the people by name already since the GCI winners talked in a chat previous to the event.
This is just a short post to acknowledge that I have won one of 28 spots in the Google Code-in contest (more details here). I am extremely excited for the trip to Google Headquarters. I will attempt to continue contributing to FOSSASIA, but it is difficult due to time restraints with school and other activities. Once again, I thank all the people involved with helping me to build my knowledge and ultimately win the grand prize.
Today, my task was to write a REST API in Pharo using the Teapot framework. Teapot is a packaged designed to make making REST APIs with Pharo A LOT easier than writing a REST API from scratch in Zinc. For example, to output Hello World when a user navigates to /hello, this is all the code that is needed: Teapot on GET: '/welcome' -> 'Hello World!'; start. I wrote a package named UserAPI on SmallTalkHub that relies on the ContactManager package here to retrieve a list of users and display it as JSON in the browser after a user navigates to /users.
As we all know, Google Code-in 2015 is sadly coming to a close on January 25, 2016. In this blog post, I will describe my wonderful experience working with the awesome FOSSASIA community while learning tons of new stuff. I would like to thank the admins Mario Behling, Hong Phuc Dang, and Mohit Kanwal for making this FOSSASIA’s participation in GCI possible. I would also like to thank all the mentors for guidance and support.
Working with Zinc on Pharo Smalltalk to create a small web application was extremely different than creating a Web App with PHP, NodeJS, or even Python. Zinc is a framework in smalltalk that deals with the HTTP networking protocol using the reference platform of Pharo. I have followed this tutorial to develop a web app which allows the user to change the picture. I have to say that the process was a lot more complicated than I thought.
Today, I decided to set up Engelsystem on a clean server as a task for Google Code-in. My first impression when looking at the PHP application was that it is a well-built MVC app. It seems to have everything an event manager could want. When I looked at the README, all the instructions were in German, but I decided to follow the gist of it anyways. I will be telling you how to setup the application step by step in English on Ubuntu 14.04 LTS x64.
My task was to add a few more fields to the existing ConstantManager package and implement some type of checking mechanism to ensure the password fields match. I accomplished this by adding the instance variables and adding a few methods. I added a small check using if statements to check that the two passwords match. If the passwords do not match, an alert generated by UIManager pops up to warn the user.
I have always seen Docker being talked about in the Linux community and have seen it as one of the DigitalOcean quick app install options. I had no idea what it was and did not realize it’s function. Docker is actually a container technology designed to improve efficiency. Traditional virtual machines house their own guest operating system and libraries to run an application. As one can see, if there is a large number of virtual machines running their own operating system, the workflow is inefficient.
My task was to extend an address book located on this blog: http://magaloma.blogspot.de/2011/01/pharo-gui-with-polymorph.html. It featured adding, editing, and deleting a contact and only had two fields: first name and last name. I extended the applicatino by adding an email field after loading the program in Pharo 4.0. Gofer it squeaksource: 'Pharocasts'; package: 'ContactManager'; load. First, in the contact class, I added an instance variable called email. After that, I could add methods in the accessing protocol that returns the email and also add the email to be printed in the printOn method in the printing protocol.