try! Swift Presentation Report

by LINE Engineer on 2016.4.28

Hello everyone, my name is Inami (@inamiy) and I’m an iOS software engineer at LINE.

A Swift developer conference titled “try! Swift” was recently held in Shibuya, Tokyo from March 2 to March 4. LINE was a gold sponsor of the event, which was a gathering of over 500 people (30% of which were from overseas). There were many female presenters in the event as well, making it one of the most diverse gathering of developers I’ve ever seen; the likes of which I haven’t seen in any Swift/iOS study group! I was offered a chance to present at the event about “Parser Combinator in Swift”, a functional programming method.
Presentation slides
Live tweets during the event

Me speaking in front of the audience

Read more

Open-sourcing Armeria

by LINE Engineer on 2016.4.14

Armeria is an asynchronous RPC/API client-server implementation built on top of Java 8 and Netty that went open-source last November under Apache License 2.0 by LINE Corporation. Its primary goal is to help engineers build high-performance asynchronous Thrift clients and servers that use HTTP/2 as a session layer protocol, although it is designed to be protocol-agnostic and highly extensible (for example, you can serve a directory of static files via HTTP/2 and run Java EE web applications).

In this post, I’d like to focus on the steps that were taken to open-source an internal project rather than the technical aspect. If you are interested in the technical details of Armeria, you might want to check out the following slides presented last February during the 14th LINE Developer Meetup:

Read more

Multi-Threaded Parallel Processing for Physics Simulation in Cocos2d-x

by LINE Engineer on 2016.1.27

Hello. My name is ST and I develop mobile games here at LINE. In this post I would like to talk about the multi-threaded parallel processing method we are using with Cocos2d-x, the leading mobile game engine. I will go into more detail about how we improved upon the existing single-thread structure and enhanced performance using multi-threaded physics calculation.

Multi-Threaded physics calculation parallel processing architecture

Before we move on to the multi-threaded physics calculation parallel processing structure, we should take a look at the existing single-thread Cocos2d-x update loop.

[Figure 1] Original Cocos2d-x update loop

Read more

LINE Developer Week 2015

by LINE Engineer on 2015.12.29

My name is Augustin Wang. I work for LINE Taiwan as an application analyst and an API developer. In November 2015, I experienced LINE Developer Week and cannot wait to share my wonderful memories in this post.

Arrival in Korea

What an exciting day! To start off, I could barely sleep because of the early flight we booked and because of my excitement from visiting Korea for the first time. After approximately one hour bus time from Incheon International Airport, we arrived at the Korea office around Seohyun station. There were so many cute decorations with LINE Friends figures and related items in the Korea office.

I met lots of colleagues from Japan and China. We talked to each other in different languages: Chinese, English, Japanese and Korean. There is absolutely no language barrier between LINE engineers!

LINE Developer Day

The most memorable event during the week was LINE Developer Day in Seoul. Hundreds of developers assembled to hear about the latest LINE trends. Let’s review and take a look at the slides from the sessions.

Read more

Results From the LINE Bug Bounty

by LINE Engineer on 2015.12.17

Preparing the Bug Bounty Program

Hello. I am MJ, a LINE security engineer.

In this post I would like to share the results of the 2015 LINE Bug Bounty (August 24-September 23). As our first ever bug bounty program, we are very pleased with how well the program came together.

The core objective of the program was to discover and fix potential vulnerabilities in our services so that our users can enjoy them safely. Several departments lent us a hand in preparing the program and we could not have done it without them.

What we needed the most during preparation was support from management and enough members to prepare the program. From what I have heard, most companies have difficulty securing a budget to have their own bug bounty programs. Luckily, management gave us their blessing through a large budget expenditure. It was fortunate that they understood the value of long-term stability over the possible losses that could result in the event of a security incident. The prize money for each vulnerability was calculated by their severity, so that participants who found the more critical vulnerabilities would receive higher rewards. The maximum amount that could be received was $20,000 USD.

Also, the development and customer service departments worked closely together to successfully run the program. The development department helped create the LINE Bug Bounty website where participants would submit their entries and the customer service department was in charge of handling any questions regarding the program.

Without all the cooperation from the various departments, the program would not have been a success.
Read more

New generation of safe messaging: “Letter Sealing”

by LINE Engineer on 2015.10.13

Hello, my name is JI and I am working at LINE as a security engineer.

People might have wondered how safe mobile applications are. Message security is surely something most of you have thought about before. As we are centered around mobile messaging, all the engineers at LINE do take extra care to make our app even safer. But when companies are asked about how safe their message transfer process actually is, not many mobile messaging app companies are able to clearly explain about their security.

Today, I proudly present the newest security feature called “Letter Sealing.” A new feature added in version 5.3.0 of LINE.

Safe delivery of messages

Since time immemorial, methods to transfer secrets between one another have existed, and were an important part of human history. People would whisper secrets in dark alleyways or sometimes even devise a code to prevent any potential eavesdroppers from understanding what they were saying.

However, these methods would only work if the speaker and listener were in close proximity. Without the advanced internet technology that lets us easily communicate long-distance, people in the past had to put their messages into envelopes and deliver them by conventional means. Only, there was one problem: the envelope could be intercepted during delivery and resealed once read, unbeknownst to the actual intended recipient. Even when messages were altered or falsified, the recipient had no way of knowing. You can imagine how difficult it must have been for a message to be sent and received safe and sound.

Read more

True Delete

by LINE Engineer on 2015.8.13

Hello, I am H2spice. I work in security development here at LINE.

This post will cover how your data can be leaked if your mobile device is stolen, and what we at LINE are doing to prevent that: a new feature called “True Delete.”

There are many instances where people lose their mobile devices, or leave their devices unattended in places where anyone can access them. Many serious problems may arise if someone else obtains your mobile device and gains access to the information inside. Devices like your smartphone contain information such as call records, messages, contacts, schedules, browsing history, navigational data, photos, memos and so on. Information leaks like this can lead to an invasion of your privacy, or a breach of confidential company information in some cases. There have been reports where thieves would steal mobile devices for this exact purpose. While our mobile devices bring us great convenience, one mistake and they can be used against you.

LINE has various features that can protect your privacy such as a Passcode Lock, data encryption, and Hidden Chat to name a few. Even with these features however, there is still some room for improvement. One limitation is due to how deleted data can be restored due to how “deletion” works in programming.
Read more