Profile

Cover photo
Tatsuhiro Tsujikawa
Works at Hitachi GP
Attended Osaka University
Lived in Kanagawa, Japan
107 followers|80,630 views
AboutPostsPhotosVideos

Stream

Tatsuhiro Tsujikawa

Shared publicly  - 
 
So looks like remaining Top Gear season 22 episode was on aired yesterday in UK.  I could not watch it, of course. I'm huge fan of Top Gear, so I feel sad this much successful show ended in this way, rather suddenly.  But sometimes things just go on like this, whatever you like or not.
1
hakimu junglu's profile photo
 
They still some really good Car shows on youtube : Matt farah, The Drive channel, engineering explained, Jay Leno's garage ... Lots of great  documentaries about Mclaren, RWB Porsches, Koenigsegg.... . Lots of good things. Also nothing really ended yet as Mr Clarkson said that maybe he will export himself on another channel or maybe youtube :). 
Add a comment...

Tatsuhiro Tsujikawa

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

Today I fixed 2 bugs in nghttp2 introduced after v1.0.2.  It looks like v1.0.2 is super stable in retrospect.  We have to work hard to make next v1.0.5 as stable as v1.0.2. Stay tuned.

Now things are going from SPDY to HTTP/2, but I got bug report from spdylay library user.  It points out the flaw in spdylay API, that is stream ID is no allocated before we make sure SYN_STREAM can be issued, thus no stream is created.  This makes application cannot access stream user data in, for example, on_ctrl_not_send_callback, and cannot do proper resource cleaning.  I noticed this, and fixed it in nghttp2, but not ported to spdylay, since it breaks API compatibility.
I fixed not to break API today.  To make it work, dreadful CREDENTIAL support must be removed.  So I also removed CREDENTIAL completely from spdylay.  I left interface for them, but now they are noop.  CREDENTIAL was introduced in SPDY/3, and deprecated in SPDY/3.1, and it was a catastrophic failure, and I'm sure no one use it today, or even has used it once.
1
Add a comment...

Tatsuhiro Tsujikawa

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

Today I released nghttp2 v1.0.3. This is mainly bugfix release. The priority performance optimization is also included too.
1
Add a comment...

Tatsuhiro Tsujikawa

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

Today I released argparse4j 0.6.0, command-line parser for Java.
This release fixes the long standing bug.  Imagine that positional arguments for cp(1) command.  It takes one or more source locations, and one destination.  Previously, in argparse4j, we could specify this, but first argument (one or more source locations) eagerly consumed all given command-line parameters, and nothing was left to second argument (destination), and just showed error "too few arguments."
In this release, this bug was fixed, and simple algorithm is employed not to consume all parameters, but leave least amount of parameters for the rest of argument processing.
1
Add a comment...

Tatsuhiro Tsujikawa

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

I rewrote HTTP/2 dependency priority handling routine nghttp2 today.  All existing tests have passed, but I'm still not confident yet.  After another review tomorrow, and then push to the public branch.
The reason of this rewrite is to improve performance.  First I implemented this functionality, I have no idea how to optimize this since we don't know the major use case.  Now the only browser and consumer of dependency priority is Firefox.  I decided to optimize our implementation against Firefox style dependency tree.  After optimization, we have no penalty when used with Firefox style (I used special build of h2load to mimic this).  The liner node case, which is worst case, is also improved dramatically.
3
Add a comment...

Tatsuhiro Tsujikawa

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

Today I committed a change to support LibreSSL in nghttp2 project.
The fix is simple, just check the function exists.
But when looking into detail, the thing is not so easy.
LibreSSL was forked from OpenSSL 1.0.1h.
LibreSSL uses same version number macro with OpenSSL, but LibreSSL's version starts with 2.0.0, whereas latest OpenSSL version is 1.0.2c.  So if you are doing if-def to do conditional compilation using version number, you might be fooled by this fact.  LibreSSL defines LIBRESSL_VERSION_NUMBER, so we should check that as well, but we already have many places to use OPENSSL_VERSION_NUMBER macro, we are reluctant to do that.
1
Add a comment...

Tatsuhiro Tsujikawa

Shared publicly  - 
 
Stream version black mesa gets quite tougher than free version honestly..  With normal level, and just 3 monsters yielding green plasma are quite deadly, if you have just low-fire rate pistol.  Perhaps, I should chose easy level.

Back to OSS story, I added SSL/TLS logging variables to nghttpx.  Now it can log SSL/TLS protocol, cipher name, session is reused or not, and session ID for that particular connection.
1
Add a comment...

Tatsuhiro Tsujikawa

Shared publicly  - 
 
I didn't write g+ post, so the "write g+ post every day" challenge was over. The result is 32 consecutive days of posting, which is longer than I expected. Although the challenge was over, will write post time to time.

I am a big fan of half-life game. So, of course, I downloaded free version of black mess a while ago and quite enjoyed it. Yesterday, I purchased steam version of black mesa, since it is getting updates. The first impression of steam version is impressive, it looks even more detailed and gorgeous than free version. It also adjusted many parts of game elements, for example, fire rate of first weapon got quite slow. I hope that they also fixed super mario-ish level design in some places, but overall it is pretty amazing and fun to play.
1
Add a comment...

Tatsuhiro Tsujikawa

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

Yesterday, we shipped nghttp2 v1.0.3, but it turned out that it could emit assertion failure. It was a regression of priority tree performance optimization.  (yeah, I had bad feeling about this.. always while doing some "optimization" stuff..).  So today I released nghttp2 v1.0.4, just fixing this issue.
1
Add a comment...

Tatsuhiro Tsujikawa

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

Today I talk about user-defined literals introduced since C++11.
Details are written in http://en.cppreference.com/w/cpp/language/user_literal.

The easily imaginable example is define some units as literal, and use it in source code to improve readability.  I saw a project defined constant int K = 1024, and use it like auto buffer_size = 16 * K.  Now user-defined literals, you can define user-defined literal _k, and you can write like so: auto buffer_size = 16_k, which returns 16384.  C++14 introduced these kind of use for time duration, so you can write 1h, 2min, 3s, 4ms, and so on.  For C++11, you have to define them, but user-define literal must start with _, so it looks like 1_h, and 2_min.
decimal-literal ud-suffix, (1). octal-literal ud-suffix, (2). hex-literal ud-suffix, (3). binary-literal ud-suffix, (4). fractional-constant exponent-part(optional) ud-suffix, (5). digit-sequence exponent-part ud-suffix, (6). character-literal ud-suffix, (7). string-literal ud-suffix, (8) ...
1
Add a comment...

Tatsuhiro Tsujikawa

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

Today I got nghttp2 issue about URI containing IPv6 link local address. More specifically, we are talking about IPv6 address including zone ID (e.g., [fe80::a%eth0]).
The short answer was nghttp client did not handle them. 
We use http-parser's URI parser, and it rejects them as error.
Even if it were supported, we need extra handling of those address in URI in application code.  RFC 6874 says that "%" character must be encoded as "%25", which is usual percent-encoding. That means application must decode it.  Normally, hostname part does not include percent-encoding string.  RFC 3986 allows this, but they are usually i18n domain name, and we don't support it either.
I decided to fix this in nghttp client, and added special handling for these cases.  Also I made a patch for http-parser to accept zone ID while parsing URI, and then sent PR to http-parser project.
https://github.com/joyent/http-parser/pull/253
1
Add a comment...

Tatsuhiro Tsujikawa

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

I resume reading my copy of C++ Concurrency IN ACTION.
Now I'm reading section "writing lock-free stack."  It is interesting how hard it is, to achieve lock free.  I'm afraid that I can't debug this kind of code in mid night.
1
Roberto Peon's profile photoTatsuhiro Tsujikawa's profile photo
2 comments
 
yeah, that definitely helps understanding the overview.  Thanks!
Add a comment...
People
Have him in circles
107 people
Iru Streetiam's profile photo
alireza amirsamimi's profile photo
Akihito Hiromori's profile photo
Hyosun Shim's profile photo
Nikolas Branis's profile photo
Naganuma Tatsumi's profile photo
Ying Zu's profile photo
Anthony Bryan's profile photo
Nikhlesh Tiwari'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