Tag Archives: AdventCalendar

V8 Hidden class

As a frontend engineer, I feel I still need to know more about the structure of JavaScript and web browsers, in order to provide quality UX to our users. Thankfully, we are given an access to peak through JavaScript’s thoughts, thanks to Google and Mozilla for making their engine code available to public, along with nicely prepared documentation. The availability of various means for tracing and profiling code surely helps too.

LINE Animation Sticker Checker on Web browser

Great to meet you all. This is ha1f from LINE Fukuoka, I develop iOS apps at LINE. Back when I was as a part timer at LINE, I was involved in making in-house tools for LINE. To share a little bit of my background, I was hired as a part timer with a confirmed offer to a full time position. Anyway, today, I’d like to show you a tool I developed during my time as a part timer, the Animation Sticker Checker.

What is APNG?

Before we get into the details of the tool, let’s discover what APNG is. APNG (Animated Portable Network Graphics) is a specification for animated image, consisting of images each numbered with a sequence number. LINE animation stickers use APNG. Unlike GIF, APNG supports full color, alpha channel and has a high compression rate. APNG is compatible with PNG, and is displayed as a still image for image viewers that do not support APNG. If you have the right tool, you can convert a sequence of PNG files into an APNG file.

apng

Floor map management system on web, with Leaflet

LINE Japan’s office relocated in April, 2017 to JR Shinjuku Miraina Tower to accommodate its growing number of staff. At the time of relocation, the IT support department introduced a number of new systems into the company. One of those is the LINE Floor Map system which I am going to share with you in this post.

Background story

Before we moved to Shinjuku, we used to manage our floor map with Microsoft Excel. Here is a part of the excel file. (We’ve erased names off from the screenshot.)

The structure of the LINE LIVE’s encoder layer

On December 10th of 2017, we celebrated our second anniversary for LINE LIVE, our live streaming service. The service has been up and running ever since the launch with no trouble, thanks to the efforts put in by countless engineers at LINE. On this blog post, as a member of ITSC, a team at LINE running a global infrastructure system, I’d like to share with you some of decisions we had to make in the initial phase of designing and implementing the system. Back then, I had absolutely no experience in building or running a live media service.

Buffer overflow in PJSIP, a VoIP open source library

Hi all, I am Youngsung Kim (Facebook, Twitter) of the Application Security team at LINE and am in charge of evaluating security of LINE services. On this post, I’d like to share a vulnerability (CVE-2017-16872, AST-2017-009) of PJSIP, a VoIP open source library. PJSIP is a multimedia communication library based on the following standard protocols; SIP, SDP, RTP, STUN, TURN, and ICE. The Asterisk framework, widely used on IP-PBX and VoPI gateway has an SIP stack implemented based on PJSIP.

The cause of the vulnerability was due to incautiousness about sign extension for Integers in the process of converting signed int to unsigned long when handling client’s SIP requests on 64-bit environment. There was no window to report the security issue to the PJSIP development teams, so I made my report to the Asterisk’s security page. Afterwards, I’ve consulted with George Joseph, an engineer at Asterisk, and the patch (PJSIP patch, Asterisk patch) has been applied on the pjproject v2.7.1. I’d like to express my gratitude to George for processing the patch.

Easy code-splitting with grow-loader

Hi, I’m @sunderls from LINE MANGA team where I mostly write JavaScript. Did you know that you can read free Manga directly from LINE1)? Has anyone tried it? As we shared on our previous post, LINE MANGA: Smooth page transition with Page Stack, LINE MANGA is built with web technologies. Because it runs in within the LINE app, we have put in a great effort to create a smooth user experience, and as one of the means to accomplish our goal, we have chosen code-splitting. Today, I’d like to introduce the grow-loader, LINE’s open source project for code-splitting.

Providing Prometheus as a service

I’m Paul Traylor with LINE Fukuoka’s Development Department where I focus on monitoring many servers used to support LINE Family Apps.

For most developers, it’s much more fun to focus on code and adding new features but when things are running poorly it’s useful to know why. Since it’s sometimes difficult to configure monitoring by yourself, it has been my responsibility to make it easier to use so that all services can be monitored for peak performance. As part of this, we developed Promgen to help maintain our Prometheus configuration and make it easier for developers to register monitoring targets or subscribe to alerts for any service they are responsible for.