Week 30 - 2019
The weeknote for 7/22 - 7/28.
OSS
denoland/deno
🦕 Deno is a new JavaScript and TypeScript runtime.
- Contributions
- https://github.com/denoland/deno_std/pull/546
- Fixed an uncaught error on responding 400 to aborted (or imcomplete) http
requests. The fix itself is just surrounding the code with a
try
block, but the testing of it was very difficult to set up.
- Fixed an uncaught error on responding 400 to aborted (or imcomplete) http
requests. The fix itself is just surrounding the code with a
- https://github.com/denoland/deno_std/pull/546
nodejs/node
- https://github.com/nodejs/node/pull/28817
- pkg-exports are experimentally introduced in Node 12.7.0. Need to catch up what it is.
Job
gengo, genpy
- Worked on gengo's bug. The serialization of some types of fields were wrong. I first confirmed the fix worked in the debugger, but setting up the proper testing for it was really difficult. I think the serialization format of ROS messages isn't documented well on ROS documentation. The impementation of ROS itself is virtually the specification. So I need to test gengo's behavior against implementation of the same thing in python, which is called genpy. What I set up for this testing is: 1) generate python code (a) using genpy, 2) serialize the ros message using (a), 3) generate go code (b) using gengo, 4) deserialize the message using (b), 5) assert that the deserialized message is the same as the original. I implemented all these steps in CI process. It took the entire 2 days of work.
AWS Nitro System
- We first used Nitro based instance on our AWS. We didn't know enough about what it was and what imcompatiblities happened when we migrated from the legacy system. So some small incident happened about our EBS mountings. It required a half day for us to figure out the problem and fix it.
News
TC39
- TC39 seemed to happen this week. Nullish Coalescing went to stage 3.
Promise.allSettled went to stage 4. Promise.any went to stage 2. I like the
latter 2 because they are just APIs of promise and they are named well. So
there will be small confusion about them. However I'm a little skeptical about
Nullish Coalescing. It introduces a new operator
??
. It looks mysterious and probably people can't google this operator well. So this introduces a new little confusion to new learners to the language. And this operator doesn't do much job.a ?? b
is just an alternative way to writea != null ? a : b
. So, in my opinion, there's only a very small benefit to introduce this operator compared to the new confusion introduced by it.