Jason's Google Code-in Blog

GCI Organization: FOSSASIA

GCI Trip to San Francisco


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.

20 Jun 2016 #San Francisco #trip #Mountain View #California #Googleplex #Google

Grand Prize Winner


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.

9 Mar 2016 #gci #experience #wrap-up #open source #projects

REST API with Teapot


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.

24 Jan 2016 #smalltalk #pharo #teapot #squeak #rest #api #zinc

My Google Code-in Experience with FOSSASIA


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.

22 Jan 2016 #gci #experience #wrap-up #open source #projects

Creating a Web App with Zinc


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.

21 Jan 2016 #pharo #smalltalk #zinc #webserver

Deploy EngelSystem on Your Server


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.

16 Jan 2016 #linux #php #mysql #apache2 #engelsystem #lamp

Further Extend a User Management Application in Pharo


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.

15 Jan 2016 #pharo #smalltalk #user management #image

Using NodeJS for the First Time

other gci projects

NodeJS is an asyncronous event driven Javascript framework. The main feature that separates NodeJS from other systems is is its non reliance on threads and blocking code. NodeJS does not require that a certain process finishes before starting another one. This allows the application to move on instead of being stuck on long processes. My Opinions on NodeJS NodeJS was a load of fun to work with, and I really did enjoy using it.

12 Jan 2016 #NodeJS #javascript #server side #first #framework

Exploring Docker


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.

1 Jan 2016 #docker #virtual machine #linux #containers

Extend a User Management Application in Pharo


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.

29 Dec 2015 #pharo #smalltalk #user management #image