Internship report


今回のインターンに参加してくれたsunltさんは普段、画像処理系(とりわけ比較的プアなハード上での)研究でC/C++を書かれているそうです。インターンでは世界中の友達と円滑にコミュニケーションを取るためのサービスを開発するという目標を立てました。facebook SDKやその認証系はおろかWeb系の開発言語自体に触れるが初めてという状態からのチャレンジでした。


This internship in KLab Inc. lasts for a week (11th~15th, Jun, 2012). I had a great time these days and learned a lot from my mentor Nakazawa-san. The following is my report.


I implemented a web application. (chattime:

Idea:  Many people are living abroad, with a lot overseas friends. When you want to chat with an overseas friend, you may need to check his/her local time so you could avoid disruption and find a suitable chat time period, and it could be better if you have some idea about what is happening around him/her.

Description:  This is a chat interface providing local time slots and local news based on facebook API. Log in by facebook account, a list of friends is shown including the following items: profile image, name, time slots, “chat” button, and local breaking news. An example of the screen shot of my account is shown in Fig.1.

Fig 1: An example of the screen shot of my account.

I use a default timetable to indicate the time period. This could give the user a general idea about the status of the friend, and a list of status is shown in Fig 2. A red cloud indicating bad time for chat, while green ones are noon or at-home which is good for chat. Stars indicating possible working periods.

Fig 2: List of status: sleeping (00:00~7:00), morning (7:00~11:00), noon (11:00~13:00), afternoon (13:00~17:00), evening (17:00~21:00) and at home (21:00~23:59).

When the user put the mouse onto the activated status mark, for instance, the red cloud in sleeping status, the specific local time of this friend will be shown, like the following.

Fig 3: The detail local time is shown.

Using the friends’ location information, the local news is retrieved using google local news search. The top 4 breaking news are listed with links.

If the “chat” button is clicked, the application will redirect to the user’s message site addressed to the chosen friend, shown as Fig. 4.

Fig 4: “chat” button will redirect to the facebook message page.


I got some basic idea about social game.

  1. The games are basically easy, especially for the ones as mobile application. It is easy for customers to know how to play and quickly get used to the game.
  2. The concept of “social” refers to sharing with friends. Connected by facebook accounts, the game and players’ progress could be acknowledged by their friends. It could be played alone but also with different customers, for example, to complete a joint task, or to play the game interactively mimicking real life (trading commodity, sending presents, and etc.).
  3. What make a game last longer? I guess a novel story with proper length and large developing possibilities.
  4. What make a game attracting people? I guess it comes from the needs of cooperation and competition.

I got familiar with the facebook API, and xampp.

I mainly learned PHP languages, along with basic html and java.

  1. Use facebook heroku toolkit to build a basic version of application.
  2. Find the documents of the objects and methods in facebook API.
  3. Extract friends’ location using checkins information.
  4. Use the service of geonames to get the local time.
  5. Use the message function of facebook as chat button.
  6. Use google local news search, and display the local news.

To be complete

As time is so limited, there are several points left uncompleted.

1.  The timetable to decide friend’s status could be flexible and allow user modifications. Then every friend may have their unique timetable. Local festival or holiday could be added to the timetable.

2. Redirect back to the main friendlist after clicking the “chat” button. Chat function could be converted into separate popup window. But as facebook development tools default requires attaching url with messages which is not friendly, some other techniques are in need.

3.  The local news could be improved to be more local, for example, news about their living city. Because the country news may be too broad, and many friends are in the same country, which will produce repeated news. Add local weather information for reference. Add checkbox to choose which kind of information is preferred.

4.  Add a button to show more friends. Add a scroll bar and make a better appearance.

5.  The loading speed of the application could be improved by memcached. Because the friends number could be large and there are great amount of information to deal with.


I am really grateful for Nakazawa-san’s help. When I came here, I have little knowledge about neither web application developments nor object-orientation programming languages. It is Nakazawa-san that taught me all these step by step. He is a very patient mentor who helped me debugging the programs and find solutions for my ideas. He also invited many executives to lunch, creating many opportunities for me to know more about KLab.

I also want to thank Shinomiya-san, who is in charge of this internship. It is very nice of her to introduce me around the company. Besides, I am glad to work with Kato-san, who is also joining the internship. His ideas and suggestions are very interesting and helpful.


以下に詳細を記入するか、アイコンをクリックしてログインしてください。 ロゴ アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中