Profile

Cover photo
Tatsuhiro Tsujikawa
Works at Hitachi GP
Attended Osaka University
Lived in Kanagawa, Japan
106 followers|76,081 views
AboutPostsPhotosVideos

Stream

Tatsuhiro Tsujikawa

Shared publicly  - 
 
This is 10th post of my "write g+ post every day challenge."

Yesterday, I talked about XDG configuration directory support for aria2 project.  Today, PR was submitted, and quickly merged into master.
https://github.com/tatsuhiro-t/aria2/pull/395
Still traditional ~/.aria2/aria2.conf works.  First aria2 checks that path, and if it exists, aria2 pases it as configuration file.  If it does not, aria2 checks ~/.config/aria2/aria2.conf as configuration file path.
See http://standards.freedesktop.org/basedir-spec/latest/ for further details. This implementation decides the default based on whether a file exists at the legacy location, if it doesn't, it picks the XDG-conforming location instead.
1
Add a comment...

Tatsuhiro Tsujikawa

Shared publicly  - 
 
This is 8th post of my "write g+ post every day challenge."

Today I compiled Erlang/OTP 18.0 RC2 to find out that it offers us mandatory cipher suite HTTP/2 requires.  I wrote HTTP/2 web server called lucid a while back in Erlang.  But current released Erlang/OTP version 17 does not offer AEAD ciphers.  The modern browser refuses to talk to my server for this reason.  Now I confirmed that 18.0 brings AEAD cipher suites.  I'm not regular Erlang/OTP programmer, but I'm looking forward to 18.0 release.

Other news is that I heard rumor that newly launched streaming music service is using nghttpx HTTP/2 proxy, but I have not confirmed it yet.
1
Add a comment...

Tatsuhiro Tsujikawa

Shared publicly  - 
 
This is the 6th post of my "write g+ post every day challenge."

As you already know, google announced Google photos.
First, I just thought how different it was from the photo app which came with G+ app.  Actually, when I stalled Google photos, the older app just disappeared, so probably it will be regarded as upgraded version.  Its pinch zoom is nice touch.  Also its categorization and search feature is very interesting.  Google said that we can upload unlimited photos and videos to cloud storage, but we have limited transfer per month (3GB in my case), so probably we cannot upload video so frequently.
1
Add a comment...

Tatsuhiro Tsujikawa

Shared publicly  - 
 
This is 4th post of my "write g+ post every day challenge."

It is harder to write post everyday than I expected.
But I'll continue as far as I can go.

Today, I got bug report for aria2 project, saying aria2 leaking memory.
https://github.com/tatsuhiro-t/aria2/issues/394

I successfully reproduced this issue, and confirmed that it only occurs for FTP download, and HTTP download is not affected.
I still don't know the cause of the issue. Struggle continues...
1
Add a comment...

Tatsuhiro Tsujikawa

Shared publicly  - 
 
OK, so this is the 2nd post of "write g+ post every day" challenge.

I was afraid of no news to post today, but luckily I found one.

I sent PR to curl project to fix the bug around HTTP Upgrade to HTTP/2. https://github.com/bagder/curl/pull/291
I coincidentally found that sometimes HTTP Upgrade to HTTP/2 failed, and nghttp2 library detected that server sent malformed frame (too large frame size, specifically).  It suggested that we corrupted input data somehow.  After reading relevant part of curl code, I found the cause.  And yes, we corrupted input data.  In curl, we have 2 buffers for HTTP/2: connection buffers, which stores incoming raw HTTP/2 connection data, and stream buffers which stores each stream data, converted to HTTP/1 style format.  With the gotcha of Upgrade, we have stream buffers filled with HTTP upgrade response (101), followed by HTTP/2 raw data (SETTINGS...).  Previously, we just fed this stream buffer into nghttp2 library function.  That function calls user callback, which curl implements and stores stream specific data into stream buffer, thereby overwriting input data!  The fix is very simple: just copy input data into connection buffer, and call nghttp2 function with connection buffer.  This seems obvious, but it depends on the boundary of packet, and this problem only occurred roughly once per 10 attempts.
2
Daniel Stenberg's profile photoTatsuhiro Tsujikawa's profile photo
2 comments
 
Thank you for merging!
Add a comment...

Tatsuhiro Tsujikawa

Shared publicly  - 
 
https://github.com/tatsuhiro-t/go-http2-hpack

HTTP/2 HPACK implementation in golang.
It is a port from nghttp2 HPACK C implementation.

This is my first golang project. Have fun.
go-http2-hpack - HTTP/2 HPACK implementation in golang
1
Add a comment...
Have him in circles
106 people
Gregory Headley's profile photo
hakimu junglu's profile photo
Chris Strom's profile photo
Mukul Clarissa's profile photo
Arslan Sohail's profile photo
Nicholas Hurley's profile photo
Florin Cioloca's profile photo
Alan Autrand's profile photo
Ben Haines's profile photo

Tatsuhiro Tsujikawa

Shared publicly  - 
 
This is 9th post of my "write g+ post every day challenge."

Today I got patch for aria2 project to use XDG based configuration directory, rather than use traditional ~/.aria2/.
https://github.com/tatsuhiro-t/aria2/issues/27#issuecomment-107365876
It looks nice, and goes in the right direction.  After the patch author finishes it, we will discuss it in detail in PR thread.

I watched today gunpla TV 177 https://www.youtube.com/watch?v=DEGe-wYIy5w
It is always fun, and it reminds me my childhood.  Today's kits are far more detailed, unbelievably articulate and does not require any glue, compared to ones I built in my childhood.  Just awesome.
1
Add a comment...

Tatsuhiro Tsujikawa

Shared publicly  - 
 
This is 7th post of my "write g+ post every day challenge."

Today we enabled travis integration for aria2 project (http://aria2.sourceforge.net).
We planned this while ago, but some packages we depend on must be whitelisted to build aria2 on travis's container-based infrastructure.
Today I received github notification e-mails that all necessary packages have been whitelisted. Thank you travis for doing hard work!  I quickly update travis file, and pushed to github, and it worked!  We build aria2 with clang and gcc, and I noticed that while clang took 12 minutes to build and run tests, gcc took 19 minutes for that.  aria2 is C++ project, and clang is significantly faster in our case.
aria2 is a lightweight multi-protocol & multi-source command-line download utility. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink. …
1
Add a comment...

Tatsuhiro Tsujikawa

Shared publicly  - 
 
This is the 5th post of my "write g+ post every day challenge."

In previous post, I wrote the memory leak bug in aria2 project.
After some investigation, I concluded that it was not memory leak, it was caused by massive number of downloads (3 million) registered by RPC call.  Each download object in aria2 is rather big, and it quickly fills memory. Originator reported that erasing download result did not reduce memory usage.  This is expected behaviour of default memory allocator of glibc.  I don't fully understand its mechanism, but aria2's allocation pattern could trigger heap fragmentation, which prevents the allocator from returning pages to the system.  aria2 supports jemalloc by configure option, which is more suitable in this case.

Another news is today is Google I/O.  I'm writing this post watching its keynote.  Everything is awesome, but I just thought I don't want android into my car ;)
1
Add a comment...

Tatsuhiro Tsujikawa

Shared publicly  - 
 
This is the 3rd post of my "write G+ post everyday challenge."

Today, I don't talk about computer.  I talk about origin of Japanese word.

If you are Japanese, you may hear the word "ponkotsu."  For those of you who have not heard the word, it is usually referred to the old nearly broken machine, mostly old cars.  I grew up without thinking about the origin of this word, but recently I'm curious about that.
It seems it came from the sound when human punching with bare knuckle.  Then gradually, bare knuckle started to mean large hammer, which is used to dismantling the old cars.  So "ponkotsu" is the word to refer to the old cars.
1
Add a comment...

Tatsuhiro Tsujikawa

Shared publicly  - 
 
I just decided to write at least 1 g+ post per day.  Let's see how long it will continue.

I released 2 OSS products: aria2 and nghttp2.

aira2 1.19.0 (http://aria2.sourceforge.net/) release added new protocol support, SFTP, using awesome libssh2.  It also fixes number of bugs.  If you are using aria2, I strongly recommend to upgrade to this latest release.

nghttp2 1.0.1 (https://nghttp2.org) was released today, with several  bug fixes.  Interesting bug is h2load's bug.  If it was built with OpenSSL >= 1.0.2, thus ALPN enabled, and NPN-only server was used, h2load reported that no viable protocol negotiated, while server correctly sent h2 or h2-14.  It is now corrected.
Another one is nghttpx sends PUSH_PROMISE after associated response HEADERS.  HTTP/2 spec says that implementation should send PUSH_PROMISE before sending any HEADERS or DATA which might help client to discover the resources the server is going to push.  Now it is corrected, and nghttpx first sends PUSH_PROMISE.

I don't know I can post tomorrow, since daily job is extremely boring.  But I might found something new else where.  Thank you.
aria2 is a lightweight multi-protocol & multi-source command-line download utility. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink. …
3
Add a comment...

Tatsuhiro Tsujikawa

Shared publicly  - 
 
Momijigari
1
Add a comment...
People
Have him in circles
106 people
Gregory Headley's profile photo
hakimu junglu's profile photo
Chris Strom's profile photo
Mukul Clarissa's profile photo
Arslan Sohail's profile photo
Nicholas Hurley's profile photo
Florin Cioloca's profile photo
Alan Autrand's profile photo
Ben Haines's profile photo
Work
Occupation
Software Engineer
Employment
  • Hitachi GP
    Software Engineer, 2001 - present
Places
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Previously
Kanagawa, Japan
Links
Contributor to
Story
Tagline
Car lover, free software developer.
Introduction
A free software developer living in Japan. https://github.com/tatsuhiro-t
Education
  • Osaka University
    Computer Science, 1996 - 2001
Basic Information
Gender
Male