Quarantine and working from home because of COVID-19 has provided an opportunity for me to take up Japanese again. I studied Japanese for years in high school and college, but I was unable to consume media intended for a Japanese audience. I hope that I can practice reading Kanji with posts like these.
This is the first post in which I try to translate snippets of technology articles written in Japanese. I hope that I can provide translations for longer snippets as my Japanese language skills improve. The following snippet is from Let’s Manipulate the Raspberry Pi GPIO Ports Using C# by Ken Takae:
Although when speaking of C# one tends to think about only the Windows environment, if .Net Core is installed in the Linux environment, applications developed in C# operate [in the Linux environment]. Moreover, even with a Raspberry Pi, it is possible to use C# and carry out IoT development.
Notes:
~がち: a suffix to express an undesirable tendency in someone or something. Formed by Verb-masuがちだ or Nounがちだ.
Source: C#でラズパイのGPIOを操作しよう~LEDを点灯させる
Reference: Makino, Seiichi and Michio Tsutsui. A Dictionary of Intermediate Japanese Grammar. The Japan Times, 2001, pp. 47-50.
I was interested in forcing ssh to use IPv6 if the connection is available. I considered writing a bash script that would test connectivity and would invoke ssh with the appropriate command line arguments. After reviewing the ssh configuration file documentation, I determined it was possible to implement what I wanted without standalone scripts.
I updated my ~/.ssh/config file with the following:
IdentityFile ~/.ssh/id_ed25519
Match host stevedoria.net, exec "nc -6z -w 2 stevedoria.net 22"
AddressFamily inet6
User myusername
Host stevedoria.net
AddressFamily inet
User myusername
The above configuration file provides an example of using the ssh_config Match keyword with the host and exec criteria keywords. The configuration file specifies an identity file to use for public key authentication. If the specified host server is “stevedoria.net” and nc is able to connect using the IPv6 address, then IPv6 is used for the SSH connection. Otherwise, if the specified host server is just “stevedoria.net”, then the IPv4 address is used.
With the ssh client configuration file above, I can then log into my web server with the following command from the command line: $ ssh stevedoria.net
Logging into my server this way is convenient and confirms that I am IPv6-ready.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
I had been with GoDaddy for almost two decades. GoDaddy offered a Virtual Private Server (VPS) for $10 per month over two years. Now that my contract is up, they are offering a renewal at $20 per month.
While my GoDaddy VPS failed to reboot after a typical update using yum, I set up an account on Amazon AWS and created an Amazon Lightsail instance. I was able to fully restore my server deployment before GoDaddy was able to resolve my issue. For as little as $10 per month, the Lightsail instance offers double the memory, double the hard drive space, 3TB of outgoing data per month, an external firewall, flexible snapshots, and IPv6 support.
I might have stayed with GoDaddy to avoid setting up another server. But being unable to compile PHP and the lack of IPv6 support on my VPS with them, I had one foot out the door.
One of the things I have always wanted to achieve is fluency in the Japanese language. A web search for how to learn Japanese led me to Tofugu’s I want to learn Japanese! This page provides a guide for learning Japanese. The page also builds a strong case for purchasing Tofugu’s product, WaniKani.
Tofugu motivated me to pick up Japanese again by linking Derek Sivers’s story about the potential to learn quickly outside the limits of classroom instruction: There’s no speed limit. Tofugu also recommends taking an approach that would be difficult in a classroom environment. Tofugu recommends first building a vocabulary while learning to read kanji before using a textbook to study grammar.
Tofugu makes an observation, which I have experienced firsthand and I attribute my lack of progress toward fluency:
A lot of a beginner’s time when using a textbook is spent looking up kanji and vocabulary. This takes your focus away from the grammar you’re trying to learn and makes progression slow and frustrating. Learning (some) kanji and vocabulary first makes learning grammar a lot faster and, more importantly, easier.
To further streamline learning Japanese, Tofugu goes against typical classroom instruction and recommends typing Japanese rather writing Japanese at first:
While it is important to learn how to hand write Japanese eventually, right now it will slow you down immensely with very little payoff. Typing covers 99% of modern day writing so you will learn how to type hiragana (and katakana and kanji) instead.
Tofugu spells out the theory of the kanji-vocabulary-first approach:
When learning something new, you should already know 80% of it.
This means that each new thing you learn should be a 20% (or smaller) incremental step. A +1 from where you are, rather than a +20 or +100.
Most people go into a textbook with zero knowledge and wind up spending a large chunk of their time looking up words they don’t know. How much of a sentence is vocabulary? Depending on the length, it’s easy to answer “more than 80%.”
So when you’re learning grammar with a textbook, coming into it with prior vocabulary knowledge brings you to that 80%. Leaving you just the grammar, which you can then point your laser-like focus towards. Instead of constantly flipping to the index to look up a word or kanji and deal with context switching when you finally get back to the lesson, all you have to worry about is learning the grammar and nothing else.
After thoroughly providing the motivation to gain vocabulary by reading kanji before studying grammar, Tofugu provides a process for gaining vocabulary. The process involves collecting words encountered daily and processing collected words into a spaced repetition system (SRS). Tofugu recommends that processing collected words involve associating mnemonics to ease committing the words to memory. Populating an SRS to develop vocabulary requires a lot of effort.
To streamline my journey toward fluency, I signed up for WaniKani, Tofugu’s commercial platform for learning kanji and vocabulary. WaniKani provides a spaced repetition system (SRS) that supports the keyword mnemonic method. The service offers an SRS that is pre-populated with what Tofugu feels are the “most important meanings and readings” of their selected set of kanji as well as a set of vocabulary that covers the less common readings. WaniKani teaches “around 1,700 kanji and 5,000 vocabulary words in about one to two years.”
The following video is queued to start where Chris Lonsdale talks about the effectiveness of a small functional vocabulary, but the rest of the video is worth a watch since it provides a guide on learning any language quickly:
How to Learn Any Language in Six Months by Chris Lonsdale
The next step after gaining enough vocabulary and grammar is exposure to the language. Yuta Aoki talks about the importance of comprehensible input in detail with examples:
How to Learn Japanese by Yuta Aoki
Author
Steve Doria is a software developer and avid reader of books covering software engineering practices as well as team and project management.